Online College Courses for Credit

+
Software Development Methodologies

Software Development Methodologies

Rating:
(0)
Author: Devmountain Tutorials
Description:

Apply the software development methodologies to given scenarios.

(more)
See More
Tutorial
what's covered
This section will explore the methodologies used by engineers to develop software by discussing:
  1. WHAT ARE SOFTWARE DEVELOPMENT METHODOLOGIES?
  2. WHAT IS WATERFALL DEVELOPMENT?
  3. WHAT IS AGILE DEVELOPMENT?
  4. WHAT IS LEAN DEVELOPMENT?

As information systems have evolved, so has the process of developing software. Recall that the software development life cycle (SDLC) provides general phases for what to do. Software methodologies contain those same phases but include processes, roles, and structure for how teams make it happen.


1. WHAT ARE SOFTWARE DEVELOPMENT METHODOLOGIES?

A software development methodology is the process for how a team completes the software development phases. Due to the complexity of developing software, developers and engineers apply various methodologies to the development process. When you hear methodology, think of it as a “method” for how they do their job. The appropriate methodology depends on the focus, scope, complexity, time, and team.

hint
It is important to note that while these methodologies have defined processes and roles, the implementation can vary from company to company. The roles and responsibilities vary between methodologies, but the basic concepts are the same.

SDLC Methodology Focus Situations for Use
Waterfall Accurate
  • Accuracy is critical, and requirements don't change frequently
  • Comparable work has been done before or a detailed plan can be made with confidence
  • Changes late in the process are difficult or expensive
Agile Flexible
  • Customer needs to be highly involved with the product because you aren't sure what they need
  • Development team collaborates well
  • Market is frequently changing
Lean Sustainable
  • Time and resources need to be managed closely
  • Solutions are unclear and problems are complex
  • New technology is being created or significant research and development (R&D) is needed
  • Development team is technically proficient


This isn’t an exhaustive list of methodologies; there are many additional methodologies and more details if you’re interested. For this course, we’ll touch on the big three to give you a general idea of how different teams work.

term to know

Software Development Methodology
The process for how a team completes the software development phases.

2. WHAT IS WATERFALL DEVELOPMENT?

The waterfall methodology is a linear method where development happens sequentially. In this method, the project is broken down to ensure consistency. The steps at the beginning of the method flow down into subsequent steps, similar to a waterfall.

In waterfall development, all progress must move in one direction with the emphasis placed on planning and delivery dates. All details about what to build are created during the requirements phase with a statement of work or a scope document.

Changes to the requirements are managed very closely with change requests because redesign can be costly in this process.

Image shows a five-step process. At the top a box labeled Requirements flows to the box below labeled Design. The Design box flows to the Implementation box below. The Implementation box flows to the Verification box below. Last, the Verification box flows the Maintenance box below.
Waterfall Development

term to know

Waterfall Development
A linear method where development happens sequentially. The steps at the beginning of the method flow down into subsequent steps, similar to a waterfall. Development flows in one direction where one step is completed before the next step begins.

3. WHAT IS AGILE DEVELOPMENT?

Agile development includes a group of methodologies based on a 2001 Agile Manifesto written by 17 developers who wanted to find a better way to create software. They created a set of values and principles that have inspired several methodologies including Scrum, The Scaled Agile Framework (SAFe), and Kanban.

The goal of the agile methodologies is to provide a flexible and iterative approach while ensuring a quality product. Agile is great for flexibility and products that need a high level of transparency or collaboration with users.

A key to agile development is an autonomous team who is empowered to make decisions.

This concept has taken the business world by storm as an alternative to command and control management. So even if you don’t work in IT, you may hear about the agile principals.

Image shows four circles with titles. The first circle is titled Unity and says Individual and team interactions over processes and tools. The second circle is titled Simplicity and says Working software over comprehensive documentation. Their third circle is titled Transparency and says Customer collaboration over contract negotiation. The fourth circle is titled Adaptability and says Responding to change over following a plan.
Agile Development

term to know

Agile Development
The goal of the agile methodologies is to provide a flexible and iterative approach while ensuring a quality product. Agile is great for flexibility and products that need a high level of transparency or collaboration with users. A key to agile development is an autonomous team that is empowered to make decisions.

4. WHAT IS LEAN DEVELOPMENT?

The lean development methodology comes from lean manufacturing and focuses on sustainable development through continuous improvement. The three main steps are build, measure, and learn.

In lean development, the team takes an idea and builds a minimum viable product (MVP). The MVP has just enough functionality to provide the team with feedback on how to improve the product. Once the MVP is developed, it is given to potential users to test the functionality and get feedback on how well they liked it.

After reviewing the feedback, the team determines whether it should continue in the same direction or rethink the concept. Several iterations of the MVP are developed with new functions added each time based on the feedback until a final product is completed.

Image shows three large circles with arrows between moving from Build to Measure to Learn and then back to Build. Between the three large circles are three smaller circles labeled Code, Data, and Ideas
Lean Development

term to know

Lean Development
Lean development comes from lean manufacturing and focuses on sustainable development through continuous improvement. The three main steps are build, measure, and learn. In lean development, the team takes an idea and builds a minimum viable product (MVP).
Iteration
Repeat the process for an idea, design, or product until it is ready, as in the developmental changes that are made to a prototype to make it better with each successive design.

Terms to Know
Agile Development

The goal of the agile methodologies is to provide a flexible and iterative approach while ensuring a quality product. Agile is great for flexibility and products that need a high level of transparency or collaboration with users. A key to agile development is an autonomous team who is empowered to make decisions.

Iteration

Repeat the process for an idea, design, or product until it is ready, as in the developmental changes that are made to a prototype to make it better with each successive design.

Lean Development

Lean development comes from lean manufacturing and focuses on sustainable development through continuous improvement. The three main steps are build, measure, and learn. In lean development the team takes an idea and builds a minimum viable product (MVP).

Software Development Methodology

The process for how a team completes the software development phases.

Waterfall Development

A linear method where development happens sequentially. The steps at the beginning of the method flow down into subsequent steps, similar to a waterfall. Development flows in one direction where one step is completed before the next step begins.