How to Specify

The establishment of a system revolves around two core concepts:

  • the data model
  • the view of it that is manipulated by users

To achieve an interactive front-end system, it pays to have a backend that is very clear, a testable data model that acts predictably.

You can of course link in unlimited data to the core of predictable modules, using their individual or a combination of key fields together and attaching unformatted data to that, providing unlimited expansion.

  • The developer has to look at the data model from an inside first perspective.
  • The user wants to explain the view and how it is manipulated by users, often in an abstract or fictional manner.

The trick is to understand the interactions between entities in an abstract way but to not try an explain implementation detail in any way but to explore how the primary elements of the system interact. By defining these interactions, it is possible to make a machine that treats data in the same fashion, although implicit rules are no longer a complication in the process.

It is probably best to define the data elements to increase understanding of the form of the system. Then the front-end (the content of the dash-boards) has some logic behind it. The very basic thing is data.

Or is it better to define data in the abstract pattern afforded by NOSQL style database records. The central part of the database should be expressed in language without difficulty. It is important to enable interactivity to be written without it being stuck in conceptualisation phase.

Eco-Friendly Development

Travel by electric car is great – of course when it is supplied by solar energy and not mineral sources. Remote Development is also incredibly eco-friendly.

The Remote Development initiative is to work on projects alongside companies and agencies remotely – providing talent and skills to a project – sprint by sprint. Remote workers can coordinate more effectively and efficiently, meeting with you remotely, or even visiting your office before a project commences. And then delivering software with precision, test-driven components that form a rich User Interface and provide a pleasing user experience to oil the wheels of e-commerce.

If your company is considering contractors for a project – you may want to consider engaging with remote developers via remotedevelopment.co.uk – it will work out less expensive, costs are predictable and delivery is agile, so you get what you need in the very next sprint.

Contracting and IR35

What is the Government doing?

The UK Government thinks that contractors have unfair advantages over employees and are tightening the IR35 regulations so that most onsite contractors are treated more like employees without any of the benefits of employment: sick days and holiday pay, share options, long-term predictability.

If you are paying a mortgage and/or have a family, then the likelihood is that the benefits of employment would be a priority.  Contractors move from company to company and accumulate a different set of skills and experience that have an immediate benefit on a project.  Of course, some contractors are simply employees and may be on a short-term arrangement so that they can then take up permanent employment, thus reducing risk to employers.

Project completion, not time spent

Remote Development does not offer employment or contracts to developers.  We seek whole projects which are developed for clients strictly off-site and without supervision.  Our teams are coordinated using Agile Methodology, but it is up to each developer to deliver.  If during a Sprint, a developer has no contribution then there is no fee.  Of course, their contribution may dominate a subsequent sprint.  This means a contract with a client for a planned number of sprints.  We deliver project completion by the Sprint and charge for planned results, rather than a wage for a day worked.

Does this mean our work is subject to IR35?  The law may change but as it stands, we only deliver on a basis of projects, not replacing any staff or employee function.  Outsourcing is a business-to-business corporate arrangement.

How we pay our taxes

Individual contractors are also businesses and are not employed by Remote Development.  Of course, their own businesses have to pay tax and individuals they employ are on salaries which are subject to PAYE.  Shareholder-employees can also be paid dividends (a share of profits), which are now also taxed in the UK.

What is not taxed?

Investment back into the business.  Remote development has a side product – teamwork.  As we build teams, they are able to create businesses by investing their time and mutual skills.  Business investment is spending revenue to create future revenue growth.  The best defense against taxation is investment back into the business.  It is also a path to paying more tax while retaining a much larger slice of the profit pie.

What is good about tax?

We should not be in business to avoid paying tax. The zero-sum game of avoidance is to simply make nothing – of course, that is self-defeating.  Taxes support the government of the land.  Education, defense, health – all need to be paid for.  Deficits are the selling of the future but rampant tax avoidance are a primary cause of Government borrowing against tomorrow.  A better way is to cause business growth and to run a fair tax regime.

What is bad about tax?

Governments make political choices, not business choices.  Taxation takes money away from future risk takers, sometimes for the benefit of society, sometimes due to crippling levels of Government debt.  Businesses borrow money to build a future.  Governments borrow for the same reason, but the debt levels these days mean they are selling the future to pay for the past.  Hard decisions could reduce these levels, but who would vote for tax increases?  Why do we vote for austerity?  A business that adopted policies that reduced sales would not survive.  Supporting a government that is dishonest with their mandate seems counter-intuitive.

Why Laravel?

Fourteen years ago I used a remarkable programming tool that implemented many of Unix’s tools like awk, sed and regular expression parsers in a language called Perl.  It also implemented objects but suffered from a philosophy TIMTOWTDI – “There is more than one way to do it.”

In other words, it allowed you to implement processes that altered data in alternative ways and some of them were more expressive, some more “elegant”.  Programmers could boast “I did that in only three lines of code.  Yes, they are really difficult to read, that is a demonstration of how clever I must be.”

In 2004 I found PHP.  Strange language that it was then, version 3 had just become version 4.  Lots of predefined functions, you could make the mistake of thinking it was a functional language.  Like Perl, it was an interpreter.  It was very fast and generally, there was an effort to increase code clarity.  Then Version 5.x arrived and its Object model allowed Inheritance and abstracts like Java.  It had a method of implementing Polymorphism, but it was “proper” polymorphism.

In the last couple of years, it skipped Version 6.x and PHP Version 7.x boasted double the speed of the stable version 5.6.  It was a trouble free upgrade.

Over the years, various “frameworks” sprung into existence, Zend was the best, most comprehensive and allowed you do use pre-written modules to utilise well written code that was stable to do tasks like making a queue system or talking to a database.  Then I learned Symfony and felt like it was a better expression of good coding methods, with excellent tools to more rapidly create systems.  Symfony was created by one person.  He is French but I found that the documentation and path into it was too many examples and not enough reference.  Sometimes hard to find answers or a path into great app development.

