Agile development

 

                                    2. Agile development

Agility means the ability to move quickly and easily or to adapt to change smoothly.

Agility = the capability of a team or organization to:

·         Respond quickly to changes in requirements, market, or technology.

·         Deliver value continuously to customers.

·         Adapt processes and practices to improve efficiency.

·         Embrace feedback and adjust direction whenever needed.

Agile development is a software development methodology that focuses on flexibility, collaboration, and delivering working software in small, iterative cycles. Instead of following a strict step-by-step plan (like the traditional Waterfall model), Agile allows teams to adapt to changes quickly and continuously improve the product.

Popular Agile Frameworks:

·         Scrum – works in short sprints with defined roles (Product Owner, Scrum Master, Development Team).

·         Kanban – focuses on visualizing work, limiting work in progress, and continuous delivery.

·         Extreme Programming (XP) – emphasizes engineering practices like pair programming, test-driven development, and continuous integration.

·         Dynamic Systems Development Method (DSDM) – a more structured agile method used in business projects.

Example: Instead of building a full e-commerce app at once, agile delivers features step by step (Login → Browse Products → Cart → Payment).

·         Agile = Flexible software development method.

·         Works in small iterations (sprints) → 1–4 weeks.

·          Focus → Customer collaboration, adaptability, continuous delivery.

·          Principles → working software, quick feedback, team collaboration.

·          Frameworks → Scrum, Kanban, XP, DSDM.

Agile Process-

The Agile process is the step-by-step workflow teams follow to develop software in an iterative and flexible way.

Agile Process Steps

1.    Requirement Gathering → Collect high-level requirements (user stories).

2.    Planning → Break work into sprints (small time-boxed cycles).

3.    Design & Development → Build features in small increments.

4.    Testing → Continuous testing within each sprint.

5.    Review & Feedback → Demo to stakeholders, get feedback.

6.    Deployment → Deliver working software frequently.

7.    Retrospective → Team reflects on what went well and what to improve.

8.    Repeat → The cycle continues until the product is complete.

Example (E-commerce):

·         Sprint 1: Build login system

·         Sprint 2: Product catalog

·         Sprint 3: Cart system

·         Sprint 4: Payment integration

Key Principles of Agile :

1.    Individuals and interactions over processes and tools

2.    Working software over comprehensive documentation

3.    Customer collaboration over contract negotiation

4.    Responding to change over following a fixed plan

12 Policies/Principles of Agile Development

1.    Customer satisfaction by delivering valuable software early and continuously.

2.    Welcome changing requirements, even late in development.

3.    Deliver working software frequently (weeks, not months).

4.    Business people and developers work together daily.

5.    Build projects around motivated individuals and trust them.

6.    Face-to-face communication is the most effective way to convey information.

7.    Working software is the primary measure of progress.

8.    Sustainable development – teams should maintain a constant pace.

9.    Continuous attention to technical excellence improves agility.

10.                       Simplicity – maximize the amount of work not done.

11.                       Self-organizing teams create the best architectures and designs.

12.                       Regular reflection (retrospective) on how to become more effective, then adjust.

Agile policies focus on:

·         Fast delivery

·         Flexibility

·         Customer involvement

·         Team collaboration

·         Continuous improvement

Human Factors in Agile (exam-friendly):

·         Teamwork & Collaboration – cross-functional teams work together.

·         Communication – direct and clear interaction (daily stand-ups).

·         Motivation & Trust – self-motivated, trusted individuals.

·         Customer Involvement – regular feedback and collaboration.

·         Adaptability & Sustainable pace – flexible to change, avoid burnout.

Agile values people over process – success depends on teamwork, communication, trust, and customer collaboration.

Extreme Programming (XP) is one of the agile software development methodologies that focus on high-quality code, continuous feedback, and flexibility to change requirements. It is especially useful when requirements are uncertain or change frequently.

Key Practices of XP:

1.    Pair Programming → Two programmers work together at one computer (one writes, one reviews).

2.    Test-Driven Development (TDD) → Write tests before writing code.

3.    Continuous Integration → Code is integrated and tested frequently (many times a day).

4.    Small Releases → Deliver software in small, frequent updates.

5.    Refactoring → continuously improve and simplify the code without changing functionality.

6.    Simple Design → Keep the system as simple as possible.

7.    Collective Code Ownership → anyone can improve any part of the code.

8.    Sustainable Pace → Avoid overtime and burnout.

9.    Coding Standards → Follow consistent coding rules.

10.   On-site Customer → Customer representative is available to provide quick feedback.

