In my 5 years of CTO experience I have come across with many companies those are struggling to get their IT projects completed mainly related to customized web applications or mobile applications development. After analyzing the situation I have concluded that there are many companies that just target to win the project instead of thinking about delivering that. Many times this happens because sales team that targets the project, only interested in generating the sales, they are not very much concerned about technical challenges or solutions. Sometimes the company doesn't have much experience working on big projects or have less experienced projects managers. There are many other reasons that may lead to failure of the project where the project gets stuck in between. I have summarized many points that a company can consider before hiring an IT Services for their project as follows:-
A very detailed project plan is must for a successful project delivery. Having no detail or very limited project requirements & plan is the main reason for project failure. I believe if any company or person is looking to get their project developed & unsure about intact project requirements they must first work on that. Due to lack of proper details, companies may not understand the whole project & give the commitment on projects that are beyond their capabilities. Another problem is the project starts with under budget that leads to conflicts later on. It is necessary that project requirements are defined & set clearly. Undefined or incorrect requirement leads to a lot of reworking on same modules & elements, Due to this project stretches a lot & leads to failure because of project budget conflicts at a later stage.
After a detailed plan, its must to discuss the project in detail with the technical team & ensure project goal, scope, features are clearly conveyed & they have been understood by them properly. Because if you are giving a documented project scope but the technical team has not understood that the project may go in the wrong direction. Writing documents gives better clarity if it is explained well too. It is practically proved that written as well as verbal communication is more effective than just written or just verbal.
For a successful project delivery, it is important to check the track record of a team or company. If your project is simple then there is nothing to worry about just check the level of project company have developed already & you can get idea easily that they are capable or not. If your project is not simple enough then either they should have done a similar type of project, or should have the track record of doing tricky projects. Any IT company that has experience doing projects those requires study & research, they can complete any type of project, companies those are not ready to go out of track they may give up if your project is tricky. It's not possible for companies or team to always be perfect but they must be ready to take challenges & have proven experience working on projects that require great analytical skills, research & learning capabilities.
It is observed that sometimes salespeople give fake references just to obtain the projects. So never get trapped by just looking at references. Ask appropriate questions to ensure references that the company is providing is true & they know all about the project. If they have not developed the project they will find it difficult to answer project related questions. Also if the company has developed the project they may have a copy of source code & a development branch code on their server too. These are some good tricks to ensure that the references provided are true.
Any company that has the right project development approach will have lesser chances of failure. A project should be divided into multiple phases & parts such as Research, Plan, Design, Development, Testing, etc. You can ask how the company will ensure the successful project delivery. If they are not able to provide a satisfactory answer then its a concern. In software development company process it is very important to gather the requirement & plan the solution before starting the actual development. If the team or company don't have a plan for critical areas of the project then they are likely to get stuck in between. Though no one can provide very detailed plan upfront but they should have done some research for critical areas with proper references to solve the problem. If they don't have the proper plan or proper references to solve the critical problem then that is a concern. Also to avoid failure of the project at later stages, project should be done in proper phases & all the phases should be in right order. Such as first of all requirement gathering should be done, then a detailed planning of the project should be done, after that before starting the development, the design should be ready. Because by looking at plan & design it is easy to observe if the project is not thought or planned correctly.
Budget is one of the main reason for project failure. Its one of the lucrative point to trap. Any IT company that will consider the right approach, they will require to put in a lot of efforts & time. And project budget is likely to go above. Some companies don't give much importance to research, planning, designing, etc & only focus the development part. Due to that budget remains low. Due to lack of planning many modules are left unplanned & not covered in budget too but they are must for project development & comes in the picture in later stages. Companies those have given lower budget deny to work on those areas as they have not covered them in the budget or kept a very low budget. So before awarding the project to any company don't go for budget only because spending a low budget on the project may be like wasting money because project may not be completed & have to hire a new company to do the project with proper planning.
I have explained the importance of planning in above point. This point mainly focuses to get the detailed project plan & review that. Even if you have to pay for a detailed plan go for that because a detailed plan takes time & companies hesitate to do that. Companies avoid giving free detail plan because many people take plan & go to other companies. So pay for the detailed plan and get a strong base for your project.
A qualified & experienced project manager has all the knowledge & experience to develop & bring your project on right track. There is a famous saying "Many years mistakes becomes your experience" & you are not likely to make those mistakes again. Someone that doesn't have the experience he/she may not know what mistakes should not be done. If someone knows what should not be done they will do what is required to be done.
Testimonials are a good source to know how a company has performed for their clients & you can get a good idea from that. But sometimes companies may put false text testimonials as writing anything is much easier. So if any company have video testimonials there are chances that they are more genuine than the text testimonials.
There are many agencies or individual project managers those take projects & outsource it to others to develop. In this model failure, chances are very high as the manager may not have full control of the team. Also if he is outsourcing project to a new team with whom he is not working regularly, he may not have the proper idea about the skills of the team he is giving the project. Hiring direct company developer can become the key to the successful project. If the company is having their own in-house team then they will have better control on team & project.