• Skip to main content
  • Skip to header right navigation
  • Skip to site footer

JD Meier

High Performance. Innovation. Leadership.

  • About
  • Coaching
    • 1:1 Coaching
    • Training & Workshops
    • Transformation Programs
    • All Services
  • Articles
  • Books
  • Courses
  • Resources
  • Newsletter
  • Contact

Software Methodologies at a Glance

by JD Meier

Profile of a hispanic freelancer wearing glasses and reading the coding software on the computer. Focused programmer checking the app code

“I am not here to speak the Truth. I am here just to give you a method to perceive it.” ― Jaggi Vasudev, Of Mystics & Mistakes

As a software professional, I have seen many project-relevant processes come and go over the years.

The waterfall model, the Rational Unified Process (RUP), Agile, Lean, Kanban, DevOps, and many other frameworks and methodologies have been proposed and used to varying degrees of success.

But with so many options available, it can be overwhelming to know where to start, or which approach to choose for a particular project or team.

That’s why I’m a fan of simple table summaries to help drill in. After all, it’s hard to explore the concepts if you don’t know they exist, or you don’t know what they are called.

By creating quick, simple table summaries of the key activities from some software project-relevant processes, we can better understand the differences and similarities between them, and perhaps identify the strengths and weaknesses of each approach.

These table summaries are a work in progress, and I’m sure I’m missing key practices and some of the names have changed. But it’s a starting point to explore the fascinating world of software methodologies.

What are the Most Common Software Methodologies?

Before we look at the tables, let’s review the most common software methodologies in use today.

The most common software methodologies currently in use are Agile, Waterfall, and DevOps.

However, there are also several variations and combinations of these methodologies that are becoming increasingly popular, such as Scrum, Kanban, Lean, and Hybrid.

Agile

Agile is a software development methodology that emphasizes flexibility, teamwork, and customer satisfaction.

It is an iterative approach that involves frequent collaboration between cross-functional teams and continuous feedback.

Agile is focused on delivering high-quality working software quickly, adapting to change, and continuous improvement.

Waterfall

Waterfall is a linear and sequential approach to software development, where the entire development process is broken down into separate phases, such as requirements gathering, design, implementation, testing, deployment, and maintenance.

Each phase is completed sequentially, with no overlap, and the output of one phase serves as the input for the next.

Waterfall assumes that requirements are fully understood and stable from the outset, and changes are discouraged after the development process has started.

DevOps

DevOps is a software development approach that emphasizes collaboration and communication between development and operations teams, with the goal of automating software delivery and infrastructure changes, and ensuring a more reliable and efficient software delivery pipeline.

It combines agile methods, lean principles, and IT service management practices to improve the speed, quality, and stability of software releases.

DevOps also emphasizes continuous monitoring and feedback, which enables teams to quickly identify and resolve issues in the production environment.

Scrum

Scrum is an Agile project management framework that emphasizes iterative development, regular inspection, and adaptation. It is characterized by its use of short development cycles called sprints, daily stand-up meetings, and the use of visual management tools like Scrum boards.

The framework involves three key roles: Product Owner, Scrum Master, and Development Team, who work together to deliver a potentially shippable product increment at the end of each sprint.

Scrum emphasizes collaboration, self-organization, and continuous improvement to deliver high-quality software products efficiently.

Kanban

Kanban is an Agile project management methodology that emphasizes continuous delivery, flexibility, and efficiency.

Its core principles include visualizing workflow, limiting work in progress, managing flow, making process policies explicit, implementing feedback loops, and continuously improving.

Kanban is often used in production environments but can also be applied to software development, marketing, and other areas.

Lean

Lean is a methodology focused on the elimination of waste and the optimization of value in a system.

It aims to create more value for customers while using fewer resources.

Key principles include continuous improvement, respect for people, and a focus on delivering value through the customer’s perspective.

Hybrid

A hybrid methodology combines elements of two or more different methodologies to achieve a tailored approach that fits the specific needs of a project.

The goal of a hybrid approach is to combine the best features of each methodology while minimizing the drawbacks.

