Blog

Agile way of working

One has to fulfill your needs, thus the birth of a business. The whole value chain is so beautiful that, you as customer & contributor will experience in the value chain.
The needs can arise from everywhere. Industry segments can be broadly classified as
1. Banking & Finance
2. Insurance
3. Retail
4. Manufacturing
5. Defence
6. Transportation
7. Oil & Gas
8. Aviation
9. Hospitality
10. Medical
and so on.

Your needs are from one or more from above list! Isn’t it? You are customer of bank, You have vehicle and it’s insured, You buy clothes, groceries, utensils, electronics, You travel, You fly, You use fuel, You goto doctor, You enjoy staying in resort and list goes on!

How the needs are met?
It is not so easy for any business function to run as usual. It takes lot of effort and time in understanding the expectations, convincing the customers.

You are a customer and have got need. What is that need?

Let’s say you are looking for a website to sell fruits and vegetables. So who can develop for me? While you are searching for one, the other side companies make effort to sell their capabilities to earn the projects!

Companies, corporates based on the capabilities, skill & competence, do bid for work. It is not so easy. Before anyone gives you work to call them as customer, companies generate leads.

So, these leads are the one who have or float business needs r requirement in the market.

Sales & marketing team goes after these leads convincing, showcasing the capabilities, offerings! Their goals is to get business. They need to show the differentiators, value adds in order to win the confidence of leads to come for the next level discussions.

The leads are now converted into prospects, further classified as Hot and Cold. The sales, engineering teams chase these prospects to understand the requirements, showcase the domain & technology capabilities, products etc.

It is a win win situation for both prospects and companies as they mutually understand the needs and capabilities. Finally prospect is now a customer of a company.

Assume that your need is to build a website for your business. i.e. shopping cart for fruits & vegetables.

So how this gets executed in Information Technology sector. You will having questions your minds like

1. How the requirements are collected
2. How the design and implementation is done?
3. What are the various testing performed?
4. What process involved in execution?
5. What are the different roles ? and so on!

Let’s understand this in detail.

Software Engineering
Software engineering is an art associated with development of software product using well-defined principles, methods and guidelines.

The outcome of software engineering is a quality and reliable software product.

While developing a software, always keep the below two objectives that are essential for business growth

Customer Experience: An end user experience has direct impact on the business. As the need of an end user keeps changing, it is essential to provide better and better customer experience. A bad customer experience will result in Business loss. Remember!! “You are also an end user. As a customer you are experiencing so many things in your life”.

Good Experience: A smartphone with voice commands or with touch
operations as compared to keypad operated mobile phones

Bad Experience: You go to an ATM to withdraw cash. After swiping card,
it says ATM is down for maintenance.

Operational Excellence: Optimising the operations for effective working and to achieve quick results. Over period of time, technology is evolved and making lot of process automations. As a result, the work is becoming more quicker and smarter.

For example, You enter into a super market. You are finished buying goods and you want to pay. However you see a huge queue! What do you want to do? Wait or Expect a facility for faster payments?

Super Market, may introduce instant billing systems as you select the goods! Isn’t is faster than standing in the queue!

Another example:
ATM checks your wish before printing the bill. Isn’t it good, saving paper when you don’t print it!

This may result a cost saving for a bank!

Design Thinking:
As a programmer, you are required to have design thinking while developing a software. When product is launched! Customer should love it!
Factors Impacting a Project:
Project is temporary work which has a start and end date. Project is driven by Scope, Time & Cost. As the scope varies, impact on time further impact on cost.

Earlier companies followed waterfall and similar models to develop the applications. It was good since then, process was perfectly working fine and customers were happy. However as time progressed, customers priorities changes.

Customers have to compete with others as technology advancements were faster making business functions faster. Customer need to be in the race!

Why Agile?
Frequent changes in the requirements, customer priorities based on market conditions, customer expectations to see early glimpse of products etc lead to the evolution of new way of working called ‘ Agile”.

Requirements often change, likewise customer expectations, priorities. In traditional models it is difficult to achieve desired results in quick time. Agile makes it easier!

Agile gives the flexibility to build products in small releases so that customer is experiencing the results for business decisions.

In simple terms, Agile is working in teams consist of different people with different capabilities and produce some result in a short interval time. Most of the companies have adopted Agile Development, preferably something called “SCRUM” and Sprint executions.

