We’ve all seen the stories in the press. IT projects that run massively over budget, are delivered late, or aren’t fit for purpose. And we know that it can cost a business a lot more than money; reputation and even the business itself are sometimes on the line.
As much as it may be easy to sit back and criticise the decisions that led to the failure of these projects, the truth is that creating software is difficult. Or rather, creating good software can be difficult.
So, if a huge company with a practically unlimited budget can’t deliver something that works, on time and within budget, what hope do the rest of us have?
Don’t worry, it is possible. Over the coming months, I’m going to share a series of articles that will walk you through all the vital aspects of a successful IT project. We’ll examine common pitfalls, and help you to build up a comprehensive plan for success. Or if you can’t wait that long, and you want to get started today, book a consultation now.
What's coming up?
In the coming months we will look at
- How to choose the right technology
- Explaining your requirements so that everyone is on the same page
- Estimating time and costs from the outset so there are no nasty surprises
- Putting the right contracts in place
- Keeping track of progress
- Testing, quality assurance, and delivery
- Planning for the future
Today, we’re going to start with arguably the most important aspect of any project…
Ensuring you have the right people
It may sound obvious, but having the right people with the right skill sets involved at the right time is the foundation for any successful IT project. And yet, all too often this is the first hurdle at which a business will fall.
Larger companies may well have all of the people they need in house (although it’s important to take existing workloads into account, and be sure that these people have the capacity to take this project on, within the required timescales).
Smaller companies may be able to cover some of the required roles, but will likely need to look for a highly skilled external partner to fill certain gaps.
So, let’s look at who you will need, what you should expect from them, and how they will contribute to the ultimate success of your IT project.
The project owner is someone who has overall responsibility for the project, and the authority to make the final decisions.
By not assigning a specific person to own the project, you are setting it up for failure from the outset. I often see ownership being placed into the hands of a committee, and I can’t stress enough how disastrous this can be. The fact is, decisions need to be consistent and made in a timely manner. When a group of people are in charge of doing this, a project will quickly become stricken by ‘too many cooks’ syndrome.
The project owner needs to have all the necessary resources to successfully oversee the project and keep it on track. They need to have a full understanding of all the competing needs of the various stakeholders, and be able (and allowed) to make key decisions, prioritise, and control the scope the project will ultimately deliver.
Visionaries and Stakeholders
These are the people who understand why the project is required, and stand to benefit from the finished product in one way or another.
In larger companies, it’s not uncommon for a number of different departments to each have an interest in the project, often from a slightly different perspective and with different priorities or goals.
In small businesses, the key stakeholder/visionary and project owner may all be the same person.
Business Analyst (BA)
It’s imperative that every project has a clearly defined list of the requirements that need to be delivered. Those requirements need to be aligned with existing business processes and IT systems, whilst taking into account the different types of people who may be using the system; this includes customers, admin staff, and managers, each of whom will have their own set of requirements.
The ideal business analyst has a good understanding of what the business does, how it does it, and who does it. This knowledge is essential in making decisions about the goals of the project, and ensuring that key processes / types of users are not forgotten.
Having well defined requirements is essential so that the project can be properly assessed once it has been delivered. After all, how can you measure the success of a project if you don’t have a clear idea of what you were trying to achieve?
Architect / Technical Designer
Every IT project needs someone who can understand precisely what technology is required to meet the business needs.
The architect (or technical designer) should understand the current IT systems, alongside the capabilities and limitations of the business; they should be able to evaluate the suitability of a variety of different solutions, so that they can make the best choice for the business.
The architect is responsible for creating the technical designs that the project will be built from. On bigger projects this role can be called a technical architect / solutions architect / domain architect. On smaller projects, the work may be done by a tech lead or senior developer.
Put simply, the developers (or programmers) are the people who write the software. It’s very important to understand that not all developers are created equally; the best developers can be over five times as productive as an average developer.
It’s not uncommon for the failure of a project to be down to a lack of skills or experience in the developers who have been assigned to work on it.
Testers / Quality Assurance
All projects need to be thoroughly tested; all too often, developers are left to test their own work, which is a big mistake. This may be counterintuitive, after all if you’re using talented developers, surely this is a great way to keep costs down?
The problem is, a developer will often assume everything works, and typically only test the system the way they built it. Whereas a tester's mindset is that the software is broken, they just need to prove how.
Testing is best done alongside development. Each small part of the project that is delivered should be properly tested as early as possible. The sooner defects are found, the cheaper it is to fix; leaving testing till the end is more expensive.
Testing is not just the responsibility of the development team; it is essential that the business gets involved to ensure that all requirements are being met. The development team usually won't have the same level of understanding of the business needs, and can miss important things.
Proper testing takes time. Automated testing can help ensure quality and is fantastic when making future changes, to ensure the basics still work (known as regression testing). It does cost more time to write and maintain automated tests but the benefits to software quality usually pay for themselves.
Project / Delivery Manager
For anything but the smallest projects, there needs to be someone tasked with managing the project. This will include ensuring that developers have work to do, keeping track of time and costs, reporting progress, and most importantly fixing anything that may block the team from delivering.
How to make sure you’ve got all the right people involved
Many companies will need to hire a third party provider to help them access the skills and experience necessary to deliver a successful project. A common mistake that they often make is assuming that all of the roles above will be filled by that external partner - an assumption that almost always results in a failed project!
That’s why it is so important to understand all the roles that need to be filled, and to have a conversation with your IT partner about who will be responsible for which areas at the outset of any project planning.
The truth is that the more your company can be involved in owning and defining the requirements, and getting hands on in the testing phase, the more likely it is that the project will be a success.
Delivering a high quality IT project that succeeds in its initial aims can be done; it just requires a great partnership between the business stakeholders and the team(s)/company that does the development. Choosing the right partners is the key.
At Reach Aware, we recognise that every company will have different strengths and levels of expertise. We work with you to help identify the areas in which you may need extra support, and then we will make sure those areas are covered by highly experienced, talented specialists.
We can provide expertise in every aspect of the delivery of your project, from defining the requirements and choosing the right solution, to development and delivery. We can also provide advice as to how testing and QA should be carried out, guidance on whether automation is appropriate, and the people with the right skills to deliver a successful project.
If you would like to find out more about how Reach Aware can support your business in delivering a successful project, feel free to get in touch for a chat.