5 things you need to think about before the software development project kick-off
When talking about software development one main question always arises – what should I take into consideration before the project kick-off. Some believe that all they need is a groundbreaking product idea, sufficient financing and time. If this was so easy almost every project would end up with huge success. Unfortunately, starting a project is not all that simple. Imagine a situation where you’re a pilot of a flight from Dubai to Sydney. You’re in the middle of your trip when the headquarters changes the destination point and directs you to Warsaw. No matter how experienced you are this turnaround will not be easy. Besides the fact that turning the plane will cost you a lot of effort, you will also need to check the route for its safety with a flight operations officer.
With software development it’s more or less the same – once you have taken a wrong turn, willing it back to fix errors becomes more complicated. That’s why it’s crucial to think carefully about the project and prepare it precisely. This is also proven by statistics (Chaos Report): “ an uncanny 31.1% of software development projects are cancelled and 52.7% will double in cost compared with initial estimations because of poor planning in the early stages”. Having that in mind, let’s have a look at some factors that determine a project’s success.
1. Scope of the project
To create a product that matches your needs, the software development team has to have a clear vision of what stakeholders are trying to achieve. Only when expectations are expressed clearly and understandable, the dev team can add value with innovations and expertise. So to start with a strong basis one of the first things you have to do is to prepare documentation with product vision, business requirements and functional specifications. The clearer the specification is the more appropriate solution will be. It is better to prepare all this at the very beginning of the project because adding specifications during development may be associated with higher costs and extended implementation time. To help you make software team understand what you really need you should precisely communicate what you:
- Want – what is the purpose of the application, what is the value for the end user
- Need – what are the must-have features, and what is nice-to-have
- Can afford – scope has to be developed along with the budget and available resources
Remember that only close cooperation with the development team will allow you to set a solid project foundation and define achievable goals. Having clear goals allows them to plan and organize their work accordingly: to document it, break it up into subsystems, assign subject-matter specialists and more. To help define the project for your developers, consider some outcomes you want from the software. You will also need to discuss elements like the hosting environment. Will there be a charge for this or do you want to go with a free service? Will you need a database? Most products require one to keep track of information. Do you need any APIs? What about mobile compatibility? Is this a software that you want linked to your employees phones?
Remember – the better you prepare everything at this stage the smoother work will go later on.
As you probably know the software development can take anywhere from a few hours when talking about simple projects, to months or even years when considering development of large and complex systems. Thus, the first thing you should consider is the potential deadlines that you have to meet. It may turn out that due to tight deadlines you will have to limit the scope of the project or increase the budget. Remember that a common misconception is that the more people who are working on the project, the faster it will be completed, but that is not always the case. Development needs to happen in a certain order. That is something extra hands on deck can’t change. After identifying deadlines and potential scope it’s time for budget planning.
Usually building a high quality software involves a fair amount of investments in both people and technologies. For sure, you should analyse and plan the cost of developing and maintaining the system along with some buffer for scope enlargement. Probably at the end of this process you will notice that your total cost of ownership (TCO) will be higher than what you would have anticipated earlier. It’s good to have this knowledge at the beginning of the project as it’s still possible to manipulate with scope and other resources involved.
Having scope, budget and timeline established you should also make a management decision. You should decide whether you would like to manage the development team by yourself or your technology partner should take care of it. The other thing is in which methodology you would like to work. Whether it is Waterfall, Scrum, Kanban, or a hybrid approach – create time-boxed sections of effort, so you can always track team progress. Ensure that your process can help you break down the big project into a series of small subprojects, such that your team can complete the larger project in small pieces.
Hiring the right people is the key for success. It’s obvious that good software development is much more than just typing. Good developers build high quality software which is free of bugs and defects. Having such people on board will definitely save you money and time spent on debugging. It will also give you peace of mind. Remember that careful resource matching is crucial, because you want to build your team based on the skills required to get the job done well. Create a skills’ matrix to identify the skills and experience this project will require. To be sure that you’ve got all the experts needed by your side consider cooperation with technology partner such as software house.