Waterfall Model vs Extreme Programming
The waterfall model is the first process model. It is very easy to understand and use. In a waterfall model, each phase must be completed before the start of next phase. Plan and schedule all of the process activities before starting work on them. In this model, testing of the application starts only after the project is fully complete.
Advantages of waterfall model:
· Waterfall model is very easy to understand and use.
· It is easy to manage because each phase has a specific process.
· In this model, one phase is processed at a time.
· This model works very good for small projects where the requirements are well understood.
· Easy to arrange different tasks.
· All the focus on the requirements and it saves money and time at the end.
Disadvantages of waterfall model:
· In this model, when the application is in a testing stage, it is almost impossible to change something.
· High amounts of risk and uncertainty.
· Not good for complex and large projects.
· Not good for long projects.
· Not good for the projects where the requirements are at risk of changing.
Extreme programming is known as XP. Extreme Programming (XP) is an agile software development methodology which is use to improve the quality of software and its ability to properly adapt to the changing needs of the customer. It is the best-known and most commonly used an agile method. Extreme Programming aims to provide iterative and frequent small releases throughout the project, allowing both team members and customers to examine and review the project’s progress.
These are the basic values of extreme programming:
i ) Communication ii ) Simplicity iii ) Feedback
iv ) Respect v ) Courage
· All the stories of a user are written.
· Make planning and create the release schedule.
· Make frequent small releases.
· Divided the project into iterations.
· According to Iteration planning start each iteration.
· The project must be Simple.
· Choose a system metaphor.
· For difficult design problems create spike solutions to reduce risk.
· No functionality is added early.
· Refactor whenever and wherever possible.
· Customer is available all the time.
· Before coding, it is good to construct a unit test
· Encourage Pair programming (two programmers sit on one computer).
· Only one pair writes code at a time.
· All the unit tests executed daily.
· Before the release of software, all the unit tests must be passed.
· When a bug is found tests are created.
· Acceptance tests are run by the customer.
Pair programming means two programmers sit on the same computer when developing a code.
Refactoring is the process of code improvement to make it easier, efficient to understand. Refactoring must not change the functionally of the software.
· Extreme programming includes the practices such as:
· customer involvement
· continues improvement
· systematic testing
· Problem with Extreme programming is architectural design and the availability of customer.
Spiral model vs Scrum
The spiral model is similar to the incremental model and sequence linear development model with more focus on risk analysis. Software passes through different phases again to make the software risk free.
There are four different phases of the spiral model.
i. Planning Phase:
In planning phase requirements are gathered from the customer and plan to work on the software.
ii. Risk Analysis:
In risk analysis phase, the software makes bug free. If any bug finds then work on this and make it bug-free.
iii. Engineering Phase:
In this phase, after the development of every phase, we can test the phase. So, in the engineering phase different phases, are tested.
iv. Evaluation phase:
In this process customer test, the phase before the developers starts working on next phase.
Advantages of Spiral model:
· Work again and again on risk analysis. So, the chance of risk is reduced.
· This model is good for large and sensitive projects.
· Good documentation.
· Additional functionalities are easily added later.
Disadvantages of Spiral model:
· This model is very costly.
· Highly experienced developers are required because of risk analysis.
· Project’s success almost depends on risk analysis.
· Not good for small projects.
Scrum is an Agile methodology for complex projects. Scrum was basically developed for the software projects but it works well for any complex, scope of work. The Scrum framework is simple. The possibilities are endless.
• Emphasizes use of a set of software patterns
i) Backlog ii) Sprints iii) Scrum meetings
• Scrum consist of:
• Product owner
• Scrum master
• Development Team
Scrum team is self-organized and plan their work freely. The scrum master manages the team and reviews the work.
The scrum events use to minimize the need for meeting and create clarity and divide the work according to time. The scrum events are the following:
• Sprint Planning
• Daily Scrum
• Sprint Review
• Sprint Retrospective
Sprint planning meeting:
• Scrum master and team member meet with product owner and product owner the most priority features of the team.
• The team decide the time required and cost of the software.
Sprint review meeting:
• Time is decided for this meeting.
• The team represent the increments to the product owner for his satisfaction.
• This meeting is informal.
The daily scrum:
• This meeting time boxed is fifteen minutes.
• In this meeting team members and the scrum master involve only.
• Discuss the last day work.
• What we do today?
• Anything that is blocking you.
Scrum’s Artefacts :
• Product backlog
• Sprint backlog
• Sprint burn down chart
• Increments in projects
• Scrum saves time and money
• Large projects divide easily among team members.
• Good for fast-moving projects.
• The efforts of every team member is visible
• Chances of project failure are high if any member quits during the project creation.
• Sometimes team members feel not good because of daily meetings.
• The success of the project depends on the experience of the members.
V-model vs Crystal
V- model means Verification and Validation model. This model is the variation of waterfall model. It is related to the test and design. Just like waterfall model each phase must be completed before the next phase begin, In V model designing is most important and ensuring that the all the project work well.
• Simple to understand and easy to use.
• Testing and designing happens well before coding.
• Save time and batter than waterfall model.
• Because of strong designing defects are track before the implementation.
• Good for small projects where the requirements are very well known.
• V-model is not flexible.
• Very rigid.
• No prototype of the software is produce
• If any change happen between or after the implementation then this is almost impossible.
When we use V-model:
• This process model is good for small and medium size projects.
• This model is use where the requirements are fully defined.
Because of no prototype or incremental process this process has very low chances to fulfill the customers’ expectations.
Crystal is an agile methodology in which different scales are set according to the size of the team.
It depends on human factor.
There are the following types of the crystal model.
· Orange Web
· Red, Maroon
Common properties of all crystal model:
· Fast delivery of all the iterations.
· Focus on brainstorming.
· Need good communication between all the developers.
· Speak freely in the group without ant hesitate.
· clear project goals and definition.
· Easy access to all the experts.
Crystal agile methodology have different flavors, Which are not a big difference between each other. Because of space and time constraints we list the ones that could be used for highly different type of projects and are having many different approaches.
Crystal methodology details:
· Lightest and supports fixed price contracts
· Just 3 roles: Programmer, Senior Designer, Sponsor
· Team member also use techniques that is relate to other mythologies
· Priorities like safety effectiveness.
· Always focus on peoples not the projects.
· Suitable for teams of 2-6 in the same room
Orange (more complex, medium sized projects):
· More roles: Project manager, Architect, Business Analyst,
· Expect a release in every ~100 days
· Defines a set of deliverables
· Requirement documentation
· Project plan
· Release schedule
· Status reports
· UI design mock-ups
· Object Model
· User Manual
· Test plan
· Suitable for teams of 21-40