Agile vs Scrum vs Lean

Jan.02.2018 | 7m Read | ^DevOps

In DevOps teams and tasks need to be managed and completed. The way by which these are planned and executed are called methodologies. They can be formal structures or patched together from various systems.

PART 2: Trello vs Jira vs Kanban of this article will focus on methodology tools and their integration.

It's time to go Waterfall into a Scrum.

⁡⁡ Waterfall:

▼ What is it?

  • ☑⁡⁡ Linear development where tasks 'waterfall' down.
  • ☑⁡⁡ IE, assembly lines and is often the default way a task is processed.
  • ☑⁡⁡ What other newer methodologies fallback to.

▼ 6 Phases of Waterfall:

  • 1 Requirements for the software are documented.
  • 2 Analysis creates the coding structure of models, schema, etc as well as the business needs.
  • 3 Design the actual architecture to be implemented.
  • 4 Coding develops, proves, and integrates software.
  • 5 Testing analyzes feedback and code is redesigned and iterated/debugged as needed.
  • 6 Operations installs, migrates, supports and provides maintenance.

⁡ Agile:

▼ What is it?

  • ☑⁡⁡ Non-linear development, so tasks are worked upon in various stages and the output is aggregated and assembled as it goes.
  • ☑⁡⁡ IE, a professional kitchen where different orders are cooked, prepared, and assembled out of order, but meet a constant and rapid pace of delivery.

▼ 12 Principles of Agile:

  • 1 Continuous development to satisfy customers early and regularly.
  • 2 Welcome change for the customer's edge, even late in development.
  • 3 Deliver frequently, preferring a shorter timescale.
  • 4 Daily integration between management and developers.
  • 5 Support and trust the motivated to complete.
  • 6 Face-to-Face is the best and most efficient form of communication.
  • 7 Progress is working software and the best measure.
  • 8 Maintain a constant pace indefinitely.
  • 9 Attention to quality and design enhances agility.
  • 10 Simplifying to max progress is essential.
  • 11 Self-organized teams have the best solutions.
  • 12 Regularly reflect and fine tune.

⁡⁡ Lean:

▼ What is it?

  • ☑⁡⁡ An Agile manufacturing methodology for min waste / max output.
  • ☑⁡⁡ IE, a lumber company where no cut is wasted from splinters into matches and saw dust into particle board. Transport is eliminated and optimized by using the rivers themselves to cut across the land. The local people who harvest the trees and process the wood are not only well paid, but provided quality housing, supplies, and healthcare on site.

▼ 7 Principles of Lean:

  • 1 Eliminate Waste ie, development, feature-creep, delays, shifting goals, bureaucracy, miscommunication, incompleteness, defects, task swapping.
  • 2 Build Quality using techniques, ie, pair programming, test-driven dev, incremental dev, automation, and other eXtreme Programming techniques.
  • 3 Create Knowledge to build infrastructure with documentation, Wikis/forums, training classes, video tutorials and walk-throughs.
  • 4 Defer Commitment by researching, applying feedback, analyzing data, and adopting flexible and adaptable tooling and infrastructure.
  • 5 Deliver Fast with simplicity, satisfaction, and reception to change.
  • 6 Respect People ensuring team cohesion, recognizing individuals, resolving conflicts, improving processes, communicating proactively, and supporting their health.
  • 7 Optimize the Whole, don't sub-optimize pieces by buffering deadlines, studying requirements, identifying values, tuning flow, knowledge sharing, cross-functional teams that can develop the entire product individually or fill-in where need be.

Scrum (Agile):

▼ What is it?

  • ☑⁡⁡ An agile framework. From the sport of rugby, restarting a play with players packed tightly together.

▼ 4 roles:

  • ☑⁡⁡ Stakeholders: the deciders of key requirements, represents the ideal customer.
  • ☑⁡⁡ Product owner: manages the Product Backlog by assigning the priority and checking in with the team.
  • ☑⁡⁡ [Development] Team: a self-organized and cross-functional group that is accountable as a team.
  • ☑⁡⁡ Scrum master: Ensures the team maximizes Scrum by supporting and mediating between others (often assembling the team and reminding about the Scrum process).

