Agile Model


Agile Method


This article is a introduction to Agile software development methodologies and it's application. This is not only suitable for software developers but also for Team Leaders, Project Managers, Product Managers, Development Managers, Testers, QA Managers, QA Engineers, Technical Writers, UX Designers, anyone involved in the delivering software.It doesn't describe any code or technology it's an method or an software engineering model which helps to develop a tool to it's best requirements or goals.
Agile Method is a combination of various sprint cycles initially of 1 to 4 weeks per sprint cycle. Deployment is alligned with the changing business need after the completion of every sprint cycle.
Agile adapts of frequent feedback by delivering workable product after every iteration/sprint cycle end.
In other words Agile Method is a series of short iteration/sprint cycles.


Agile Model is an incremental version of multiple waterfall model cycle so,br the changing need of a customer can be met to accomplish a goal at the end of the development and deployment process or to meet the requirements.
Waterfall model consists of,

Step-1: Analyze
Analyze the requirement of the stakeholder with the assistance of the SME's, product module specialists & client for the better understanding of the requirements collected to have the final product developed.
Step-2: Planning
Plan the product timeline by understanding the time required for development, design, test & deployment of the final product.
Step-3: Design
Design the documentation and wire-frames to have the brief understanding of the product features and functionalities for internal and extrernal stakeholders of the product.
Step-4: Build
This is the phase where the development start i.e. coding of the software based upon the language and the deployment strategy. Roles involved are Business Analyst, Developers & IU designers.
Step-5: Test
This is one of the most important step prior to deployment as in this phase the requirements are tested to identify the glitches and failed requirements of the product requested by the client.
Step-6: Deployment & Maintenance
Once the testing is completed a deployment/implementation phase begins where the final software is installed at client end. And a maintenance plan is shared with support specification.
So this was a brief overview of traditional waterfall model which is the base of all the models.
Below is a chart which shows the comparison between both the models,

Image courtesy codeproject.com

Agile Model - Understanding: The principles and values of agile software development were formed as a way to help teams to break the cycle of process inflation and mainly focus on simple techniques for achieving their goals.
The key is in Agile technique compressing the five sequences of the conventional software development method - called the Waterfall method - to a one-week cycle. It manages to do this by developing a system through repeated cycles (iterative) and in smaller portions (incremental), allowing developers to test and review during development. Speed, lower cost, and flexibility are key benefits.
There are many agile processes: SCRUM, Crystal, Behavior-Driven Development (BDD), Test-Driven Development (TDD), Feature-Driven Development (FDD), Adaptive Software Development (ADP), Extreme Programming (XP), and more.
These adaptations appear to come together with the combination of SCRUM and XP, in which SCRUM practices are used to manage multiple teams that use XP.


Extreme Programming
Extreme Programming emphasizes teamwork. Managers, customers, and developers. It improves a software project in five essential ways: communication, simplicity, feedback, respect, and courage.
According to Wiki definition: "Extreme Programming (XP) is a software development methodology which is intended to improve software quality and responsiveness to changing customer requirements. As a type of agile software development, it advocates frequent "releases" in short development cycles, which is intended to improve productivity and introduce checkpoints where new customer requirements can be adopted."
Extreme Programming is a set of simple and concrete practices that combine into an agile development process. XP is a good general-purpose method for developing software. Many project teams will be able to adopt it as is. Many others will be able to adapt it by adding or modifying practices.
What does it mean to say "Push them to extreme level"? Does that mean something like the following image?

That doesn't mean XP. XP meaans,

XP is a set of practices that conforms to the values and principles of Agile. XP is a discrete method, whereas Agile is a classification. There are many Agile methods, XP is just one of them.

SCRUM
Scrum is an iterative and incremental agile software development framework for managing software projects and product or application development. Its focus is on "a flexible, holistic product development strategy where a development team works as a unit to reach a common goal" as opposed to a "traditional, sequential approach“. Scrum asks why does it take so long and so much effort to do stuff. And why are we so bad at figuring out how long and how much effort things will take. Scrum embraces uncertainty and creativity.

Scrum Roles
These are core roles for producing the product,
  1. Product Owner
  2. Development Team
  3. ScrumMaster
  4. Stakeholders
  5. Managers

Product Owner:
  • The Product Owner represents the stakeholders and is the voice of the customer.
  • Accountable for ensuring value to the business.
  • Writes (or the team) customer-centric items (user stories), prioritizes them, and adds them to the product backlog.
  • Scrum teams should have one, may also be a member of the development team.
  • Not be combined with that of the ScrumMaster.

Development Team:
  • Responsible for delivering potentially shippable product increments at the end of each Sprint.
  • Made up of 3–9 people with cross-functional skills who do the actual work (analyze, design, develop, test, technical communication, document, etc.).
  • Self-organizing, even though they may interface with project management organizations (PMOs).

Scrum Master:
  • Accountable for removing impediments to the ability of the team to deliver the sprint goal/deliverables.
  • Is not the team leader, but acts as a buffer between the team and any distracting influences.
  • Ensures that the Scrum process is used as intended.
  • Enforcer of rules. Protector of the team and keep it focused on the tasks at hand.
  • Also been referred to as a servant-leader to reinforce these dual perspectives.
  • Differs from a Project Manager in that the latter may have people management responsibilities unrelated to the role of ScrumMaster.


Backlog
The product backlog is an ordered list of "requirements" that is maintained for a product. It consists of features, bug fixes, non-functional requirements, etc. - whatever needs to be done in order to successfully deliver a working software system. In Scrum, it is not required to start a project with a lengthy, upfront effort to document all requirements. This agile product backlog is almost always more than enough for a first sprint. The Scrum product backlog is then allowed to grow and change as more is learned about the product and its customers.
The sprint backlog is the list of work the Development Team must address during the next sprint. The list is derived by selecting stories/features from the top of the product backlog until the Development Team feels it has enough work to fill the sprint. This is done by the Development Team asking "Can we also do this?" and adding stories/features to the sprint backlog.

Conceptually, the team starts at the top of the prioritized Scrum backlog and draws a line after the lowest of the high-priority items they feel they can complete. In practice, it is not unusual to see a team select, for example, the top five items and then two items from lower on the list that are associated with the initial five.
Conclusion
A good agile team picks and chooses the management and technical practices that best work for them. When trying to adopt Agile practices, there will be a ton of excuses as why it won’t work. Those who understand the real benefits of the approach – and genuinely want to make the transition – will likely have success.

Reference codeproject

Comments

  1. Anonymous12.4.22

    How to Play Casino: Easy Guide to playing slots on
    Casino games are played by gri-go.com 4 players, 출장샵 the average time they take turns is febcasino around 14:20. The house is divided into three distinct https://tricktactoe.com/ categories: 출장안마 the house

    ReplyDelete

Post a Comment

Popular posts from this blog

How to verify systems designed in Business Analyst

WBS - Work Breakdown Structure