It's been 2 years since I am playing with web application. I observed some major reasons which ruin a software project. They are explained below.
It is one of the major factor which turns your application into havoc. Many times project managers show unrealistic deadline to developer and force him to develop project into the given timeline. Developer tries to meet the deadline but finally he skips project quality and flexibility, leaves bugs and write spaghetti code which is hard to manage in future and project fails in next phases.
Mostly management wants to complete project as soon as possible to reduce the project cost. They put pressure on developer, extends the work timings which lead software developer to frustration and anxiety. Soon he quits the job.
It is commonly heard that software development is a teamwork but many companies give complete project into a single developer, after sometime he quits the job or he gets seriously ill, project goes into frozen state.
Software requirement specification (SRS) is the set of requirements on which client and software team both agreed. Some software companies skip to officially prepare this document. In future, client keep changing his requirements and project team have to implement them because they didn't locked the requirements. Changing requirements can increase your development cost then project cost.
Poor communication between the client and software team, or between the software team in too dangerous. You must incorporate the client's requirements and keep showing them to the demo of completed and tested modules.
Companies don't hire professional testers or they just leave the testing for client and non-technical persons. Performance, security and application scalability should be checked before project deployment. Bug fixing after deployment is 10 times costly.
1. Unrealistic Deadlines:
It is one of the major factor which turns your application into havoc. Many times project managers show unrealistic deadline to developer and force him to develop project into the given timeline. Developer tries to meet the deadline but finally he skips project quality and flexibility, leaves bugs and write spaghetti code which is hard to manage in future and project fails in next phases.
2. Pressure on developer:
Mostly management wants to complete project as soon as possible to reduce the project cost. They put pressure on developer, extends the work timings which lead software developer to frustration and anxiety. Soon he quits the job.
3. Ignoring teamwork and pair programming:
It is commonly heard that software development is a teamwork but many companies give complete project into a single developer, after sometime he quits the job or he gets seriously ill, project goes into frozen state.
4. Skipping SRS:
Software requirement specification (SRS) is the set of requirements on which client and software team both agreed. Some software companies skip to officially prepare this document. In future, client keep changing his requirements and project team have to implement them because they didn't locked the requirements. Changing requirements can increase your development cost then project cost.
5. Poor Communication:
Poor communication between the client and software team, or between the software team in too dangerous. You must incorporate the client's requirements and keep showing them to the demo of completed and tested modules.
6. Forgetting testing:
Companies don't hire professional testers or they just leave the testing for client and non-technical persons. Performance, security and application scalability should be checked before project deployment. Bug fixing after deployment is 10 times costly.
7. Ignoring Process model and code re-usability:
Companies adopt the approach test and run which crosses the project deadline. Chose a process model and strictly follow that model. Don't reinvent the wheel, use existing components or adopt modular approach. Develop components in such a way so that it can be easily integrated like plug and play in future projects. It significantly reduces the project development time.
Note: This is my very first blog that's why am sorry for improper formatting :)