Traditional software project management centers on frameworks and process models. Any experienced project manager would have been through spiral, incremental, or waterfall models during his or her tenure.
If you were a new project manager assigned to a software development project, what process model would you choose and why? Explain your answers with relevant examples (use your own or other real-world scenarios).
Choose one of the frameworks (spiral, incremental or waterfall)and describe the advantages/disadvantages. Please provide a brief description of the scenario it was used in. Why was this model chosen? How well did it work for this type of project.
Software development and modification involves creative processes and procedures which may be subject to external and changeable forces. Getting it right the first time is almost impossible and that’s why it’s preferred to employ iterative developmental processes rather than linear development processes. With Software developments, finding an issue during the design process and fixing it is better that during the testing process. An incremental build model is an iterative development model which involves frequent demonstrations of progress and verification and validation of the work to date. The entire build is broken up into manageable build/task, which is verified and validated. Our software implementation in my organization is broken into various builds/milestones and requires verification and validation of each build before the next. Some of the advantages of the incremental model are flexibility (ease of change of requirements), stakeholder involvement and feedback on each stage, and the ability to identify and manage risk and defects easily and quickly. A disadvantage of the incremental model is a potential higher project cost because of the verification and validation process, and requires good planning and layout of the entire design before breaking it done into various build/task.
It actually costs less to find problems during the testing phase than to install the project with defects. Don’t get me wrong, re-work is an expensive undertaking and is usually NOT included in project estimates. This means that the cost of re-work has to be eaten in another portion of the project. Where is to be determined but rest assure the price will be paid.
Usually with IT software projects reworking and tweaking portions of the projects will require retesting all the modules to make sure nothing is broken, which can be time consuming and costly. There is no guarantee that re-working a portion of the software will not cause any issues, especially if the modules are inter-dependent. It’s a major undertaking that most project teams will rather avoid if possible.
Our text mentions costs of rework cost more as the project moves on. Having to make corrections in the early phases such as requirements are much cheaper to fix than if you wait until the implementation phase to redo something, or fix something. Those errors in the requirement phase can be fixed sometimes by just rewriting the features promised the customer. Errors made in the implementation phase can requiring recoding and system resources.
I have been using the waterfall method pretty much the last two years with the infrastructure projects. the advantages is that it has sequential development phases and milestones reviews. In most of the projects in the deployment of hardware we had several different phases to go through before we were able to deploy the systems to their final locations. this sequential method allowed us to utilize the timetable better. combine this with milestones we were able to maintain directions and goal. Now the disadvantage is that it required a lot of communications and that ate up precious time also. We were also constantly being called into meetings that were taking up precious time on the project. never mind the time it took to do a change order. it had to go up the ladder then back before it was allowed.
The advantages of the incremental model are:
More flexible – less costly to change scope and requirements.
Easier to test and debug during a smaller iteration.
Customer can respond to each build
Lowers initial delivery cost.
Easier to manage risk because risky pieces are identified and handled during iteration.
The Disadvantages of the Incremental mode are:
Needs good planning and design.
Needs a clear and complete definition of the whole system before it can be broken down and built incrementally.
Total cost is higher than waterfall
I would imagine that the incremental model works best with something like a software or program update. In my company the program that we use to complete our tasks was recently updated. There have been additional updates about five times since the original program came out. The company has made changes and fixed issues that the end users had identified. The incremental model was used in order to be able to get end user feedback and work on developing and enhancing the program to ensure it was workable.
Trying to understand the different methods of process models, at work we seem to use the incremental method. We have an overall process for converting our computer systems and it is broken down by each school but we try to use the same processes over and over once we find what works for us. For every school, we do an inventory walk through so we know what model of machines we have, printer models, and counts for each area of the location. Once that is completed, we provide memory to the school to be upgraded before the project is done, so the hardware can handle the software. The network specialists work on the server end and my area works on the desktop software end. Once things are ready, we go onsite and re-image the machines on the new server after the old one is removed.
- Easier to manage problems that arise
- Must have good planning process
- Understand overall goal before it can be broken into increments
Incremental framework is an iterative model and usually applied in projects where there is some ambiguity in the product requirement or the business requirements change pretty quickly. This model works well with prototyping. In this method, the analysts usually create prototypes and take it to the business users and do the validation and verification of the requirements. Users generally provide their feedback on the functionalities and suggest some changes. This leads to analyst working on the product functionalities and changes in the prototypes. This iterative process ultimately leads to the finalization of all the functionalities as desired by the business user. The iterative model work better especially for those projects which require a particular or specified look and feel/layout. It also works for those projects where user involvement is high and they provide their inputs quickly.
Every project is unique in terms of the problems that arise, the priorities and resources assigned it, the environment in which it operates, and the project manager’s attitude and style used to guide and control project activities. Therefore, the organizational structure for the project must be designed to fit within that project’s operating constraints.
As a new project manager managing a software development project the individuals must from Identify stakeholder and their needs, develop strategies to manage involvement. Outline the project objectives, such as, what success looks like, making the team’s success visible and managing the project to build customer confidence. Balancing development needs with organizational expectations within selecting software development life cycle models in the aspects of comparing SDLC models, identifying the right model and analyzing strengths and weaknesses of traditional Iterative vs.. agile and scrum
The next phase when implementing agile in the design process by mapping the project’s SDLC process, optimizing time, cost, function and quality. Then reanslating your actions and requirements to the stakeholder. When structuring the contents of software development project planing and providing initial estimates, calculating realistic estimates.