What is Agile Software Development and it’s Scrum Methodology

Table of contents

    The Agile software development model has been introduced to overcome the drawbacks of traditional software development models like the Waterfall Model. Agile software development is one of the essential topics covered in the software development course.

    Scrum is a popular Agile framework, which helps various teams to work together. It is widely used in many organisations today. We will further discuss Agile and Scrum throughout this article.

    If you wish to become a professional in software engineering or are interested in an IoT online course, check out the IIT Madras software engineering online course. This course will cover advanced software engineering for Cloud, Blockchain, and IoT.

    In this article, we will cover the following topics:

    • What is Agile Software Development?
    • Agile Methodology
    • Why do we need an Agile Model?
    • What is the Agile Manifesto?
    • Business Benefits of Agile Methodology
    • What is Scrum in Agile Methodology

    What is Agile Software Development?

    Agile is a software development approach that provides continuous delivery of software to build applications in several iterations. It evolves through cross-functional teams with collaborative efforts to develop software where solutions are created using rapid and flexible methods for achieving the desired outcomes. 

    Agile allows you to deliver working software faster, higher quality in software development, and greater flexibility and adaptability. It also allows you to work together with other teams more efficiently and effectively to develop software. 

    Agile Methodology

    Agile Methodology focuses on the following methods:

    • Periodic Inspection and Adaptation of software
    • Collaborative and cross-functional teams
    • Self-organising teams and accountability
    • Rapid and flexible methods to develop high-quality software
    • Meeting customer requirements and organisation goals

    Agile Methodology involves using several Agile frameworks like Scrum, eXtreme Programming (XP), Kanban, Lean, etc. 

    Why do we need an Agile Model?

    Before Agile, several organisations used traditional software development models like the Waterfall model. The Waterfall model is a sequential approach consisting of the phases: Requirements Analysis, Design, Development, Implementation, Testing, and Maintenance. The model is a linear model mainly used for small projects.

    The following are the disadvantages of using this model:

    • You cannot head into another stage unless the current stage is implemented completely. Hence, it consumed a lot of time for the completion of one phase
    • The final product is delivered only after the completion of the final phase of the model
    • Cannot go back to the previous stage to make any changes as there is no iteration

    Agile has overcome these drawbacks using the Agile Manifesto. Moving ahead, let’s discuss the Agile Manifesto.

    What is the Agile Manifesto?

    Agile Manifesto is a document that includes four values and 12 principles for Agile software development. 

    The values of the Agile Manifesto are as follows:

    1. Customer collaboration over contract negotiation
    2. Responding to change over following a plan
    3. Individuals and interactions over processes and tools
    4. Working software over comprehensive documentation

    The 12 Principles of the Agile Manifesto are as follows”

    Agile Principle-1:

    “Our highest priority is to satisfy the customer through early and continuous delivery of valuable software.”

    Agile Principle-2:

    “Welcome changing requirements, even late in development. Agile processes harness change for the customer’s competitive advantage.”

    Agile Principle-3:

    “Deliver working software frequently, from a couple of weeks to a couple of months, with a preference to the shorter timescale.”

    Agile Principle-4:

    “Business people and developers must work together daily throughout the project.”

    Agile Principle-5:

    “Build projects around motivated individuals. Give them the environment and support they need, and trust them to get the job done.”

    Agile Principle-6:

    “The most efficient and effective method of conveying information to and within a development team is face-to-face conversation.”

    Agile Principle-7:

    “Working software is the primary measure of progress.”

    Agile Principle-8:

    “Agile processes promote sustainable development. The sponsors, developers, and users should be able to maintain a constant pace indefinitely.”

    Agile Principle-9:

    “Continuous attention to technical excellence and good design enhances agility.”

    Agile Principle-10:

    “Simplicity: the art of maximising the amount of work not done is essential.”

    Agile Principle-11:

    “The best architectures, requirements, and designs emerge from self-organising teams.”

    Agile Principle-12:

    “At regular intervals, the team reflects on how to become more effective, then tunes and adjusts its behaviour accordingly.”

    Business Benefits of Agile Methodology

    • Faster delivery time to market
    • A decrease in risk of any missed requirements
    • Delivery of high-quality software or end product
    • Increase in stakeholder engagement
    • Collaborative interaction between teams and customers
    • Teams can quickly respond to changes or feedback from the customers and implement them at minimal costs

    What is Scrum in Agile Methodology?

    Scrum is a lightweight framework in Agile Methodology, which helps people, teams, and organisations address values through adaptive solutions for complex problems. The framework utilises an iterative and incremental approach for optimising predictability and managing risks. In Scrum, the work is distributed so that it can fit short increments called Sprints. Scrum requires a Scrum Master to nurture the environment where:

    1. A product owner arranges the work for a complex problem into a Product Backlog
    2. The Scrum team converts the work selection into an increment of a value during a Sprint
    3. Now, the team and its stakeholders will inspect the outcomes and modify them for the next Sprint
    4. The customer will provide continuous feedback, and the process will be repeated by improvising the product

    Scrum motivates people and teams to learn through previous experiences, self-organisation when working on a problem, and analyse and rectify mistakes to continuously improve.

    History of Scrum

    Hirotaka Takeuchi and Ikujiro Nonaka, two professors from Japan, introduced the term “scrum” in their Harvard Business Article in 1986. They presented Scrum in the context of product development. The article described this as the holistic or rugby approach, where the team proceeds forward while passing the ball back and forth. The approach describes the entire process is performed by one cross-functional team over several overlapping phases.

    In the early 1990s, Ken Schwaber and Jeff Sutherland developed their own Scrum and presented it at Easel Corporation, which had quite similar approaches. Later, they both worked together to implement their ideas into a single framework. In 1995, they presented a paper together at the Object-Oriented Programming, Systems, Languages & Applications (OOPSLA) conference in Austin, Texas. After performing numerous tests and improvements, they released the first version of Scrum Guide in 2010, helping people understand Scrum. 

    Why Scrum?

    • The rules, artefacts, events, and roles of the Scrum framework are pretty simple to understand
    • It has a semi-prescriptive approach, which helps in removing the ambiguities in the development process
    • It helps in developing complex software and hardware products across several industries
    • High-quality software, decreased time to market, higher customer satisfaction
    • Increase in collaboration and ownership

    Scrum Theory

    Scrum was founded based on empiricism and lean thinking. Lean thinking focuses on the essentials by putting aside the waste. Empiricism is a technique where knowledge comes from experience and makes decisions based on observations. It relies on three principles: Transparency, Inspection, and Adaptation.

    Transparency

    The progress of the work should be visible to both team members and clients. Transparency enables Inspection, where Inspection is misleading and wasteful without Transparency.

    Inspection

    The artefacts and progress must be inspected periodically to detect any issues. An inspection enables Adaptation, where it is pointless to consider Inspection without Adaptation.

    Adaptation

    If the end product is unsatisfactory or the process deviates outside the acceptable limits, the process must be adjusted as soon as possible to minimise further deviation. Adaptation becomes quite tricky when the involved people or teams are not empowered or self-managed. The Scrum team must learn through Transparency and Inspection and adapt to improvising the product.

    Scrum Values

    Below are the five values that determine the Scrum team to become more proficient:

    1. Commitment: The people in the Scrum team commit to achieving their goals and supporting each other.
    2. Focus: The people’s primary focus is on Sprint’s work and to achieve their goals with progress.
    3. Openness: The Scrum Team and its stakeholders are committed to open about the work and its challenges.
    4. Respect: The team members respect each other to be capable and independent people.
    5. Courage: The Scrum team’s people have the courage to do the right thing and work on challenging problems.

    You must have noticed I have used the term “Scrum team” several times and must be wondering who exactly is present in the team. Let’s move on to discuss the members of the Scrum team.

    Scrum Team

    The Scrum team includes one Scrum Master, one Product Owner, and Developers. The team comprises all professionals whose target is to accomplish the objectives and achieve the end product. There are no sub-teams within a Scrum team. The team is responsible for all the product-related activities like stakeholder collaboration, verification, maintenance, operation, experimentation, research, development, etc. 

    Developers

    Developers are a self-organising and cross-functional team to develop and deliver the product. Their core responsibilities are:

    • To create a plan for the Sprint, the Sprint Backlog by following the guidelines of the Product Owner and the Scrum Master
    • Quality check of the product
    • Inspecting and Adapting their plan to achieve goals

    Product Owner

    The Product Owner is responsible for maximising the product’s value from the work of Developers. The work of the Product Owner includes:

    • To develop the product’s goals and objectives, and communicate with Developers
    • To create and communicate the items of Product Backlog and ordering them
    • To ensure that the Product Backlog is transparent, visible, and understood

    Scrum Master

    The Scrum Master’s responsibility includes establishing Scrum as described in the Scrum Guide. The master ensures that the team follows and implements Scrum’s theories, rules, and practices.

    The work of the Scrum Master includes:

    • To ensure that everyone understands the objectives and goals of the product
    • Removal of impediments and obstacles slowing down the team’s progress
    • Advise the Product Owner to improve the effectiveness and efficiency of the team’s work
    • To establish empirical product planning to improve productivity
    • Facilitate the stakeholder collaboration when requested and needed
    • To remove barriers or obstacles between stakeholders and Scrum teams
    • Guide the stakeholders and Scrum teams to understand the empirical approach of Scrum

    With this, the Agile Scrum tutorial comes to an end. We have covered all the fundamentals of Agile software development and its Scrum methodology. I hope you are comfortable with all the concepts.