Hybrid methodologies are becoming increasingly popular as organizations seek more flexible and adaptable approaches to project management.

How To Choose a Software Methodology?

Here are some steps you can follow to choose a software methodology:

  1. Define your project requirements: Before you can choose a methodology, you need to define your project requirements. This includes identifying the scope of the project, the timelines, budget, and the overall goals.
  2. Evaluate your team’s skills: Once you have defined your project requirements, evaluate your team’s skills and expertise. This will help you choose a methodology that aligns with your team’s strengths and capabilities.
  3. Understand the different methodologies: Familiarize yourself with the different methodologies available such as Agile, Waterfall, Scrum, Kanban, Lean, etc. Understand their principles, advantages, and disadvantages.
  4. Consider your organization’s culture: Consider your organization’s culture and determine if it aligns with the values and principles of the methodology you are considering.
  5. Assess project complexity: Determine the complexity of the project and how it impacts the methodology you choose. Some methodologies may be better suited for complex projects while others may work well for smaller projects.
  6. Determine flexibility needs: Assess how much flexibility you need during the development process. If your project requirements are likely to change frequently, you may want to choose an Agile methodology.
  7. Consider customer involvement: Consider the level of involvement your customers will have in the project. If they need to be involved in every step of the process, then Agile or Scrum may be the best choice.
  8. Evaluate budget and timeline constraints: Finally, evaluate your budget and timeline constraints. Some methodologies may be more expensive or take longer to implement than others.

By following these steps, you can choose a software methodology that aligns with your project requirements, team’s skills, organizational culture, and budget and timeline constraints.

Software Methodology Summary Tables

Here are some tables that I’ve found useful in the past to remind myself or to compare and contrast different methodologies.

Scrum Summary Table

Phase Description
Sprint A time-boxed iteration of 1-4 weeks where a potentially releasable product increment is produced.
Product Backlog A prioritized list of features or requirements that the team will work on during the Sprint.
Sprint Backlog A list of items from the Product Backlog that the team will work on during the current Sprint.
Daily Scrum A 15-minute stand-up meeting for the team to synchronize and plan their work for the day.
Sprint Review A meeting at the end of each Sprint where the team presents their work and gets feedback from stakeholders.
Sprint Retrospective A meeting at the end of each Sprint where the team reflects on their process and identifies areas for improvement.

Kanban Summary Table

Here is a summary of key principles and practices in Kanban:

Kanban Principles and Practices Description
Visualize Work Display work and workflow to improve transparency and clarity
Limit Work in Progress (WIP) Set limits on the number of items that can be in progress at any given time to reduce multitasking and improve focus
Manage Flow Ensure that work is moving smoothly and efficiently through the system
Make Process Policies Explicit Define and communicate the policies, rules, and procedures that guide the work and the system
Implement Feedback Loops Create mechanisms for providing and receiving feedback, such as regular check-ins and retrospectives
Improve Collaboratively and Evolve Experimentally Continuously experiment and improve the system and the process through collaboration and feedback
Classes of Service Define and prioritize different types of work based on their value and urgency
Cumulative Flow Diagrams Track progress and identify bottlenecks using a visual representation of the flow of work
Service Level Agreements (SLAs) Set expectations and commitments for delivery and response times
Continuous Delivery Deliver work continuously and frequently, with a focus on small batches and fast feedback
Pull-Based System Use a pull-based system to manage work and avoid overburdening the team
Lead and Manage Change Embrace change and lead the team through continuous improvement and evolution
Explicit Process Policies Define and make explicit the process policies for workflow, including how to move work items from one stage to the next
Kaizen Encourage continuous improvement by making small, incremental changes to the process
Cycle Time Measure and track the time it takes to complete work items, from start to finish
Classes of Service (CoS) Identify and prioritize different types of work based on their value and urgency, and assign specific CoS to each work item
Blockers Identify and manage blockers and other obstacles to ensure smooth flow of work
Service Delivery Review (SDR) Regularly review and assess the performance of the system and the delivery of services
Slack Maintain some degree of slack or idle capacity to handle unexpected work or spikes in demand
Continuous Improvement Continuously improve the process through experimentation and feedback
Visualization Use visual aids such as Kanban boards and cumulative flow diagrams to enhance transparency and understanding of the process
Work in Process (WIP) Limits Set limits on the amount of work that can be in progress at any given time to reduce multitasking and improve focus
Service Level Expectations (SLE) Establish and communicate clear expectations for service delivery and response times
Pull System Use a pull-based system to manage work, ensuring that the team is not overburdened
Service Delivery Metrics Define and measure key metrics for service delivery, such as cycle time, lead time, and throughput
Continuous Delivery and Improvement Continuously deliver and improve the service through small, incremental changes and fast feedback loops