And then I discovered Laravel.  It reached version 4.2 when I started but the Version 5.x series of revisions made it a brilliant framework.  Why?  Because its author, Taylor Ottwell is a brilliant developer who created modules that are very well written and documented.  Because the Laravel documentation was fastidiously prepared, clear and factual.  Because its command line tool, Artisan, had very useful functions.  Because you could create a Laravel project with “laravel new project-name”, just like that.

And it used the Symfony component infrastructure.  So you can easily create a test database from artisan commands, and migrate new features into your database progressively.  Because you can create test data with database seeding and painlessly rebuild your tests.  Because it implemented PHPUnit so Test Driven Development (TDD) was painless.  Because it integrated successfully with socket-based event handlers and the also elegant Javascript framework VueJS to create systems where client browsers could update each other (dashboards which are live updated were now possible).

And now I have focused on Laravel and its supportive cast of helpful documentation, online training, where features and benefits are easily adopted and each version adds useful features.  We are now up to Verison 5.5.

It is a work of artistic genius.

SSL and Google

Google’s ranking algorithm requires that sites are SSL in order to clean up the web.  If you need to have SSL activated, please let us know.

Remote development sites

CMS sites

SSL is generally provided with SSL sites.

Cloud Sites

SSL is provided as an optional extra.  It may increase the annual charge for hosting.

Wix sites

SSL is now available on Wix.  See https://support.wix.com/en/article/turning-ssl-on-or-off-for-your-site

 

 

 

How to maintain web privacy

Privacy is an important right, while you are using the internet, it may well be compromised for commercial gain. Data collection results in you seeing advertisements for something you just bought online, for example.

The internet started to be used very publically in the 1990s. Security was not emphasized in a system that was being used academically, or as a publishing method. Nobody thought, then, of phishing scams because the idea that the internet would evolve as a place for a large proportion of commerce to be conducted, let alone banking, would be an online activity. Broadband meant that your internet was always on, creating a playground for spies, criminals, and con artists.

And now terrorism causes governments to be very paranoid about all communication and Western democracies no longer respect individual freedoms of privacy of identity or the sanctity of communication. There are some who believe that it is an agenda of fear until the next bomb goes off, and then we subscribe to it. Why not, most people have nothing to hide and do not even know their communications are being monitored probably by algorithms. For example, there are over 2 million video cameras in London. Can they call be monitored? Of course not, but they may be useful in an investigation.

It is up to the individual to protect their privacy, mainly to avoid subversion of choice by profiling, and financial data.

To learn more about protecting your security and privacy, read this article.

Remote Developers outperform Onsite

With Agile methodology, it is apparent that what can be achieved by developers remotely not only costs less than onsite developers but may be more productive. Developers tend to be motivated by technical achievements and learning, and being remote but dedicated to a specific project with focus, using modern communication methods, can actually result in faster and a higher quality of work. Peer review is essential.

See also https://www.inc.com/brian-de-haaff/3-ways-remote-workers-outperform-office-workers.html

Advantages for Clients and Agencies

There is great future for Remote Development. We understand there must be advantages for clients: less cost, more work, more accountability, less investment. More time. Less expense.

Agencies can get in on the ground floor of what is obviously the future. We can defeat the evils of a lack of talented developers in the market and the solve the problem addressed by IR35 (an independent business being treated as an employee).

Remote Developers are more able to deliver to budget for an entire project than onsite teams. Staff expenses can be avoided for project work, reducing risk and time to market.

As well as a competitive daily rate, RemoteDevelopment.co.uk invoices at the end of each Sprint. Of course only tested deliverables are included, with Sprint planning for the next Sprint.

Professional pride is at stake – each two-week sprint must deliver results.

A costed budget for an MVP (minimum viable product) is more likely to achieve working software fast. Accurate quoting for an Agile project is not the issue. Working within budget and delivering useful results is the issue.

An expectation of evolution during the journey may mean extra Sprints are required.

Predictable cost. Rapid results that are tested on a Staging Server and Test Driven Development are all parts of a new way to get your software goals achieved within budget.

Motivations and Rewards

Am I the right developer for your project? How can you tell?

As a contract developer, the first question a client asks me is “what is your rate?” If I am the only person available with the skills, my rate should be different than if I am competing for a job. It is like asking “how hungry are you?”

There is a problem with knowing the cost of everything and the value of nothing: how do you know in advance what something should cost? Oh, “The market set the price”, I hear you say. “The market is king!” Really? Do you want to motivate developers toward technical excellence?

A “rate” is not necessarily a “quality differentiator”. One technology could get the job done in one day, another may take a week. Which do you want to pay for? You simply want to buy experience.

Developers may have financial motivations, sure. But is that the primary motivation? Is technical progress not a more powerful motivation? Every developer I have worked with is motivated by technical advances and invention.

Invention. That is what we look for in a developer – have you invented anything? Remote Developers do not need a “rate” – they work to achieve your business goals, take pride in progress and charge a fair fee against a budget. Why? Because we are inventors, not employees. A budget is simply a scope. A scope will creep and efforts to stop clients changing their mind are simply futile.

If you want to create a Minimum Viable Product (MVP) to test your idea on the web, you will want us to work to your budget. You want us to be motivated to get results. To develop using the latest and greatest software methods.

Your budget gives us a scope to explore new technologies or to simply employ what we tried already. Innovation may cost more. Or it may result in a better product that works for you.

It comes down to communication.

You may need to review your budget when your MVP needs to be extended to create a working business proposition.

We believe it is best to mark progress and provide clients with technical proficiency. A budget simply provides predictability