icon
info@indianagileboard.com

Resources

SOFTWARE DEVELOPMENT LIFE CYCLE (SDLC) :


SDLC means all the procedures required to make a software product advance along with its life cycle phases. In detail, the SDLC model illustrates the diverse activities carried out on a software product from its founding to its retiral.

sdlc

Requirement analysis and Planning
Requirement analysis is a crucial phase in SDLC. It is achieved with the inputs from all the stakeholders and domain experts. Identification of risks and quality assurance requirements is also done in this phase. Product people need to procure all the data like the requirements, who will be the end-user, and what is the intent of the product.

Defining requirements
After the requirement analysis is done, the next phase is to prepare a document of software requirements.

Designing the software
In this stage, the knowledge of requirements, analysis, and design of the software project is understood. This stage is the outcome of the previous two stages.

Developing the project
In this stage, the actual development starts, and the programming is put up. Developers start coding according to codding guidelines described by their management.

Testing
Once the code is created, it is tested to make sure that the products are serving the needs addressed during the requirement phase.

Maintenance
After ensuring that there are no bugs or errors, the product is deployed. Then, depending on the assessment, the product may be released.

Maintenance begins after the software is deployed.

When the client begins the use of developed software, the real issues come up and these issues need to be addressed from time to time.

The above-stated procedure is called maintenance.

DIFFERENT SDLC METHODOLOGIES

Waterfall Method :



waterfall

This is the classical SDLC methodology. The entire process of development is split into various phases. It is a linear-sequential life cycle model where each stage must be finished before the next stage can start and the outcome of one phase is input for the next stage sequentially. Here, the requirements, process, and results are well documented. This method works well if requirements do not alter. Though this method is suited to smaller projects where requirements are well defined, it has many drawbacks.


Major Drawbacks of Waterfall Method :


  • No working software is built till the end of SDLC.
  • Cannot handle changing requirements.
  • A high amount of risk and uncertainty.
  • It does not focus on the individual team member.
  • The testing phase is delayed.
  • Measuring the progress within the stages is difficult.

AGILE

agile

Agile is a philosophy, driven by a set of Principles and Values to meet the changing requirement of customers, processes, systems, and people as a whole. Agile is used in project management and software development. The Agile mindset enables the conception, collaboration, learning, and adaption to attain high-performing results. Teams can adapt to change and deliver incremental value to their customers by combining processes and tools with an Agile mindset.

Brief History

Agile manifesto took shape in February 2001 at a resort in Utah when seventeen people met to talk, relax and eat. The clique contained representatives from different areas of software engineering who have the conviction that there is a need for a substitute for the traditional, documentation-driven software development process.


Agile Manifesto

Agile Manifesto is made of 4 values and 12 principles.


Agile Values

  • Individuals and Interactions over Processes and Tools
  • Working Software over Comprehensive Documentation
  • Customer Collaboration over Contract Negotiation
  • Responding to Change Over Following a Plan

The four Agile Values can be summarized as follows, respectively.

  • PEOPLE
  • PRODUCT
  • COLLABORATION
  • RESPONSE

In fact, the entire Agile manifesto revolves around the above four words.


Agile Principles

  • Our highest priority is to satisfy the customer through early and continuous delivery of valuable software.
  • Welcome changing requirements, even late in development. Agile processes harness change for the customer's competitive advantage.
  • Deliver working software frequently, from a couple of weeks to a couple of months, with a preference for the shorter timescale.
  • Business people and developers must work together daily throughout the project.
  • Build projects around motivated individuals. Give them the environment and support they need, and trust them to get the job done.
  • The most efficient and effective method of conveying information to and within a development team is face-to-face conversation.
  • Working software is the primary measure of progress.
  • Agile processes promote sustainable development. The sponsors, developers, and users should be able to maintain a constant pace indefinitely.
  • Continuous attention to technical excellence and good design enhances agility.
  • Simplicity--the art of maximizing the amount of work not done--is essential.
  • The best architectures, requirements, and designs emerge from self-organizing teams.
  • At regular intervals, the team reflects on how to become more effective, then tunes and adjusts its behavior accordingly.

Popular Agile frameworks

  • Scrum
  • Kanban
  • XP
  • Scrumban

Scrum



Scrum is a simple framework driven by Agile principles and values formulated to assist small cross-functional and self-organized teams to develop complex products.

Benefits of using Scrum :

  • Teams can build iteratively and incrementally and production is done according to the customer requirements quickly and effectively.
  • Scrum framework enables teams to take feedback at the end of every sprint(iteration) so that the developing product is aligned with the customer’s needs.
  • Scrum enhances ROI by reducing costs as it aids in removing waste and avoids unimportant work producing faster, leaner, and cost-effective development teams and processes.

Scrum structure

Scrum structure consists of scrum teams and their roles, ceremonies, artifacts, and rules.


SCRUM ROLES:

scrum roles

Product Owner

  • Prioritizes the Product Backlog
  • Learn the customers' needs.
  • Be available to the development team to answer questions.

Scrum Master

  • Ensure that team members understand Agile processes.
  • Aids the product owner with product backlog.
  • Removes impediments.

Development team

Designs, builds, integrates and tests the product backlog items into increments of working software.


SCRUM PILLARS

“The methodology is founded on the empirical process-control theory and three concepts act as pillars in upholding the implementation of this theory. They are Transparency, inspection, and adaption.”


