Just because we can doesn’t always mean we should

A few weeks ago, I was chatting with the guys in the office about the number of different messaging services there are: messenger, WhatsApp, Instagram, Skype etc, etc. I was bemoaning the fact that I had to download each one in order to be able to communicate with my friends because they all used a  different one. “Why can’t there just be one thing that I can get that crosses all of these?” I cried. And they shook their heads and sent me this:




When I stopped laughing, they pointed out that the real question everyone had to ask when embarking on a project was:

Does your solution add to the problem?

In the same week, I had been reading about Nick Herbert and the ReplyASAP app he had developed to stop his son ignoring messages. Whichever side of the fence you sit on with this app (personally, I think my kids would kill me if I even considered subjecting them to something like this whereas my husband thinks it’s a great idea), the fact remains that Nick developed an android app and his son has an iOS phone. These situations serve to emphasise that what is key is actually ensuring good solid architecture of projects to make sure that your solution is fit for purpose and doesn’t add to the problem.

So many systems that set out to simplify a task ending up actually complicating things. Take a step back and remember, just because we can doesn’t  always mean we should. And the simplest solution is usually the best solution.

Independent Contractors for Software Development Projects?

As your company grows, your IT requirements change. You may find you need to integratHippo cropped computer-nerd-2017653 copye systems to improve efficiencies or develop bespoke software, and you may come to the point where you need to make use of the services of a specialist software developer. Perhaps you don’t have any software development or systems integration engineers within your IT department or, if you have, they are either already working at capacity or don’t have the specific skills you need for this project. Your first thought may be to hire an individual contractor to come and work within your company to fill that gap for you. On the face of it, this appears to be the simplest and most logical solution – you get the skills you need without any of the financial commitments involved in taking on another member of permanent staff. While hiring a contractor can certainly have its benefits, it also has some, potentially serious, downsides.

The chances are your contractor will work from your premises, meaning that you have to supply them with a number of resources, even if they bring their own laptop! While a contractor will be employed for a fixed term that you believe will cover the time needed to deliver your project, this may not allow for delays in project delivery and your costs could spiral. Delays could potentially arise due to a number of factors such as sickness, holidays, or a skills gap in the contractor’s own knowledge meaning it takes them longer to effect a fix or provide a solution. There are also the difficulties that can arise from a desire to directly supervise the contractor’s work but actually being hands-off in terms of not being able to control their work.

Over the last few years, HMRC have been challenging contractor status in a growing number of instances. If the law decides that someone’s employment status is wrong, the company and the individual may have to pay unpaid tax and penalties. While you may believe your contractor to be self-employed, there are factors that could lead, in law, to that contractor being declared an employee. If they are, the implications are not just restricted to tax and National Insurance because there are also employee rights to consider – sick pay, holiday pay, maternity/paternity rights and so on. So what are the factors that are considered?

A truly self-employed contractor can decide what work they do and when, where or how to do it. They can also hire someone else to do the work and can work for more than one client. A self-employed contractor is in business for themselves so they use their own money to buy business assets, cover running costs and provide tools & equipment for their work. So is the person you have sat in your IT department, at your desk, on your chair, using your computers, and who you expect to work Monday-Friday 9-5 an employee or a contractor? What if you walked in on Tuesday and found a different person sat in that chair?

