AGILE SOFTWARE DEVELOPMENT Case Study
MAHAM MAHMOOD FEBRUARY 25, 2019
Agile Software Development
February 25, 2019
Table of Content
Contents Introduction: - ........................................................................................................ 2 1.Extreme Programming (XP): - .............................................................................. 2 Extreme Programming Life Cycle: - ..................................................................... 3 2. Scrum: - .............................................................................................................. 4 Graphical introduction to Scrum: - ...................................................................... 5 3. Adaptive Software Development (ASD): - .......................................................... 6 Speculate: - ......................................................................................................... 7 Collaborate: - ...................................................................................................... 7 Learn: -................................................................................................................ 7 4. Dynamic System Development Method (DSDM): -............................................. 8 5. Crystal: - ............................................................................................................. 8 Crystal Method Family Members: - ..................................................................... 8 6.Feature Driven Development (FDD): - ................................................................. 9 Traditional Software Development Method (TSDM): - ......................................... 10 Agile Software Development: - ............................................................................ 10 Conclusion: - ........................................................................................................ 11
1
Agile Software Development
February 25, 2019
Introduction: The term agile stands for ‘moving quickly’. Agile Software Development is a lightweight software engineering framework that promotes iterative development throughout the life-cycle of the project, close association between the development team and constant communication. The twelve principles behind the Agile manifesto and we discussed some of the principles below. First priority is the customer satisfaction. Welcome in changing requirement, even the late in development. Business people and developer team must work together daily throughout the project. Working software is delivered frequently to client in weeks rather than months. The most effective method of conveying some information and within development team is face-to-face conversation.
Agile Software Development Methods: The agile methods have been used widely in business sectors where requirements are relatively unstable. There are some Agile development methods discussed below. 1. 2. 3. 4. 5. 6.
Extreme Programming (XP). Scrum. Adaptive Software Development (ASD). Dynamic System Development Method (DSDM). Crystal. Feature Driven Development (FDD).
1.Extreme Programming (XP): This the most widely and best known used agile process originally proposed by Kent Beck. XP takes an extreme approach to iterative development. In XP tests must be run for every build and the build is only accepted if tests run successfully. There are five values of XP communication, simplicity, feedback, courage, and respect and are described in below. Communication: In XP we communicate face to face daily. We will work on everything of requirements of code. And create the best solution to our problems. And also, in this a strong communication is between the customer and developer. 2
Agile Software Development
February 25, 2019
Simplicity: -
It means we will do things which is needed. The reason of this to avoid unnecessary things and do only necessary things such as the design of the system as simple as possible so it is easier to maintain and support. It also means mark only requirement that you about to know and don’t try to predict future. Feedback: Through constant feedback about their previous efforts, teams can identify areas for improvement and revise their practices. Feedback also supports simple design. Your team builds something, gathers feedback on your design and implementation, and then adjust your product going forward. Courage: You need courage to stop doing something that doesn’t work and try something else. You need courage to accept and act on feedback, even when it’s difficult to accept. Respect: The members of your group need to respect each other in order to join with each other, give and take in take-back that honors your relation, and to work together to make out simplest designs and solution.
Extreme Programming Life Cycle: -
There are four phases the life cycle of XP consists of planning, designing, coding and testing.
Planning Phase: In planning phase, the customer writes out the story cards that they desire to be included in the first release. Each story card describes the feature to be added into the program. And then 3
Agile Software Development
February 25, 2019
sets the priority for the stories and an agreement of the content of first small release is made. The programmer first estimates how much effort each story requires and then the schedule is agreed upon. The time go across of the list of details of the first release does not normally be exceed to 2 months. Designing Phase: In designing phase, the design is made is simple. Without a proper design, a system implementation becomes too ramified and very difficult to understand the solution, thus it makes maintenance expensive. A good diamond results suppuration of ramified dependencies within a system. So, constructive use of suitable diamond is emphasized. Coding Phase: Coding phase is the most important phase in XP life cycle. XP gives priority to the coding over all other tasks. The concept of coding which is used in XP model is slightly variegated from traditional coding. Here, coding activity includes drawing diagrams (modeling) that will be transformed into code, scripting a web-based system and choosing among several volitional solutions. Testing: XP model gives higher importance on testing and considers it be the primary factor to develop a fault-free software. XP combine testing with the development phase rather than at the end of the development phase. All code must have unit test to reduce bugs. When a bug is found tests are created. And the code passes all such unit tests for surpassing release.
2. Scrum: Scrum is an agile process most commonly used for product development, expressly software development. Scrum is a project management framework that is workable to any project with warlike deadlines, composite requirements and a stratum of uniqueness. In Scrum, projects move forward via a series of iterations tabbed sprints. Every sprint is typically taking two to four weeks. An introduction to Scrum would not be well-constructed without knowing the Scrum terms you'll be using. These terms are discussed below. Scrum Team: A Scrum Team is a collection of individuals working together to deliver the requested and committed product increments. To work effectively it is important for a Scrum Team that everyone within the team follows a common goal
adheres the same norms and rules shows respect to each other
A typical scrum team has between five and nine people, but Scrum projects can easily scale into the hundreds. However, Scrum can easily be used by one-person teams and often is. This team 4
Agile Software Development
February 25, 2019
does not include any of the traditional software engineering roles such as programmer, designer, tester or architect. Everyone on the project works together to complete the set of work they have collectively committed to complete within a sprint. Scrum teams develop a deep form of camaraderie and a feeling that “we’re all in this together.” Product Owner: Product owner is officially responsible for the project, managing, executive and making visible the product reservoir list. He takes the full and final decisions of the tasks related to product backlog. Scrum Master: Scrum master is responsible for ensuring that the project is carried through according to the practices, values and rules of scrum that it progresses as planned. The ‘Scrum master’ is an organizer who organizes daily meetings, tracks the backlog of work to be done. Product Backlog: The product backlog is a list containing every desired feature or change to the product. The term ‘backlog’ can have a confusion because it is used for two different things. To simplify, the product backlog is a list of desired features. The sprint backlog is a list of tasks to be completed in a sprint. Sprint Planning Meeting: At the start of each sprint, a sprint planning meeting is held, during which the product owner presents the top items on the product backlog to the team. The Scrum team selects the work they can complete during the coming sprint. That work is then moved from the product backlog to a sprint backlog, which is the list of tasks needed to complete the product backlog items the team has committed to complete in the sprint.
Daily Scrum: Each day during the sprint, a brief meeting called the daily scrum is conducted. This meeting helps set the context for each day’s work and helps the team stay on track. All team members are required to attend the daily scrum. Sprint Review Meeting: At the end of each sprint, the team demonstrates the completed functionality at a sprint review meeting, during which, the team shows what they accomplished during the sprint. Typically, this takes the form of a demonstration of the new features, but in an informal way; for example, PowerPoint slides are not allowed. The meeting must not become a task in itself nor a distraction from the process. Sprint retrospective: Also, at the end of each sprint, the team conducts a sprint retrospective, which is a meeting during which the team (including its ScrumMaster and product owner) reflect on how well Scrum is working for them and what changes they may wish to make for it to work even better.
5
Agile Software Development
February 25, 2019
Graphical introduction to Scrum: -
This graphic is associate introduction to the essential parts of victimization beginning for agile software package development. At the start of each sprint, the team selects some amount of work from the product backlog and commits to completing that work during the sprint. Part of figuring out how much they can commit to is creating the sprint backlog, which is the list of tasks (and an estimate of how long each will take) needed to deliver the selected set of product backlog items to be completed in the sprint. At the end of each sprint, the team produces a potentially shippable product increment — i.e. working, high-quality software. Each day during the sprint, team members meet to discuss their progress and any impediments to completing the work for that sprint. This is known as the daily scrum, and is shown as the smaller green circle above.
3. Adaptive Software Development (ASD): Adaptive Software Development (ASD) is an uncontrived outgrowth of an older wiry framework, Rapid Application Development (RAD). It aims to enable teams to quickly and powerfully transmute to waffle requirements or market needs by evolving their products with lightweight planning and continuous learning. The ASD have three phases Speculate. Collaborate. Learn.
6
Agile Software Development
February 25, 2019
Speculate: In Adaptive Software Development, the term plan is replaced by the term speculate. While speculating, the team does not abandon planning, but it acknowledges the reality of uncertainty in complex problems. Speculate encourages exploration and experimentation. Iterations with short cycles are encouraged.
Collaborate: Composite applications are not built, they evolve. Complex applications require that a large volume of information be collected, analyzed, and try to the problem.
Learn: The Learn part of the Lifecycle is vital for the success of the project. Team has to enhance their knowledge constantly. Reviews should be washed-up without each iteration. Both, the developers and customers examine their assumptions and use the results of each minutiae trundling to learn the direction of the next.
ASD’s strengths include:
Focused on the end users, which can lead to better and more intuitive products
Allows for on-time and even early delivery
Encourages more transparency between developers and clients
ASD’s weaknesses include:
Demands extensive user involvement, which can be difficult to facilitate
Integrates testing into every stage, which can add to a project’s costs
Emphasis on rapid iterating and continuous feedback can lead to scope creep
7
Agile Software Development
February 25, 2019
4. Dynamic System Development Method (DSDM): DSDM is an agile software minutiae methodology. It is an iterative, incremental tideway that is largely based on the Rapid Application Minutiae (RAD) methodology. This method has four phases.
Feasibility and business study Functional model / prototype iteration Design and build iteration Implementation
In each phase DSDM depends on several different activities based on these rules.
Projects evolve weightier through uncontrived and co-located collaboration between the developers and the users. Self-managed and empowered teams must have the validity to make time sensitive and hair-trigger project-level decisions. Design and minutiae are incremental and evolutionary in nature and is largely driven by regular, iterative user feedback. Working software deliverables are specified as systems that write the critical, current merchantry needs versus systems that write less hair-trigger future needs. Frequent and incremental wordage of working software is valued over infrequent wordage of perfectly working software. All changes introduced during minutiae must be reversible. Continuous integration and quality warranty testing is conducted in-line, throughout the project lifecycle. Visibility and transparency are encouraged through regular liaison and collaboration amongst all project stakeholders.
5. Crystal: Crystal technique is an agile package development approach that focuses totally on individuals and their interactions once engaged on a project instead of on processes and tools.
Crystal Method Family Members: The things that Cockburn discovered is that the project properties reverted depending on the number of the people involved in the project and the level of difficulty of the project at hand. In other words, the increasingly people you have on the team, the increasingly hair-trigger the project is and the increasingly ramified the tideway needs to be. Therefore, there is no one single Crystal method; there are variegated Crystal methodologies for variegated types of projects. To make this simple to know, Cockburn named the methodology Crystal and categorized it all the same 2 dimensions size and criticality that matching those of minerals - color and hardness . 8
Agile Software Development
February 25, 2019
Which approach are most fitted for you comes depends on 3 dimensions:
Team size.
Criticality.
What the priority of the project is.
Generally, they are characterized by colors, equal to the number of people involved in the project:
6.Feature Driven Development (FDD): Feature Driven Development (FDD) is an agile framework that, as its name suggests, organizes software development around making progress on features. Features in the FDD context, though, are not necessarily product features in the commonly understood sense. They are, rather, more akin to user stories in Scrum. In other words, “complete the login process” might be considered a feature in the Feature Driven Development (FDD) methodology. FDD was designed to follow a five-step development process, built largely around discrete “feature” projects. That project lifecycle looks like this: 1. Develop an overall model 2. Build a features list 3. Plan by feature 4. Design by feature 5. Build by feature. FDD’s strengths include:
Simple five-step process allows for more rapid development
Allows larger teams to move products forward with continuous success
Leverages pre-defined development standards, so teams are able to move quickly
9
Agile Software Development
February 25, 2019
FDD’s weaknesses include:
Does not work efficiently for smaller projects
Less written documentation, which can lead to confusion
Highly dependent on lead developers or programmers
Traditional Software Development Method (TSDM): One of well-known ancient software system development ways is that the falls model. The waterfall model utilizes a structured progression between outlined phases: designing, analysis, design, implementation, and maintenance. Traditional Software Development have these key points: 1. Follows a high down approach, and creating changes isn't straightforward as finishing one part ends up in another. 2. It has a leadership style of working. 3. Pre-planning is done to carry out the different phases. 4. Customer is concerned simple within the initial phases of needs gathering. 5. The project plan is prepared before beginning the process of system development. 6. The ownership lies on the Project manager. 7. Believes in one-time delivery of the product.
Agile Software Development: Agile strategies took over the normal strategies, to beat the rigidity of the normal model. Agile follows a dynamic approach to software development. It is associate degree interactive associate degreed team primarily based methodology that aims to deliver an application in a very short span of your time. Agile Software Development have these key points: 1. Team conducts experiments on varied techniques and step by step arrives at the simplest attainable resolution 2. In agile, there's free flow of communication, anyone will gift their concepts at intervals the team
10
Agile Software Development
February 25, 2019
3. This is additional versatile as compared to ancient model, because it will amendment it's work flow supported any new request for modifications 4. Customer involvement is crucial for this model to prove its heart 5. Project work is delivered to the shopper in bit, that is, as and once one module is ready, an indication is given to the shopper, thus on ensure the work progress in a right direction. 6. It has the idea of shared possession, such as each team member is equally to blame for their individual contribution 7. Relies on incremental delivery of the product.
Conclusion: Both agile associated ancient model’s area unit essential for an economical software system development method. However, within the method of selecting associate acceptable model for software system development, one must determine the scope and needs of the project to be developed. Accordingly, a model is chosen that helps to deliver the correct things at the correct time. Agile Model will overcome few deficiencies that the normal model imbibes, however at constant time every model's professionals and cons should be weighed before reaching an accord.
11