Advantages of XP:

·         High quality and clean code.

·         Adapts quickly to changes.

·         Strong customer satisfaction (continuous involvement).

·         Early bug detection through testing.

 Example:

If you are building an online banking system:

·         Developers work in pairs,

·         Write tests before coding a “transfer money” feature,

·         Release a small working version (login + balance check),

·         Get customer feedback, and then improve in the next cycle.

XP Values

1.    Communication – Clear, constant communication within the team and with customers.

2.    Simplicity – Keep design and code as simple as possible.

3.    Feedback – Continuous feedback from tests, customers, and teammates.

4.    Courage – Courage to accept changes, refactor code, and try new ideas.

5.    Respect – Team members respect each other’s ideas, efforts, and contributions.

XP Process Steps

1.    Planning → Collect user stories, estimate effort, prioritize with customer.

2.    Design → Keep it simple; create basic design for current stories.

3.    Coding → Use pair programming, follow coding standards, collective ownership.

4.    Testing → Apply Test-Driven Development (TDD), unit + acceptance tests.

5.    Release → Deliver small, frequent releases to the customer.

6.    Feedback → Customer reviews, team retrospectives, adapt to changes.

7.    Refactoring & Improvement → continuously clean and improve the code.

Adaptive Software Development (ASD) is a software development methodology that emphasizes flexibility and responsiveness to change. It's a dynamic approach that thrives on iterative development, collaboration, and continuous learning to adapt to evolving project requirements and market conditions. ASD is particularly well-suited for complex, innovative, and rapidly changing environments where traditional, rigid development models fall short. 



Key Characteristics of ASD:

·         Iterative and Incremental:

ASD involves breaking down the project into short cycles or iterations, with each cycle focusing on delivering functional components and incorporating feedback. 

·         Continuous Adaptation:

The process is designed to adapt to changing requirements, technological advancements, and stakeholder feedback throughout the project lifecycle. 

·         Collaboration:

ASD emphasizes open communication, teamwork, and collaboration among team members and stakeholders. 

·         Learning:

ASD encourages teams to learn from each iteration and use that knowledge to refine the approach for subsequent cycles. 

·         Speculation and Adaptation:

Instead of detailed upfront planning, ASD relies on speculating on the best approach and adapting plans based on new information and feedback. 

·         Risk-Driven:

ASD acknowledges that change is inevitable and incorporates risk management throughout the development process. 

What Is Scrum?

Scrum is an agile framework designed to help teams address complex problems while delivering high-value products in an iterative, adaptable manner. It's based on empirical process control, grounded in the three pillars of transparency, inspection, and adaptation

Scrum Principles & Values

Core principles that underpin Scrum include:

·         Transparency: Teams work openly, ensuring visibility into all aspects of the process Geeks for Geeks, Amazon Web Services.

·         Reflection (Inspection): Regular opportunities to assess and adapt processes

·         Adaptation: Rapid re-prioritization based on feedback and shifting requirements

The five Scrum values

1.    Commitment

2.    Courage

3.    Focus

4.    Openness

5.    Respect

Roles

·         Product Owner: Represents stakeholders, prioritizes the backlog, and ensures value delivery

·         Scrum Master: Acts as facilitator, coach, and impediment remover; ensures adherence to Scrum practices.

·         Development Team: A self-organizing group (typically 3–9 members) responsible for delivering product increments.


What Is DSDM?

The Dynamic Systems Development Method (DSDM) is an agile project delivery framework initially created in 1994 to bring discipline to Rapid Application Development (RAD) efforts. Over time, DSDM evolved beyond software into a comprehensive project management approach across various domains

Principles of DSDM

DSDM is governed by eight guiding principles that ensure value-driven, controlled, and collaborative delivery

Focus on the Business Need

1.    Deliver on Time

2.    Collaborate

3.    Never Compromise Quality

4.    Build Incrementally from Firm Foundations

5.    Develop Iteratively

6.    Communicate Continuously and Clearly

7.    Demonstrate Control

Limitations:

·         Implementation can be costly

·         Requires significant structure and management support

·         Less widely adopted compared to Scrum or Kanban, especially in regions like the U.S.—some find it rigid or enterprise-heavy.


Lifecycle Phases of DSDM


DSDM organizes work into structured phases, ensuring systematic progress and alignment.

The  relation between Rational Unified Process (RUP) and Agile.

Rational Unified Process (RUP)

  • A software development process framework created by IBM.
  • Structured, phase-based: Inception → Elaboration → Construction → Transition.
  • Focuses on documentation, architecture, and discipline.

