THE RELEVANCE OF
DESIGN THINKING IN
SOFTWARE
DEVELOPMENT
UNIT-4
Dr. Seva Sreedhar Babu
Agile Practices and Design Thinking:
Agile and Waterfall are two well-known project management methodologies. Both of them are popular
in software development but each is best suited for different types of projects. The main difference is
that Waterfall is a linear system of working that requires the team to complete each project phase
before moving on to the next one while Agile encourages the team to work simultaneously on different
phases of the project.
The history of agile methodology:
It all started in the spring of 2000, when a group of 17 software developers, including Martin Fowler,
Jim Highsmith, Jon Kern, Jeff Sutherland, Ken Schwaber, and Bob Martin met in Oregon to discuss
how they could speed up development times in order bring new software to market faster.
A software development project can take years to complete, and technology can change significantly
during that time. Agile was developed as a flexible method that welcomes incorporating changes of
direction even late in the process, as well as accounting for stakeholders’ feedback throughout the
process.
In Agile, the team will work on phases of the project concurrently, often with short-term deadlines.
Additionally, the team, rather than a project manager, drives the project’s direction. This can empower
the team to be motivated and more productive, but also requires a more self-directed team.
Agile Methodology
Approach: Frequent stakeholder interaction
Flexibility: High
Requires: Team initiative and short-term deadline
PROS CONS
Because team members are working on multiple phases
Short-term deadlines
at a time, there is potential for overlap or unnecessary
encourage productivity and
effort spent on later stages if an early phase needs to be
efficiency
modified
It can be harder to ensure the entire team is on the same
There is a lot of flexibility page—especially if it’s a large team with different
to change project direction departments. It also means that work can get lost or
and experiment with new miscommunicated between team members, especially
directions when people leave and join the team in the middle of
the projects.
The methodology is client-
facing, which means that the
The project timeline is more difficult to determine from
team shares progress and
the start, and it is also more susceptible to change
incorporates feedback into
the process
Waterfall Methodology
Approach: Hands-off; goals and outcome established from the beginning
Flexibility: Low
Requires: Completing deliverables to progress to the next phase
Waterfall methodology is a linear form of project management ideal for projects where the end result
is clearly established from the beginning of the project. The expectations for the project and the
deliverables of each stage are clear and are required in order to progress to the next phase.
PROS CONS
Provides a concrete plan of Because each project phase needs to be completed
the project from start to before progressing to the next stage, the process can
finish take longer
You might not realize an issue with a phase until you
The team establishes project have already progressed to the next one. This would
requirements early on, mean going back through each phase and checking
which can save time where the mistake or error occurred, which can be a
timely process.
The Waterfall methodology requires that you outline the
Each phase of the project
project from start to finish before you begin. This
requires a deliverable to
doesn't allow for a lot of flexibility or change.
progress to the next phase,
Additionally, it can become problematic if the
making the workflow more
stakeholders disagree on the project’s vision and don’t
structured
find out until it is executed or in a later phase.
Agile and Waterfall Comparison Chart
Agile vs design thinking:
What is called agile?
The Agile methodology is a project management approach that involves breaking the project into phases and
emphasizes continuous collaboration and improvement. Teams follow a cycle of planning, executing, and
evaluating. READ ON BELOW.
Design Thinking will identify the problem and solutions (and perhaps one not even identified by the
customer in the first place). It will foster new thinking and creativity.
Agile will be the framework that delivers the solution, and allows teams to test and learn at pace, in a
collaborative, multifunctional way.
While Agile is an approach to problem solving, design thinking is an approach to problem finding.
Better together: Agile and design thinking
Together, design thinking and Agile create a user-centric environment focused on rapid, frequent
iterations to reach optimal outcomes. Use design thinking to identify the correct problems and use
Agile to build solutions to solve those problems iteratively.
The principles of design thinking bring a strong user focus, while Agile is an excellent way to deliver
solutions incrementally. The dev and design teams keep user needs front and center throughout the
process.
Differences between agile and design thinking
1. The root of the problem
Agile is a method to solve predefined problems, and to quickly execute solutions to those problems
you’re already aware of.
Design thinking focuses on finding the right problems to solve, and provides product teams with a
way to make better choices about the journey their users should follow.
2. How user feedback is used
This difference involves how each method uses the feedback they’ve gathered from users at a specific
time.
With agile, the workflow is build first, then measure, then learn. The team creates a minimum
viable product (MVP) and then relies on user feedback to make adjustments and improvements.
However, with design thinking, the flow is learn, measure, then build. The design thinking process
capitalizes on user feedback to discover which customer needs are not being met.
3. Length of the development process
Agile teams might experience a longer product development process than teams that employ design
thinking. That’s because the agile framework tends to develop a product first, and then uses feedback
from users to make improvements.
Design thinking seeks user feedback first, before teams even start working on the product. Since
most feedback is factored in at the planning stage, this shortens the development process.
Combining agile and design thinking
These two methods complement each other nicely, and can be part of a broader effort to be more user-
centric and innovative.
Start small. Focus on high-value, low-risk opportunities to gain experience using design thinking and
Agile together. Then, as your capability matures, take on more challenging initiatives.
Create cross-functional teams. To facilitate the required creativity, create cross-functional teams that
work together to design and develop solutions. The team should be physically co-located with end
users to promote frequent collaboration.
Balance design and development. Agile teams are often inclined to “just start coding,” mixing two
methodologies for the first time may create tension. Plan how much time to spend on design thinking
before beginning development.
Agile frameworks: Practices of Agile Software Development
The Agile Software Development Process
1. Requirements Gathering: The customer’s requirements for the software are gathered and
prioritized.
2. Planning: The development team creates a plan for delivering the software, including the
features that will be delivered in each iteration.
3. Development: The development team works to build the software, using frequent and rapid
iterations.
4. Testing: The software is thoroughly tested to ensure that it meets the customer’s requirements
and is of high quality.
5. Deployment: The software is deployed and put into use.
6. Maintenance: The software is maintained to ensure that it continues to meet the customer’s
needs and expectations.
Agile Software development cycle
Let’s see a brief overview of how development occurs in Agile philosophy.
1. concept
2. inception
3. iteration/construction
4. release
5. production
6. retirement
Step 1: In the first step, concept, and business opportunities in each possible project are
identified and the amount of time and work needed to complete the project is estimated.
Based on their technical and financial viability, projects can then be prioritized and
determined which ones are worthwhile pursuing.
Step 2: In the second phase, known as inception, the customer is consulted regarding the
initial requirements, team members are selected, and funding is secured. Additionally, a
schedule outlining each team’s responsibilities and the precise time at which each sprint’s
work is expected to be finished should be developed.
Step 3: Teams begin building functional software in the third step, iteration/construction,
based on requirements and ongoing feedback. Iterations, also known as single development
cycles, are the foundation of the Agile software development cycle.
Design Process of Agile software Development
In Agile development, Design and Implementation are considered to be the central activities
in the software process.
The design and Implementation phase also incorporates other activities such as requirements
elicitation and testing.
In an agile approach, iteration occurs across activities. Therefore, the requirements and the
design are developed together, rather than separately.
The allocation of requirements and the design planning and development as executed in a
series of increments. In contrast with the conventional model, where requirements gathering
needs to be completed to proceed to the design and development phase, it gives Agile
development an extra level of flexibility.
An agile process focuses more on code development rather than documentation.
The Design Thinking Steps used for Software Development
The five design thinking steps encourage creators to examine different problems and assumptions from
many untested angles. The Design Thinking steps might spark new ideas or showcase new findings in
the user journey.
1. Empathy
2. Definition
3. Ideation
4. Prototyping
5. Testing
Design Thinking for Software Development
Mentioned below are the points that help in understanding how helpful is Design thinking in software
development:
Clarity of Vision: Design thinking steps help in testing the feasibility of a proposed design while
building products. Whether it is the functionality or the aesthetic appeal, embracing design thinking in
software development ensures all the fronts of the product meet the requirement.
Scope for Improvement: strategize: The iterative experimentation and analysis of the design
thinking approach take the product prototypes through rigorous testing to understand possible flaws in
the design. This iterative process helps in selecting the best prototype and perfecting it. This
continuous evaluation ensures that the end product is bringing the best to the table.