Lean Summary Table

Principles Practices
Value
  • Identify customer needs
  • Focus on delivering customer value
  • Minimize waste by prioritizing work that delivers value
Value Stream
  • Map the end-to-end process
  • Identify bottlenecks and opportunities for improvement
  • Establish a pull system to minimize overproduction
Flow
  • Reduce cycle time and lead time
  • Implement continuous flow to deliver value faster
  • Optimize the value stream to maximize flow
Pull
  • Establish pull-based systems to minimize overproduction
  • Implement pull-based planning to align demand with capacity
  • Use pull signals to trigger work and minimize inventory
Perfection
  • Continuously improve and optimize the process
  • Implement a culture of continuous improvement
  • Eliminate waste and non-value-added activities

Software Methodologies Key Practices

Process Practices
Kanban
  • Limit WIP (Work in Progress)
  • Measure the Lead Time
  • Visualize the workflow
Scrum
  • Burndown Chart
  • Daily Scrum
  • Definition of Done
  • Estimation
  • Impediment Backlog
  • Product Backlog
  • Product Owner
  • Retrospective
  • Scrum Master
  • Scrum Team
  • Sprint
  • Sprint Backlog
  • Sprint Demo
  • Sprint Planning Meeting
  • Velocity
Extreme Programming (XP)
  • Coding Standard
  • Collective Code Ownership
  • Continuous Integration
  • On-Site Customer
  • Pair Programming
  • Planning Game
  • Refactoring
  • Simple Design
  • Small Releases
  • Sustainable Pace
  • System Metaphor
  • Test-Driven Development
Lean
  • Value Stream Mapping
  • Continuous Improvement
  • Visual Management
  • Pull System
  • Flow
  • Standard Work
  • Just-in-Time (JIT) Production
  • Heijunka
  • Kaizen
  • Andon
  • Poka-yoke
  • Jidoka
  • Kanban
  • Total Productive Maintenance (TPM)
  • One-Piece Flow
  • Single-Minute Exchange of Die (SMED)
  • Takt Time
  • Root Cause Analysis (RCA)
  • Five Whys
  • Gemba Walks
  • 5S
  • Lean Six Sigma
  • Lean Leadership
  • Lean Culture

RUP at a Glance

For comparison and fun, here is a balcony view of RUP.

Process Practices
RUP Activities

  • Analyze Runtime Behavior (Implementer)
  • Architectural Analysis (Architect)
  • Assess viability of Architectural Proof-of-Concept (Architect)
  • Capsule Design (Capsule Designer)
  • Class Design (Designer)
  • Construct Architectural Proof-of-Concept (Architect)
  • Database Design (Database Designer)
  • Describe Distribution (Architect)
  • Describe the Run-time Architecture (Architect)
  • Design Testability (Designer)
  • Design the User-Interface (User-Interface Designer)
  • Develop Installation Artifacts (Implementer)
  • Elements (Designer)
  • Execute Developer Test (Implementer)
  • Identify Design Mechanisms (Architect)
  • Identify Design Elements (Architect)
  • Implement Design Elements (Implementer)
  • Implement Developer Test (Implementer)
  • Implement Testability Elements (Implementer)
  • Implementation Model (Software Architect)
  • Incorporate Existing Design Elements (Architect)
  • Integrate Subsystem (Integrator)
  • Integrate System (Integrator)
  • Plan Subsystem Integration (Integrator)
  • Plan System Integration (Integrator)
  • Prototype the User Interface (User-Interface Designer)
  • Review Code (Technical Reviewer)
  • Review the Architecture (Technical Reviewer)
  • Review the Design (Technical Reviewer)
  • Structure the (Software Architect)
  • Subsystem Design (Designer)
  • Use-Case Analysis (Designer)
  • Use-Case Design (Designer)