Transparency

As per the Scrum Guide, "The rising system and work should be apparent to those playing out the work as well as those getting the work." It implies that all aspects of the process should be understandable for everyone in the Scrum Team.


Inspection

Inspection is a critical aspect of empirical process control as it is what makes the Scrum structure versatile to complex issues. The investigation is done not just by the Scrum Master, PO, or CEOs. It is done by everybody associated with the project.


Adaption

With regards to Scrum, product development is regarded as the constant improvement of the product. It is the ability to improve or adapt to the feedback of the inspection. Agile Methodology has forever been adaptive to changes.


Commitment

The primary Scrum value is commitment. Commitment is staying dedicated to the sprint goal. Meeting daily challenges is vital, but it is also important to speak if the project is not on track.


Scrum values:

Focus means staying on track and helping the other team member do the same. It is good to avoid distractions and multitask.

Openness means being open-minded to communicate with the other team members. Need to encourage new ideas and styles of doing the work, which helps the team to move forward.

Team members should have a broad mind of respect for others' opinions and ideas and also need to respect the customers and stakeholders, so that the team's work is aligned with their needs.

courage to move beyond your comfort zone to achieve success is required so that challenging problems are solved.


Scrum Ceremonies

  • Sprint
  • Sprint Planning
  • Daily Scrum
  • Sprint Review
  • Sprint Retrospective

Sprint

Sprint is the container event for all scrum events. It is a fixed time-box of one week to four weeks. Backlog refinement takes place during the sprint. The product owner can cancel the sprint if the sprint goal is absolute.


Sprint Planning

A sprint planning meeting is conducted on the first day of the sprint. In the sprint planning meeting, the entire scrum team collaborates and discusses prioritized backlog items and defines the sprint goal. Scrum Master facilitates the meeting and the product owner set out the sprint goal and reply the questions from the development team regarding execution and acceptance criteria. Finally, developers declare how much of the prioritized work can be completed during the current sprint. In brief, the Sprint planning meeting is all about the following three points.

  • What is the value add created to the Product?
  • Select items to be implemented
  • Planning how the work will get completed

Participants

The entire Scrum team participates. i.e the development team, product owner, and the Scrum Master.


Time box

8 hours for four weeks sprint. Shorter for shorter sprints.


Inputs for the sprint planning meeting

  • Prioritized backlog
  • Teams’ available capacity
  • Latest product increment
  • Past performance of the team.

Outputs of the sprint planning meeting

  • Sprint goal
  • Sprint backlog

NOTE: Sprint Backlog = Sprint Goal + selected Product Backlog items + Plan to deliver them.


Daily Standup

A daily standup is a short meeting conducted to know the progress of each team member towards the sprint goal and also to identify if there are any impediments. The daily scrum is conducted daily at the same place and at the same time so that the team has no difficulty attending. Daily scrum reduces the need for other meetings and helps the team to make quick decisions.


Time box

15 minutes


Participants

The entire Scrum team. But developers have the major role whereas Product owner and the Scrum Master are listeners.


Inputs for the daily scrum

  • Sprint backlog
  • Sprint goal.

Outputs of the daily scrum

  • Plan for next 24 hours
  • List of impediments if any

Sprint review

The sprint review is an informal meeting conducted on the last day of the sprint where the team demonstrates the product and will find what is completed and what isn't. The agenda of the meeting include new features, sprint impediments and analysis of whether the sprint goal is achieved.


Time box

4 hours for one month sprint. Shorter for shorter sprints.


Participants

Usually, the Product Owner, the development team, the Scrum Master, management and the customers participate in the Sprint review meeting.


Sprint Retrospective

The Retrospective is another scrum event which is conducted on the last day of the sprint. In this event, the Scrum Team inspects how the last sprint went with reference to individuals, interactions, processes, tools. The scrum team discusses what went well during the sprint, what challenges if faced, and how those were (or were not) solved. The Scrum team pick outs the most helpful changes to improve its effectiveness.

During the Sprint Retrospective, the team discusses:


  • What went well in the Sprint
  • What could be improved
  • What will we commit to improve in the next Sprint

Time box

3 hours for one month sprint. Shorter for shorter sprints.


Participants

The entire Scrum team. (The development team, Scrum Master and the Product Owner)


User story

A user story is a tool used in agile software development to understand a software feature from an end- user perspective. In simple terms, a user story is a requirement expressed from the end user’s perspective. The user story tells the type of user, what they, want and why.

Characteristics of a user story- 3 Cs


The user story in its raw form is a user card. Though there are many different ways of writing user stories, the best way of writing is to follow a template that contains ROLE, GOAL, and BENEFIT.

A conversation is needed to get the further details of the card so that the real value of the card is understood. And the card is to be adjusted to the understanding of the conversation.

Acceptance criteria are said to be the confirmation of the story card. Acceptance criteria capture the essential requirements so that in the end we know if we have successfully delivered the user story.


An Example user story

As a XYZ app user, I want to withdraw cash from my bank account using the mobile app so that I can withdraw the cash even without using the card.


Acceptance criteria

  • User can log in to the mobile app.
  • User can enter the desired amount to withdraw.
  • The desired amount is within the user’s current balance.
  • Accounts are updated concurrently after validation.
  • Email and in-app confirmation of transaction are sent to the user.