It's rare to encounter an organisation where software isn't an important aspect of their day-to-day operation. Whether it's a small business with a simple website, an international retailer with an e-commerce store and a Warehouse Management System, or a charity organisation collecting, storing and reporting environmental data, at some point, each of those organisations will need to engage on some level with a piece of software in order to ensure its smooth operation.
Organisations with a software team
More straightforward than the alternative is for an organisation to already have an internal software team. Their application may have been built entirely by that team, or with the help of an external supplier. In either case, the internal team has domain knowledge of the application, which will be invaluable when investigating issues. Problems begin to arise when the building of the application can be considered "complete".
What we've seen happen is for organisations to put their software team to work on a project in another area of the business, whilst recognising that the original application needs maintaining. One or two developers from the project are then either left behind for this purpose or, worse, it's another item on their growing list of responsibilities.
For those developers left holding the baby, it can be demotivating to see colleagues go off and begin work on an exciting new project. When it's just another responsibility, split focus is an issue; a developer will naturally prioritise the things they think need the most attention, and that will often be something other than the continued running of an application. In both cases, knowledge silos are being created, making it much harder to maintain the project in the absence of those developers.
Organisations without a software team
In many instances, software applications will have been built by an external supplier over the course of a lengthy engagement, and said supplier will often provide some degree of post-engagement support. However, there are a number of ways in which this type of relationship can break down and lead to the organisation and the supplier parting ways. For example, a lack of capacity.
The supplier may find they ultimately don't have the capacity to offer reliable support. Their workforce will be committed to other projects and they'll only have a minimal amount of time to handle requests from the organisation. This then leads to urgent requests going unanswered for hours or even days at a time, and increases the risk that work done will end up being rushed or sub par.
Other examples include prohibitive cost, or simply the sense that the supplier is apathetic towards the needs of the organisation and isn't providing enough value. Whatever the situation, the organisation now finds themselves in need of another software team.
Challenges in building a software team from the ground up
-A particular challenge for many organisations, especially those who've never had an internal software team, is that their business is likely not closely related to the software industry. Such organisations have applications that need to be actively maintained in order to keep it running smoothly and up-to-date (at least in terms of security), but where do you start if you need people with experience in an area your organisation currently has none in?
Hiring good developers is tricky even in the software industry, but is especially so for organisations not known for having a strong foundation in software and technology. A lot of developers look for positions that excite them, and in which they'll be working with like-minded people. This is not to say that working for your organisation won't be exciting! However, joining an organisation where they may wind up being solely responsible for an application built long before they arrived is a daunting prospect. On top of that, you need to be able to discern whether any developers you interview have the skills you need, and whether they're going to be able to push your software team forward. You don't want to hire someone who sees the role as a stepping stone to an opportunity they're more excited about in another organisation.
One solution is to ask for advice from a third party. If your application was built by an external supplier and you parted on good terms, you'll often find they're willing to help you recruit the right people for senior software positions, like tech leads. They'll look at your applicants, give interviews and technical tests, and feedback to you with their thoughts. By hiring a technical lead first, your previous supplier can then step back and give your new hire room to start building the team internally.
If talking to a previous supplier is not an option, it's worth hiring a freelance Chief Technical Officer (CTO) to recruit and build your team. A quick LinkedIn search will show there are many out there for you to consider, and there are also directory services specifically for freelance CTOs who'll be able to match you up with someone who can help you lay strong foundations for your software team.
Once you have that first, capable new hire, building the rest of the team should be a lot more straightforward. You'll be able to work with your new hire to fill out the team you need, and they'll dedicate themselves to getting to know your application. A good team will then look at ways they can evolve and improve your application, beyond simply maintaining it, and they'll communicate with you constantly to ensure they're heading in a direction beneficial to your organisation.