Artifacts

  • Analysis Class
  • Analysis Model
  • Architectural Proof-of-Concept
  • Build
  • Capsule
  • Data Model
  • Deployment Model
  • Design Class
  • Design Model
  • Design Package
  • Design Subsystem
  • Event
  • Implementation Element
  • Implementation Model
  • Implementation Subsystem
  • Integration Build Plan
  • Interface
  • Navigation Map
  • Protocol
  • Reference Architecture
  • Signal
  • Software Architecture Document
  • Test Design
  • Test Stub
  • Testability Class
  • Testability Element
  • Use-Case Realization
  • User-Interface Prototype

MSF Agile

For historical purposes and a trip down memory lane, here is an old version of the MSF Agile methodology.

MSF Agile Activities

  • Build a Product
  • Capture Project Vision
  • Close a Bug
  • Create a Quality of Service Requirement
  • Create a Scenario
  • Create a Solution Architecture
  • Fix a Bug
  • Guide Iteration
  • Guide Project
  • Implement a Development Task
  • Plan an Iteration
  • Test a Quality of Service Requirement
  • Test a Scenario

Artifacts (Work Products)

  • Architectural Prototypes
  • Bug Reports
  • Change Sets
  • Check In Notes
  • Classes
  • Development Tasks
  • Interface Models
  • Personas
  • Scenarios
  • Storyboards
  • System Architecture
  • Test Plan (see Context-Driven Testing)
  • Test Cases
  • Unit Tests
  • Vision Statement

You Might Also Like

10 Ways to Make Agile Design More Effective
40 Hour Work Week
Don’t Let the Big Get in the Way of the Small
Don’t Push Agile, Pull It
Extreme Programming at a Glance
How To Drive Digital Transformation the Agile Way
Kanban for High-Performance Teams
Scrum at a Glance
The 4 Circles of Extreme Programming
Waterfall to Agile
What is Agile?

Category: Agile

About JD Meier

I help leaders change the world.

Previous Post:Extreme Programming at a Glance
Next Post:MSF Agile at a GlanceMSF Agile at a Glance

Reader Interactions

Leave a Reply Cancel reply

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

Sidebar

About Me

JD
I am J.D. Meier. I help you unleash your greatest impact. Former head coach for Satya Nadella's innovation team. Microsoft 25 years. Learn more...

Popular Articles

10 Things Great Managers Do
16 Amazon Leadership Principles
40 Hour Work Week at Microsoft
Agile Innovation Framework
Best Digital Transformation Books
Culture of Innovation
How I Created Trends for Satya
How To Become an Innovator
How To Drive Digital Transformation
How To Lead High-Performance Teams
Innovation Explained
Innovation OS
Power of Dreams
Satya Nadella Quotes
View More...

My Best-Selling Book

This is the book that changes lives ...

Become a better leader, innovate better, and make greater impact!

I help leaders change the world! As part of your journey, learn how to realize your potential in business and in life through the power of high performance, innovation, and leadership. 

High Performance. Innovation. Impact.

At the heart of high performance is a culture of continuous learning and growth. Through innovation, we continuously redefine the boundaries of human potential and create a brighter future. And impact is our compass and lever, a thoughtful alignment of our focus and resources.

Dream Big. Start Small. Achieve More.

Dreaming big sets the stage for remarkable achievements. Starting small powers your progress and builds momentum. Together, they empower us to turn bold ambitions into reality.

Topics

  • High Performance
  • Innovation
  • Strategy
  • Leadership
  • Entrepreneurship
  • Sustainability
  • Digital Transformation
  • All Topics

Resources

  • Frameworks
  • Trends
  • All Resources


My Other Sites

  • GettingResults.com
  • SourcesOfInsight.com

Copyright © 2024 · JD Meier · All Rights Reserved