…under a contract of service a man is employed as part of the business and his work is done as an integral part of the business but under a contract for services his work, although done for the business is not integrated into it, but only an accessory to it.” Denning LJ (Stevenson, Jordan and Harrison Ltd v Macdonald and Evans (1952)

The whole situation has now been made even more complex with the introduction of the IR35 tax rules in April 2017 for public sector contractors. The general view is that these rules could be extended to apply to private sector contractors within the next 2 years, and possibly as early as spring 2018. More on that next month.

Of course, you could hire a contractor through an ‘umbrella’ company and that should take care of any employment status issues. There is another option to consider though, and that is to outsource your project to a company that will allow you access to a small team of software developers and specialists. Apart from removing all concerns about employment status, there are a number of other benefits: working collaboratively with a small team who have knowledge and experience of a broad range of platforms ensures that solutions are developed quickly, delivered on time, and to budget; a small, established company can provide more flexibility and expertise than an individual; sickness and holidays do not present problems and downtown is virtually eliminated.

Software development and systems integration projects need to run as smoothly as possible. Doesn’t it make sense to use not only the best type of resource for the job, but to eliminate the risk of a challenge from HMRC at the same time?



More information on employment status can be found at:


Walking into a doctor’s surgery and asking for penicillin

One of the problems I have found when adopting an agile approach to developing systems (and I mean truly agile, according to the agilemanifesto.org rules, rather than a particular project management methodology), is that the high level of end user interaction in the development process can sometimes lead to the users, in effect, designing the systems.  They often come with an idea for a technical solution to their problem and ask us developers to build that, rather than allowing analysts to design the solution.

I often use the analogy of a visit to the doctor’s surgery to illustrate this.

In recent times the old role of systems analyst or analyst/developer seems to have evolved into two separate roles – the business analyst (often with little or no programming skills or experience) and the software developer.  In our doctor’s surgery analogy, the roles of user, business analyst and software developer are fulfilled by the patient, doctor and pharmacist.   

It is the doctor’s role to investigate the symptoms, diagnose the problem and come up with a treatment plan, which they agree with the patient. It is then the role of the pharmacist to provide that treatment.

In software development projects, it is frequently the case that the patient (user) walks into the surgery with their own treatment plan in mind. They enter the room and ask for penicillin.  It is too often, in my experience, that the doctor (analyst) then simply writes out a prescription for penicillin and hands that over to the pharmacist (developer).

Imagine the case, where the pharmacist spots a problem with the treatment plan (say the patient has a virus), doesn’t think it is wise, and says to the doctor, “I don’t think this is right”, only for the doctor to respond with: “That’s what the patient asked for, give it to them”.

I’ve seen this story play out in many a troubled software project!

Even worse, I’ve often seen the equivalent of the doctor simply leaving blank prescriptions at reception for patients to fill in themselves and hand to the pharmacist!

The business analyst role is not simply to liaise between users and developers (I’ve known business analysts whose time was mostly taken up being an email relay, or a chinese whisperer!). They need to be looking at the business needs behind any request and designing a solution that fits with any current systems that are in place, before bringing that to a developer.

In addition, it’s rare that an analyst with no technical or programming experience will have the ability to know the full extent of what a software system can achieve, or design solutions that fit into existing systems well.

Maybe it’s time to bring back the combined role of analyst/developer.

Open Source Software

What is open source software (OS Software)?

OS Software is software with a source code that has been publicly distributed for other programmers to access, use and learn from, meaning that anyone can inspect, modify and enhance the software. Because of this, open source software is generally considered to be more stable, more secure and more flexible. While users still have to accept the terms of a licence when they use OS Software it is very different to the licence of a proprietary software (eg Microsoft Office). Use of proprietary software often involves the payment of licence fees that increase in line with the number of end users at a specified location, or the purchase of “seats” (often referred to in CRM systems). Proprietary software licences also generally prohibit the altering or sharing of the software so if it doesn’t do quite what you need it to you may end up adapting your processes in an unsatisfactory manner. In addition, if there is a bug in the software, you may have a very frustrating wait while the company decides on and distributes a fix. The Licence for OS Software, on the other hand, quite often specifies that modifications to the software must be shared so fixes are often quickly and freely available.

What are the benefits of using Open Source Software?

If someone is building software for you using OS Software, more often than not, you are paying for their skills and expertise rather than the software. And because the software can be modified and enhanced by any developer, there are many benefits to using OS Software, including flexibility, cost effectiveness and security.

Because the licence for OS Software generally permits developers access to the source code, the end product can be adapted to fit in with your existing systems and processes rather than the other way round. This enables a good software developer to seamlessly integrate the new software with your existing systems and processes. The software can continue to be enhanced to meet your changing business needs too rather than you having to wait until the owners of proprietary software decide there is a market for the enhancement before developing and releasing it.
Cost Effectiveness
The ability to modify and enhance OS Software also leads to cost effective long term solutions as there is rarely the need to purchase entirely new software when your business requirements do change. Because the source code for OS Software has been publicly distributed for other programmers to access, use and learn from, you can be sure that there will always be the tools and skills available to maintain your software, particularly beneficial if you are relying on your software for critical tasks! And you can be sure that any bugs will be fixed quickly and the fix will be shared freely amongst software developers saving time as well as money.
Security is a huge consideration for anyone utilising IT within their business and because OS Software is freely distributed and open for developers to modify and enhance the source code, it would be easy to make the assumption that the software would be less secure than proprietary software. However, in reality, the opposite is true. Since there are many developers working on the OS Software, fixes for vulnerabilities are shared quickly and there are likely to be fewer problems. Indeed Open Source Software is already a part of many large companies IT infrastructures and concerns that OS Software is less secure than proprietary software are unfounded.

Open Source Software can provide you with flexible, long lasting, cost effective and secure solutions to your ongoing business systems requirements.