0% found this document useful (0 votes)
25 views

Module 7

The document discusses the importance of design in software development. It states that software design is the most important phase and must plan for changes and updates. Good design relies on high-level thinking and modular components. The core goals of design are correctness, optimal resources, modularity and scalability. Agile methodology emphasizes iterative development and customer collaboration.

Uploaded by

d.nitin110804
Copyright
© © All Rights Reserved
Available Formats
Download as PDF, TXT or read online on Scribd
0% found this document useful (0 votes)
25 views

Module 7

The document discusses the importance of design in software development. It states that software design is the most important phase and must plan for changes and updates. Good design relies on high-level thinking and modular components. The core goals of design are correctness, optimal resources, modularity and scalability. Agile methodology emphasizes iterative development and customer collaboration.

Uploaded by

d.nitin110804
Copyright
© © All Rights Reserved
Available Formats
Download as PDF, TXT or read online on Scribd
You are on page 1/ 11

MODULE_7_ROLE OF DESIGN THINKING

P Balakrishnan, Associate Professor, SCOPE,VIT Vellore


Software and Good Design
 Software design
 is the most important phase of the software development cycle.
 Thinking about how to structure code before you start writing it
is critical.
 Changes and updates will inevitably arise.

 Good software design plans and makes allowances for added


features, algorithm changes, and new integrations.
Software and Good Design
 Good design
 Good design relies on a combination of high-level systems
thinking and low-level component knowledge.
 In modern software design, best practice revolves around
creating modular components that you can call and deploy as
needed.
 In doing this, you build software that is reusable, extensible,
and easy to test
Software and Good Design
 Core of good software design
 Goal #1. Correctness
 Goal #2. Optimal Resource Consumption
 Goal #3. Modularity and Scalability
 Goals #4. Completeness
 Goal #5. Maintainability
 Seven Design Principles
 Abstraction
 Refinement
 Modularity
 Architecture
 Patterns
 Data Protection
 Refactoring
Design Thinking and Coding
 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.
Agile Methodology
 Agile Methodology meaning a practice that promotes
continuous iteration of development and testing
throughout the software development lifecycle of the
project.
 In the Agile model in software testing, both development
and testing activities are concurrent, unlike the Waterfall
model.
Agile Methodology
 The agile software development emphasizes on four core
values.
 Individualand team interactions over processes and tools
 Working software over comprehensive documentation

 Customer collaboration over contract negotiation

 Responding to change over following a plan


 Agile methodology definition: Agile methodologies propose incremental and iterative approach to
software design
 The Agile process in software engineering is broken into individual models that designers work on
 The customer has early and frequent opportunities to look at the product and make decision and changes
to the project
 Small projects can be implemented very quickly. For large projects, it is difficult to estimate the
development time.
 Error can be fixed in the middle of the project.
 Development process is iterative, and the project is executed in short (2-4) weeks iterations. Planning is
very less.
 Every iteration has its own testing phase. It allows implementing regression testing every time new functions
or logic are released.
 In agile testing when an iteration end, shippable features of the product is delivered to the customer. New
features are usable right after shipment. It is useful when you have good contact with customers.
 Testers and developers work together
 At the end of every sprint, user acceptance is performed
SCRUM – Agile framework
Differences between agile and design thinking
 Agile is a method to solve predefined problems, while design
thinking focuses on finding the right problems to solve.
 This is an important distinction, as design thinking provides users with
a way to make better choices about the journeys they should follow,
not just how best to get there.
 Agile is a project management method used to build better
software, whereas design thinking can be used by anyone to
solve any big complex problem that has no clear solution.
 Agile requires user engagement, but design thinking actually
shows you how to do it.
Complementing agile with design thinking
 Agile and Design Thinking are interwoven. Both require teams to get close to
the customer, and to seek out their opinions as part of the design process.
 Design thinking is exploring and solving problems
 The design thinking process help teams empathize with the customer,
“painstorming” the customer’s pain points, wants and needs
 Lean tests possible solutions
 which naturally flows into the Lean process of learning, experimenting, and
building prototypes, essentially turning design thinking ideas into real world
solutions.
 Agile adapts, pivots and makes changes along the way toward completion
 This, in turn flows into the Agile processes of review, trial and error, execution and
ultimately, delivery.

You might also like