Agile is one of the widely used software development methodology in the IT industry

More about Agile Development:
Agile development is based on iterative incremental development, in which requirements and solutions evolve through team work. A time-boxed iterative approach, and encourages rapid and flexible response to change. It is a theoretical framework and does not specify any particular practice that a development team should follow.
Scrum is a one type of agile process framework that defines the practices required to be followed.

85.9% of 101,592 international surveyed software developers use Agile in their work! – From one of the survey result in the year 2018

Scrum
It is the most popular agile framework, that concentrates particularly on how to manage tasks within a team-based development environment.

Scrum uses iterative and incremental development model, with shorter duration of iterations. The short duration can be of 2-3 weeks of time for development or testing. Mostly the short duration is termed as “Sprint”

Scrum is relatively simple to implement and focuses on quick and frequent deliveries. As process improvements are continuous, agile has evolved over period of time and adopted by many organisations. Organisations have improved the success and performance of their teams and projects with agile practices.

Agile Framework helps teams to benefit from:
Faster Time to Deliver/ Market
Reduce Uncertainty and Risk

Project Lifecycle in Agile:
The below table gives the responsibility, the sequence in which Agile sprint execution works.

Description
Responsibility
Sequence
Remarks
Product Backlogs
Subject Matter Experts, Business Analyst
1
High Level Requirements / Use Case Specification
Business Analysts / Leads
2
Sufficient backlogs must be created for Sprints to be planned for execution. Sometimes its also referred as User Stories which will be in form of story points
Design
Architects/ Technical leads/ Test Manager
2
Development & Testing design, Environment etc
Sprint Development / Implementation
Sprint Team
3
Team will be combination of Scrum master, Developers & Testers. Working product release
Software Testing – System / Integration/ Non Functional
Sprint Team
4
Dedicated team of testers , well supported by development team including subject matter experts, business analysts
Acceptance Testing
Customer Team
5
At times, customer have already seen product components during sprint execution in each releases

Sprint

A time-box of two / three weeks during which a potentially releasable product increment is created. A new Sprint starts immediately after the conclusion of the previous Sprint. Sprints consist of the Sprint planning, daily scrums, the development work, the Sprint review, and the Sprint retrospective.

In Sprint planning, the work to be performed in the Sprint is planned collaboratively by the Scrum Team. The Daily Scrum Meeting is a 15-minute time-boxed event for the Scrum team to synchronise the activities and create a plan for that day. A Sprint Review is held at the end of the Sprint to inspect the Increment and make changes to the Product Backlog, if needed.

The Sprint Retrospective occurs after the Sprint Review and prior to the next Sprint Planning. In this meeting, the Scrum Team is to inspect itself and create a plan for improvements to be enacted during the subsequent Sprint. Lesson learn is also shared to avoid mistakes in the future sprints

Roles:

Role
Responsibility
Product Owner
Create backlogs
Subject Matter Expert / Business Analyst / Project Lead
Create High Level Requirement Specification such as Use Case, Story Points
Scrum Master
Ensure the process run smoothly
Organising and facilitating the project meetings
Monitoring, Measuring and reporting of sprint execution
Scrum Team ( Sprint Team)
Development activities such as coding, unit testing, functional testing
System and Integration Testing, Non Functional Testing

Sprint Events:
Sprint Planning – 1 day, followed by
Sprint Execution – 10/12 days, followed by
Sprint Retrospective – 1 day
Daily Scrum Meetings – 15 min, to catch up with everyone in the team
Spring Planning:
What can be delivered in the sprint?
How can we achieve the results?
Estimations of individual tasks

Sprint Execution
Daily Scrum meeting
Conducted daily to quickly understand the work since the last Daily Scrum Meeting
Create a plan for the next 24 hours.
This meeting is also referred to as “Daily Standup Meeting”
Use tools such as JIRA to update every day status on the activity performed such as coding, testing against each task assigned
You can also use MS EXCEL in case of unavailability of software to track the tasks progress
Sprint Demo
Based on customer need, request Sprint team will fix a date for a demo. The current state of product release will be demoed to customer This gives flexibility to customer to update anything on their expectations or any changes in their needs

Sprint Retrospective
Review the sprint execution results
Share the lesson learnt
Share the best practices followed
Share the performance dashboard
Put a action plan to achieve more improvements