▼ Workflow:

  • ☑⁡⁡ Sprint: A timed task that doesn't sacrifice integrity (1 month max deadline).
  • ☑⁡⁡ Planning: Backlog tasks are examined, transformed as needed, and assigned as sprints.
  • ☑⁡⁡ Scrum: A daily stand-up where each role reports and self organizes as needed (15 minutes long).
  • ☑⁡⁡ Review: Stakeholders and the team informally meet to discuss a sprint's outcome. The Product Owner goes over the updated Backlog covering deliveries, issues, timeline, and budget. Everyone collaborates and discusses possibilities as needed.
  • ☑⁡⁡ Retrospect: Like reviewing a fight or sports match, the team discusses what went well and could improve, then commits to an improvement for the next Sprint (occurs after a Review, but before the next Planning).
  • ☑⁡⁡ Backlogging: Product and Sprint Backlogs are tuned by breaking-down and selecting requirements to assign as tasks.
  • ☑⁡⁡ Termination: The Product Owner ends the Sprint because the goal no longer matters (not a bad thing). Negotiate with Stakeholders if needed.

XP (eXtreme Programming):

▼ What is it?

  • ☑⁡⁡ An Agile methodology developed around rigorous programming practices.
  • ☑⁡ Scheduling is 1-2 weeks vs 2-4 in traditional Scrum.
  • ☑⁡ Designed by Kent Beck while he was head of software at Chrysler in the 1990's.

▼ 5 Rules of XP:

  • 1 PLAN

    • ☑⁡ Write User Stories or fiction of what they are getting from your software.
    • ☑⁡ Release Plan and create a release schedule so you can make releases.
    • ☑⁡ Make frequent small releases of the software.
    • ☑⁡ Divide project into iterations.
    • ☑⁡ Iteration Plan each iteration.
  • 2 MANAGE

    • ☑⁡ Use an open work space so there is space to team-up and ID issues.
    • ☑⁡ Use a sustainable pace using the rate of work or Project Velocity.
    • ☑⁡ Daily Stand-ups.
    • ☑⁡ Measure Project Velocity, or the rate of progress (tasks finished per day/week/month).
    • ☑⁡ Shift people around to get more diverse opinions, oversight, and stimulation.
    • ☑⁡ Fix broken XP methods.
  • 3 DESIGN

    • ☑⁡ Apply Simplicity by eliminating unneeded code and being direct with UX.
    • ☑⁡ Set system metaphor.
    • ☑⁡ Use CRC cards (Class-Responsibilities-Collaborator).
    • ☑⁡ Use Spike Solution vs risk.
    • ☑⁡ Get an MVP or Minimum Viable Product first, don't bog down with feature creep.
    • ☑⁡ Refactor or clean-up code often.
  • 4 CODE

    • ☑⁡ Customer is always available, meaning you can go to them for input.
    • ☑⁡ Use standards.
    • ☑⁡ Code Unit Tests first.
    • ☑⁡ Pair Program production code.
    • ☑⁡ One Pair integrates code.
    • ☑⁡ Integrate often.
    • ☑⁡ Apply collective ownership.
  • 5 TEST

    • ☑⁡ Unit Test all code.
    • ☑⁡ Pass all Unit Tests.
    • ☑⁡ Test fixed Bugs.
    • ☑⁡ User Acceptance Tests are scored publicly.

▼ XP Terms:

  • ☑⁡⁡ Feedback Loops: systems for obtaining feedback, or external review, ie, testing, and pair programming.
  • ☑⁡⁡ Automation: machines and tools that automate human work massively reduces errors. IE, copy and pasting vs typing. Ideally used whenever possible.
  • ☑⁡⁡ Test-Driven Development: Creating automated tests for the program before completing the actual software (so that tests may 'drive' decisions in development).
  • ☑⁡⁡ Pair-Programming: programming as 2 (using shared hardware) where one user 'steers' or directs another who 'drives' or inputs (roles may swap over time).
  • ◆ Fosters Collective Ownership and acts as an additional Feedback Loop for each party as they discuss the code as it is programmed.
  • ☑⁡⁡ CI/CD Continuous Integration / Delivery / Deployment: Constantly updating working code and delivering/deploying it to the customer.

Check out PART 2: Trello vs Jira vs Kanban of this article.


       : NEWS