RUP vs Agile

  • RUP = more structured, heavy documentation.
  • Agile = lightweight, adaptive, customer-driven.
  • Both are iterative & incremental (not like Waterfall).

Agile Unified Process (AUP)

To make RUP more Agile, Scott Ambler created AUP

  • Keeps RUP’s phases (Inception, Elaboration, Construction, and Transition).
  • Applies agile principles: short iterations, daily stand-ups, test-driven development, continuous integration, customer collaboration.
  • Lightweight → less documentation, more working software.

·          RUP = disciplined, structured, heavy.

·         Agile = flexible, lightweight, fast.

·         AUP = a bridge → RUP made Agile (iterative, simple, customer-focused).

The Agile Unified Process (AUP) is a simplified version of the Rational Unified Process (RUP) that follows Agile principles.
It was introduced by Scott Ambler to make RUP more lightweight and flexible.

Characteristics of AUP

·         Agile + RUP → Combines structured RUP with Agile practices.

·         Iterative & Incremental → Develop software in short cycles.

·         Simple & Lightweight → Avoids heavy documentation.

·         Adaptable → can easily adjust to changing requirements.

·         Model-driven + Code-focused → Uses simple models but emphasizes working code.

Phases of AUP

1.    Inception → Define scope, goals, initial requirements, and risks.

2.    Elaboration → Refine architecture, plan iterations, identifies major use cases.

3.    Construction → iteratively build the system (coding + testing).

4.    Transition → Deliver system to users, perform final testing and deployment.

5.    Production → Operate, support, and maintain the software.

Example of Agile :

1)Spotify (Music App)

·         Spotify uses Agile + Scrum + Kanban (called the “Spotify Model”).

·         Instead of building the full app at once, they release features in small increments.

o    First sprint: basic music streaming.

o    Next sprint: playlists.

o    Next sprint: offline mode.

o    Later: podcasts, lyrics, AI recommendations.

·         They continuously gather user feedback and improve features.

2) Swiggy / Zomato (Food Delivery Apps)

·         Started with a basic ordering system (restaurants + delivery).

·         Later sprints: added real-time tracking, online payments, offers/coupons, rating system.

·         Customers test each feature early, and the company adapts fast.

 3) Amazon (E-commerce)

·         Amazon adds features gradually instead of waiting for a big release.

·         Example: They first launched basic book-selling, then step by step added electronics, clothing, 1-click checkout, Prime delivery, and Alexa integration.

·         Agile allows them to test features quickly with real customers.

 4) Google Maps

·         Started with basic maps.

·         Added directions → real-time traffic → street view → offline maps → live location sharing. Every update was delivered in small increments using Agile.

Agile is used in real companies like Spotify, Amazon, Swiggy, Zomato where features are delivered step by step with continuous customer feedback.



Assignment 2

·       What is Agile Development?

·       What are the core values of the Agile?

·       What are principles of Agile?

·       Explain the Agile process

·       Explain Extreme Programming (XP)

·       What is Agile Unified Process (AUP)?

·       How does Agile handle changing requirements?

·       What is Adaptive Software Development (ASD)?

·       Who introduced ASD?

·       What are the main phases of ASD?

·       How is ASD different from the Waterfall model?

·       Is ASD iterative or sequential? Explain.

·       What is Scrum in Agile methodology?

·       What are the 3 main roles in Scrum?

·       Define a sprint in Scrum.

·       What is the duration of a sprint?

·       How does Scrum handle changing requirements?

·       What is DSDM in Agile development?

·       Who developed DSDM and when?

·       What are the main goals of DSDM?

·       Is DSDM iterative or sequential?

·       Name any two principles of DSDM.

·       What is the Agile Unified Process (AUP)?

·       Who developed AUP?

·       How is AUP related to RUP (Rational Unified Process)?

·       What are the main goals of AUP?

·       Is AUP iterative or sequential?

 

SHARE

Milan Tomic

Hi. I’m Designer of Blog Magic. I’m CEO/Founder of ThemeXpose. I’m Creative Art Director, Web Designer, UI/UX Designer, Interaction Designer, Industrial Designer, Web Developer, Business Enthusiast, StartUp Enthusiast, Speaker, Writer and Photographer. Inspired to make things looks better.

  • Image
  • Image
  • Image
  • Image
  • Image
    Blogger Comment
    Facebook Comment

0 comments:

Post a Comment

Agile development

                                               2. Agile development Agility means the ability to move quickly and easily or to adapt to c...