Software development from the perspective of a programming assignment is drastically different than software development at scale. In each of the following four scenarios, discuss possible causes and solutions as if you were a consultant brought in to perform a post hoc evaluation of a failed software project:
1) The software system became extremely unstable a week prior to a critical demonstration for a client. The demonstration went extremely poorly, and the client canceled the project on the spot.
2) During several sprint review meetings, it was uncovered that three or more team members had either implemented the same or competing functionality. As a result, the project became so chronically behind schedule that the client ultimately canceled the project.
3) While working on implementation tasks throughout the life of the project, developers constantly complained of breaking changes introduced by a small group of developers working on framework functionality used by all of the modules in the system. As a result, the project became very behind schedule and in order to meet a deadline pre-release testing was scaled back severely. Once released, the client found the software so unstable and perceived the problems as so fundamental that the project could not be saved and requested all development efforts cease.
4) During an upgrade, core functionality for the system was rendered unusable. Further, finding and implementing a resolution for the issue was difficult and took a full week. As a result, the user base shrunk from 1 million users to less than 100 in that timeframe. Due to a lack of license revenue the project was canceled and the development organization dissolved.
5) Discuss the relationship between go-to-market pressure and technical debt.
6) What is the biggest concern/fear you have going into the course project?