Deliverables include
Work in progress copy – product code which is unit/functionally working as per customer need
Sprint Dashboard – updated status on Tasks, Defects
Documentation – Such as release notes, unit test/functional test cases
Backlogs / Requirements

For any application or product development to be executed in Agile, It is important to have sufficient backlogs, requirements.
It is also important to consider the reviewed and finally approved requirements for the execution so that you don’t end up doing rework at later stages!

At times, following documents are referred for backlogs or requirements
1.Use Case
2.Storyboard/user stories

Requirement Gathering is very important and critical for a project.
Projects are failed if this phase is not executed properly.

Requirement has two space:
Problem Space – Focus on the need of a customer
Example: Customer wants a website

Solution Space – Focusses on how the needs are fulfilled
Example: Customer wants a website with voice authentication
Requirements can be broadly classified in many ways

Implementation Full
Problem Space & Solution Space is both defined

Implementation Free
Only Problem Space is defined, further Requirements can be be classified as,

Functional Requirements
Defines the functionality of the system
Ex: When I enter user id & password it must login
The batch program must process the inputs file and credit the salary to employee account

Non Functional Requirements
Defines the efficiency, reliability, operability of the system
Ex: When 1000 users logs in into the application at time, the response time must be within 1 minutes
The processing of 1million records, the batch job should complete in 10 minutes

Further Requirements can be classified as
Conscious requirements
User explicitly mentioning
Ex: I want the car of Red colour
I want the mobile application which must be used by age group 4-12
years

Non Conscious requirements
User implicit requirements. No need to describe
Ex: A website must open in browser!
The car must have 4 wheels!
Unrealistic
User expecting something unrealistic
Ex: The car must fly!
Estimation:
You must estimate your work! During Sprint 1, if you have take say 3 requirements
Ex:
1.Login page

Break the high level requirements into further small components.

Login Page must have
A front end page with a login text box and password textbox – Simple complexity and a submit button – Simple complexity
Upon entering valid user id and password, it must successfully login and
show next screen – Business logic / Web service – medium complexity

Upon entering invalid user id and invalid password, it must throw error
messages – medium complexity

Estimation:

Rqmt
Activity
Complexity
Hours Required
Remarks
Login
One Screen Design & Development – User Id & Password
Simple
40
Includes table design, unit testing
Login
Web service Development – Validation of successful login
Medium
60
Includes unit testing
Login
Functional Testing
Medium
50
Includes test case writing, executing and release notes/report
Login
Total Hours Estimated

150
Assume, Login functionality is taken in the first sprint and requirements are captured

Estimated and Available Hours:

Sprint & Duration
Functionality
Estimated Hours
Available Hours
1
(14 days)
Login with successful login flow
150 hrs
10 people * 1 per day * 14 = 140 hrs
2
(14 days)
Login with unsuccessful login flow
100 hrs
10 people * 1 per day * 14 = 140 hrs
3
(14 days)
Forgot password functionality
160 hrs
10 people * 1 per day * 14 = 140 hrs
4
(14 days)
Reset password functionality
160 hrs
10 people * 1 per day * 14 = 140 hrs
5
(14 days)
System testing
60 hrs
5 people * 1 per day * 14 = 70 hrs
6
(14 days)
System Testing continued including documentation such as system test results/ reports
60 hrs
5 people * 1 per day * 14 = 70 hrs
So on…
Total Hours
Sum of above
Sum of Above

Execution:

Now you have estimated and available hours, Start measuring each sprint execution results

Sprint & Duration
Functionality
Estimated Hours
Available Hours
Actual Hours Spent
1
(14 days)
Login with successful login flow
150 hrs
10 people * 1 per day * 14 = 140 hrs
120
2
(14 days)
Login with unsuccessful login flow
100 hrs
10 people * 1 per day * 14 = 140 hrs
100
So on…
Total Hours
Sum of above
Sum of Above
Sum of above

Actual hours – You must record time for the work you have completed
(such as coding, testing, documentation etc.)

In summary, agile development gives flexibility in developing applications, more than that flexibility to customers to see work in progress copy of the product!

Leave a Reply

Your email address will not be published. Required fields are marked *

Open chat
Need help?
Hello
How can we help you?