Chapter 2 - Project Selection & Management Flashcards
What responsibilities does a project manager have?
A project manager does the following:
- Chooses a development methodology
- Develops a work plan for the project
- Determines a staffing plan
- Establishes coordination and control mechanisms
What are the three main categories of development methodologies? What are some examples?
The three main categories of development methodologies are:
- Waterfall Development
- Parallel Development
- V-Model
- Rapid Application Development
- Iterative Development
- System Prototyping
- Throwaway Prototyping
- Agile Development
- -Extreme Programming
What is a development methodology?
A development methodology is a formalized approach to completing the system development life cycle.
How does the waterfall methodology function?
In the waterfall methodology, the stages progress linearly, with very little work from a previous stage being revisited once it is completed. There is a great deal of documentation, and scope creep is limited by sign-offs at the end of each phase. It’s slow and archaic.
How does the parallel development methodology function? What methodology is it building off of?
Parallel development is a subset of the waterfall development methodology. It has a similar design and implementation phase, but splits into separate modules for dealing with design and implementation, uniting for a final implementation.
It can suffer from lack of communication between modules, making inter-dependence a serious challenge.
How does the V-model development methodology function? What methodology is it building off of?
The V-model development methodology is a subset of the waterfall development methodology. The V-model methodology focuses more on testing than others, going through analysis, design, and then coding of what was developed. From that point on, testing progresses through unit, integration, system, and acceptance testing.
A core component of the V-model is that during the analysis and design phases, future testing is clearly defined. It is still quite rigid, compared to other methods.
How does the rapid application development methodology function?
Unlike the waterfall development methodology, rapid application development focuses on quickness, using special techniques and tools to speed up the phases. The goal of this is to get the system into the hands of users for feedback as quickly as possible.
How does the iterative development methodology function? What methodology is it building off of?
The iterative development methodology builds off of rapid application development. It goes through the four stages of the SDLC, repeatedly in a mini-waterfall process, at the end of each one producing a “version” of the system to be used to gather feedback for the next iteration. The first version contains the “core” functionality, with each version after that having additional functionality added. The downside of this is that users must start using a deliberately incomplete system.
How does the system prototyping methodology function? What methodology is it building off of?
The system prototyping methodology builds off of the rapid application development methodology. It performs the analysis, design, and implementation phases concurrently to develop a simple system prototype for the users to evaluate. This evaluation influences the next prototype, and repeats until the users and sponsor agree that the prototype has enough functionality to be installed.
Its primary downside is a lack of methodical analysis.
How does the throwaway prototyping methodology function? What methodology is it building off of?
The throwaway prototyping methodology is built off of the system prototyping methodology, and functions nearly identically, save that there is a much more thorough analysis phase, and that instead of building complete system prototypes, what is called a design prototype is made. The design prototype is not full-featured, and is intended only to showcase for users issues that are being worked on. When all issues are resolved, the design prototypes are discarded, and the project moves into full design and implementation.
How does the Agile Development methodology function?
Agile development focuses on streamlining the SDLC by eliminating a great deal of modeling and documentation that is found in other methodologies, preferring face-to-face communication whenever possible. It is iterative, with each iteration ending with a complete software product, including all the main phases of the SDLC, and creation of documentation. Cycles are kept short, between one to four weeks.
How does the Extreme Programming methodology function? What methodology is it building off of?
Extreme programming builds off the Agile development methodology, and focuses on customer satisfaction and teamwork. Designs are kept simple and clean, and project teams are small. Extreme programming uses user stories to describe what the system needs to do, and the programmers code in small modules and test to meet those stories’ needs.
What are the six main factors that are considered in selecting a development methodology?
The six man factors that are used to select a development methodology are:
- Clarity of user requirements
- Familiarity with technology
- System complexity
- System reliability
- Time schedule length (short/long)
- Schedule visibility
Why is increasing staff not always a good solution to a shortage of workforce? What’s the recommended size of a team?
Adding new staff members will not always solve the issues brought on by lack of workforce, as new staff needs to be trained, gain experience, and can be expensive. The ideal size of a team is 8-10 people, reporting through a hierarchical structure.
What are good rewards to use to motivate team members? What is one prime example of a bad motivator?
Some good motivators of staff members are intrinsic rewards, such as: - Recognition - Achievement - The work itself (if it is satisfying) - Responsibility - Advancement - The opportunity to learn new skills Monetary rewards are not terribly effective; the more you use money as a reward, the more it is expected, and it isn't always effective.