Showing posts with label Agile. Show all posts
Showing posts with label Agile. Show all posts

Sunday, August 23, 2020

Large Scale Scrum (LeSS)

 Large Scale Scrum (LeSS) takes a completely different approach to scale. In fact, the term that LeSS uses is NOT scale, but De-Scaling as the pinnacle of the scaled organization for Scrum and Agile.

Where other frameworks look to align the Agile approach to teams within a Traditional Organization, or show how those people can now "fit" within the organization; the LeSS approach is to say 'no.' No more "pretend Agile" or "Fake De-Scaling" where all the parts of the products that come together are considered independent and managed independently. 

This leads to trap where teams try to act as independent teams within an organization:

      • "Independent Teams" need a portfolio manager to ensure alignment of efforts, because otherwise they'll diverge
      • Portfolio Management leads to integration and dependencies,
      • Dependencies re-introduce the need for the Program Management Office (PMO) to institute rules of coordination
      • Rules remove ownership and power from the Scrum teams, and quickly lead to additional complex teams to manage them

To avoid all this, the LeSS system provides two types of scaling of Products to remove other potential roles:

      • LeSS - used for up to eight (8) teams of eight
      • LeSS Huge - used for up to thousands of teams delivering products together in single increments

This way the organization can avoid unnecessary "dotted lines" that take away power and control from the Scrum Teams which in turn zaps productivity and pride of workmanship.

 

 The LeSS system provides two types of scaling of Products to remove other potential roles:

    • LeSS - used for up to eight (8) teams of eight
    • LeSS Huge - used for up to thousands of teams delivering products together in single increments

This way the organization can avoid unnecessary "dotted lines" that take away power and control from the Scrum Teams which in turn zaps productivity and pride of workmanship.

According to the philosophy behind LeSS, Scrum works as it is designed for one team. And it shouldn't be changed for one team. No matter the complexity of the product, it should remain that there are three roles:

  • Product Owner (PO)
  • Scrum Master (SM)
  • Development Team Member (DT)

And in the LeSS these roles persist and remain the only roles for up to eight (8) teams. It's important to note that LeSS suggests that teams be aligned to features to maximize their ability to "specialize" on the architecture of a product and work independently.

Beyond eight (8) teams only one additional role is added to support the Product Owner. This role is the Area Product Owner, and they are needed because of the pressure on the Product Owner to manage such a large backlog is too great:

  • Area Product Owner (APO) - provides a buffer of work definition and act as intermediaries to help manage an "area" of requirements
      • Product Owner (PO) can have up to ten (10) APOs working with them to manage requirements, forming the Product Owner Team
      • Can manage up to eight teams
      • Cannot override the prioritization of the product backlog items - this still belongs to the PO

At this point there is enough "scaling" that it can handle global operations of product development. Sites can have multiple teams, and areas can include anywhere from five to ten teams. When multiplied this allows a single Product Owner to manage up to a thousand or more team members.

But why create such large structures of Scrum?

The answer is using Large Solutions to De-Scale the organization.  Organizations looking to create smaller, more independent teams to Scrum will drive towards an model that performs "Fake De-Scaling." These ideas are as follows:

    • We create "independent" teams with internal and external markets, everyone has customers and are consumers of Agile teams
    • For larger products, "independent Teams" need a portfolio manager to ensure alignment of efforts, because otherwise they'll diverge
    • Portfolio Management leads to integration and dependencies because there are real-word physical dependencies in products
    • Integration and dependencies drive the need for rules so teams can stay independent
    • These rules re-introduce the Program Management Office (PMO) to control coordination
    • Rules remove ownership and power from the Scrum teams, and quickly lead to additional complex teams to manage them

So what does the organization then look like for the LeSS company?

For those that there will be an enabling leader who is the "Head of Product." This person will provide coordination and support using the Servant Leadership model of management. The responsibilities include managing:

    • Site Locations - ensuring the teams are supported with facilities, people, etc.
    • "Undone Departments" - those departments that are still functionally aligned or separate from Scrum Teams
    • Support Teams - these teams provide a lean service of support to the large teams (such as delivery or DevOps)
    • Product Owner Team - led by the PO in charge of the product, this team develops and prioritizes the backlog
    • Competence & Coaching - the functions of training and coaching to ensure continuous improvement

Higher levels of management are intended to provide similar types of "servant leadership" support for the organization. The goal being to enable teams to work according to the LeSS principles:

    • Large-Scale Scrum is Scrum - LeSS is just dealing with the unavoidable scale of some products, but remains scrum
    • Empirical process control - processes should be subordinate to the product and market needs
    • Transparency - required to drive fear out and improvement into the workplace
    • More with Less - gain better teams, ownership, and reduced waste with less process and control
    • Whole-products - focus on the product in delivery, not just the part of the product, so efforts are aligned
    • Customer-centric - by focusing on the customer, everyone aligns to the priorities and needs while reducing waste of other distractions
    • Systems thinking - understand that the system is the focus, not the local performance of a team, so waste is reduced and flow is optimized
    • Lean thinking - continuous improvement and the Go See approach to management drive a respect for workers and continuous improvement
    • Queuing theory - understanding that long queues increase cycle time, reduce feedback speed, increase variability, and result in multi-tasking

To learn more about these concepts go to: https://less.works/

Sources:

Additional Great Video Resources:

 

 

Disciplined Agile Delivery (DAD)

Disciplined Agile Delivery attempts to answer that question with the Disciplined Agile Framework.

The ideas in the framework is simple: every team in the organization should be Agile.

This means that teams such as Marketing, Sales and Finance should be Agile. So should the Legal, Human Resources, and IT Governance teams. All Development-Operations (what are called "Support Teams" by many or "Systems Teams" in SAFe) should also be their own agile teams.

This requires that the organization can create products that are consumable by the other parts of the organization. And it means that at all levels the whole organization is learning. However, this also requires that each team be Enterprise Aware a core tenant of the Disciplined Agile framework. In total there are a select number of key Disciplined Agile considerations that expand on Scrum, with an ultimate goal of having Scrum work over time, locations, size of teams, and the variety of teams needed to run whole organizations.

Key questions to consider as you think about Disciplined Agile Delivery, are as follows:

      • What would an Enterprise Aware team of teams look like?
      • How would you prioritize the work across the organization?
      • How could teams manage their dependencies if they act as semi-independent Agile teams?
      • How could learning and "flow" of value needed for continuous operations at scale be incorporated?

 

Disciplined Agile Delivery starts from one single premise: being Agile doesn't permit teams to be undisciplined.

Disciplined Agile Delivery (DAD) grew from origins in Extreme Programming (XP), Scrum, and Lean. As it's original forms were being codified it was clear that Agile was being used by many teams to avoid good practices of sustainable development. "We don't do that, we're Agile" was a common phrase that frustrated many in the Enterprise. DAD offers a compromise that many people today find extremely valuable in fitting into the organization.

The key characteristics of Disciplined Agile Delivery are:

      • People first
      • Learning oriented
      • Agile
      • Hybrid
      • Goal-driven 
      • Delivery focused
      • Enterprise aware
      • Risk and value driven
      • Scalable

In order to achieve these goals, the Disciplined Agile Delivery process uses a hybrid framework with stages that align with the Traditional Stage-Gate model, from concept to retirement (disposal). It's focus in generally on very large solutions that are required for organizations or developed within large organizations that roll out a product line. 

The key difference between this model and the typical Scrum Model that starts when a team is initiated with funding is as that DAD uses a startup phase called "Inception." During this phase many important things happen to help scale:

      • Modeling of the solution
      • Proof of concepts are explored
      • Shared architectures across teams are initiated
      • High-level release planning and feature roadmaps are established

During this phase the teams often work in functional and cross-functional groups. This startup phase allows for a shared understanding going into the solution development or "Construction Phase."

Disciplined Agile also believes in many more roles than Scrum does:

      • Primary Roles:
          • Stakeholder - these are the same as in Scrum - anyone who is impacted by the solution being built (owners, support, customers, etc.)
          • Team Member - focuses on producing solutions for stakeholders, the Scrum "generalizing specialist"
          • Team Lead - servant leader that coaches and helps organize delivery, and often considered an "Agile Project Manager"
          • Product Owner - provides the "voice of the customer" as either the representative, actual customer, or business line expert
          • Architecture Owner - can be simple as the "senior developer" or an architect; with the goal of reducing technical debt risk at scale
      • Secondary Roles:
          • Specialist - may be the specialist in a certain technology or tool that's used in the solution
          • Domain Expert - provides detailed domain expertise on critical topics for parts or details of complex solutions
          • Technical Expert - can be experts in key non-functional areas (user interface, security, databases, etc.) needed for performance
          • Independent Tester - can be required for complex solution environments or for regulatory requirements (such as government)
          • Integrator - can be a separate role for integration and delivery mechanisms in complex solutions, such as DevOps teams

Disciplined Agile Delivery works by always having the Primary Roles (although sometimes the Architecture Owner and Team Lead are the same person). Then it adds the Secondary roles as needed.

In order to scale across teams, DAD uses the "team of teams" model, building on the "Scrum of Scrums" concept invented by Jeff Sutherland.

      • DAD Agile teams meet in Daily Standups
      • DAD Team Leads meet separately to coordinate delivery, as the Product Delivery Team
      • DAD Architecture Leads meet separately to coordinate architecture and remove dependencies, as the Architecture Team
      • DAD Product Owners meet separately to coordinate planning, as the Product Management Team

These teams of teams models are then coordinated, as needed, by an overall Program Manager role. 

From this basic scaling model, Disciplined Agile then extends these concepts to the organizational level. How can we mature the organization into a "Learning" organization. In fact, the ideas are that the Agile model is a startup model for Disciplined Agile that can be used to eventually create a lean-agile organization that continuously performs the "stages" of development as needed.

Concepts that are built in are the idea of scaling the "Supporting Cast." Those in the secondary role can become their own Agile teams that produce products used by the Disciplined Agile teams to delivery new product. Support teams include everything that could be considered "Development-Operations" or DevOps:

      • IT Operations
      • Customer Support
      • Security
      • Data Management
      • Release Management

These teams are then further scaled up into the total Product Management realm, deemed the "Disciplined IT" realm including Governance and Reuse of products (COTS, GOTS, FOSS), as well as Enterprise Architecture, People Managemenet, and Portfolio Management.

Then Disciplined Agile goes one step higher, suggesting that the entire Enterprise can behave in an Agile manner. Every part of the organization can be its own Agile team or team of teams. This applies to Sales, Marketing, Legal, and Finance, as well as other organizational areas.

To keep the entire organization aware of its own structure, there is a need for "Organizational Assets" and the "Knowledge Base." This means that the Organization becomes its own market for consuming products both internally and externally. By managing a central portal to access the key information and tools needed to run the organization, each team can run without being directive to the others.

This is the actualization of the ideas of a adaptive learning organization. The stages of which are below (shorted from longer forms you can find at http://www.disciplinedagiledelivery.com/dae/):

      • Tribal - impulsive, and driven by urgency; management "preys" on its employees
      • Traditional - Authoritarian, driven by protocols and formal roles and hierachies
      • Scientific - Profit or growth-oriented, driven by innovation and meritocracies of ideas
      • Post-Modern - Consensus driven, with values-based decision making
      • Living - Cellular models of management with an evolutionary purpose

Do these ideas make sense to you? What kind of organization do you work in?  You can learn more about the concepts and ideas of Disciplined Agile Delivery here: http://www.disciplinedagiledelivery.com

Other Sources of key pages cited here:

 

 

Scaled Agile Framework (SAFe)

SAFe offers a means of scaling Agile very quickly within an organization that is currently highly Traditional in nature, and large in scale. The key principles being a blend of Lean and Agile thinking. 

SAFe looks to blending the ideas behind Lean and Agile to provide answers to the questions:

      • How does management give up control, when it's still responsible?
      • How do we develop products for hundreds or thousands of customers?
      • How do we coordinate work across teams when the work requires dependencies?
      • How do we fund, architect, and implement large hardware and software systems with enormous dependencies over years?

In fact, SAFe has three four levels of implementation to help answer these ideas:

      • Essential SAFe - basic SAFe with only Business Owners managing as executives often on a single Agile release train (ART)
      • Portfolio SAFe - includes a portfolio management function to align funding across teams or trains
      • Large-Solution SAFe - Introduces the concepts of having Suppliers that integrate delivery along with multiple ARTs on a Solution Train
      • Full SAFe - Includes a Portfolio Management function above the Large-Solution when managing across Solution Trains and other ARTs

 

SAFe introduces many new roles to the Agile framework beyond the Scrum's three main roles of Product Owner, Scrum Master, and Development Team member. These roles considered essential to manage the integration and flow of products across many Agile teams running concurrently. 

    • System Teams - those that manage delivery and integration of products produced by individual Scrum teams
    • Architecture Teams - manages and promotes the shared architecture framework across teams
    • Product Manager - leads the Product Owners as the primary person in charge of targeting features and EPICs
    • Release Train Engineer - leads the Scrum Masters on each of the Scrum teams, and conducts the large team or team ceremonies

By adding these essential teams, and others when needed, many teams can work together. These teams help make up what is termed the "Agile Release Train" or ART.

ARTs are how many agile teams work together on a single product or part of the business. For instance if there is a Financial company that wants to develop a new mobile banking application for loans, then all Agile teams working on that application might be on the same Agile Release Train. There then might be a separate Agile Release Train or "ART" for developing internal accounting software.

SAFe aligns ARTs to the business Value Stream. By modeling the business as a Lean process (remember Week 2), the organization can then continuous improve how it delivers value to customers using the Plan-Do-Check-Act (PDCA) cycle.  ARTs are the teams that build and deploy changes to each step in the business value stream. 

      • Agile Release Trains (ARTs) align to one or more similar parts of the Business Value Stream
      • ARTs are limited to up to 120 people, keeping on the lowside of Dunbar's number
      • ARTs work together through the Sprint process, with shared ceremonies at the Release boundaries

This introduces the need to coordinate very large groups through the typical Sprint processes of Planning, Development, Review and Retrospectives. One of the most prominent aspects of SAFe is what's called the "Big Room Training" and "Big Room Planning" during Release Planning. Each Release is called a "Program Increment" and usually takes four to six sprints.

Program Increments (PI) Planning:

      • All Agile Teams get in a room (can be up to 200 people, when accounting for stakeholders and Systems Teams)
      • The Release Train Engineer organizes and coordinates the Planning Day
      • The Product Manager provides a shared vision, set of features, and priority for the next Release
      • Product Owners and Scrum Masters each play their role to execute Planning
      • Points are considered absolute (at least at first) to compare across teams with one point equal to one person for one day
      • Teams commit to complete PI Objectives, instead of stories (which belong to the team)
      • PI Objectives are given business value points by Business Owners
      • Teams identify their dependencies across each other during this planning
      • The Program Board captures all work and dependencies across teams
      • The Teams "ROAM" risks: Resolve, Owned, Accepted, or Mitigated
      • Everyone gives a "vote of confidence" on whether they can meet the objectives, and keeps going until the whole team puts up "5 out of 5."

Program Increment Inspect and Adapt (IA):

      • System demo is performed across all teams
          • Often includes the Project Sponsors (Business Owners)
          • Humanizes management
      • Business Owners give feedback on achievement of business value points
      • Retrospectives are run briefly to identify the most important problem to solve
      • Problems are then addressed using workshops that include Business Owners, with clear outcomes and support by leadership

A couple of the principles that make SAFe work are:

    • Take an economic view - Instead of just responding to customer wishes, work is evaluated in terms of cost of delay (CoD).
    • Plan on cadence, release on demand - All teams must plan together, but they can release whenever work is ready.
    • Base milestones on objective evaluation of working systems - The work is only considered done when it is fully demoed at the system level
    • Visualize and limit WIP, reduce batch sizes, and manage queue lengths - leverage the Lean principles of limiting WIP and managing queues with small batches helps prevent turning independent teams back into departmental-like groups

Another issue that SAFe addresses at scale is the need to continuously explore, develop, and deploy new solutions. This is embodied in their ideals of "Continuous Everything;" which promotes the movement of potential work, work-in-progress, and done work through Value streams.

SAFe has three four levels of implementation to help answer these ideas:

    • Essential SAFe - basic SAFe with only Business Owners managing as executives often on a single Agile release train (ART)
    • Portfolio SAFe - includes a portfolio management function to align funding across teams or trains
    • Large-Solution SAFe - Introduces the concepts of having Suppliers that integrate delivery along with multiple ARTs on a Solution Train
    • Full SAFe - Includes a Portfolio Management function above the Large-Solution when managing across Solution Trains and other ARTs

 

To learn a little more about SAFe, check out these great videos as well that can help guide you through the 

 

 

What type of Scrum will you use in your workplace?

We're going to present all the basis you need for deciding the best framework for you and your organization now, by giving the the context and insight you need into all the major frameworks, including:

      • Scrum in the World of Agile
      • Hybrid Agile Framework (aka "Iterative Waterfall")
      • Scaled Agile Framework (SAFe)
      • Disciplined Agile Delivery (DAD)
      • Large-Scale Scrum (LeSS)

Watch out for the shameless plugs we've purposefully put in this course to asking you to verify for Applied Scrum. We've done it because you really should verify! Not only do you get a certificate from UMD proving your excellence, you'll also get access to lots of free content and tools to start applying these lessons right away.

The last lesson, Pitfalls and Benefits of Agile, is especially focused on helping you consider the best way to continue and not get stuck while starting to apply Agile on your team.  More of these ideas are discussed in greater detail in the verified content (yes that's another plug, but it's true!).

We hope you continue to stay engaged, have fun, and be curious as you explore the world of Applied Scrum at it's most applied: the Agile Frameworks. Time to actuate and pick what kind of Scrum you'll use.

It is official across multiple surveys: roughly half of all projects are now, at least in part, Agile in nature.

And, of those types of projects almost ALL the projects in the organization use Scrum or some hybrid of Scrum at its base. The reason being that Scrum is so effective with small teams that it forms the team-level model for nearly every Agile framework. The four largest "Agile Scaling" frameworks all use the Scrum model as their basis:

    • Scaled Agile Framework (SAFe)
    • Scrum of Scrums
    • Disciplined Agile Delivery (DAD)
    • Large Scale Scrum (LeSS)

Both the Project Management Institute (PMI), which has been very Traditional in nature ("Predictive" as they call it); and the Verizon One "State of Agile" report across industries that over 50% of organizations are using Agile.

Note these surveys are very representative across industries of all sizes. In fact, over half the respondents to the PMI survey had organizations worth over $500M in total annual revenue.

According to PMI's Pulse of the Profession:

    • 23% of projects use Hybrid (Agile and Predictive/Traditional) methods
    • 23% of projects used Agile
    • 7% used "other" approaches
    • Only 47% were Predictive / Traditional projects
    • 71% of organizations report "Agility" as being essential to staying competitive

According to Verizon One, who also surveyed a similar distribution of companies (although skewed towards technology and finance):

    • 56% of all projects used Scrum
    • 75% used either Scrum, Scumban, Scrum/XP, or Kanban

Therefore, the World of Agile has arrived. Now it's time to figure out which framework fits you best!

 

Scrum in the World of Agile Summary Points

The World of Agile is HERE!

According to PMI's Pulse of the Profession:

    • Only 47% of projects use Predictive / Traditional approaches
    • Almost 1/2 of all projects are now Agile in nature
        • Half are "pure Agile" and usually Scrum
        • Half are hybrid Agile
    • Most organizations see Agility as essential to staying competitive (71%)

This means that you've made a great investment learning Scrum, because no matter what you're likely going to need these skills in one out of two projects you conduct professionally. In fact, if we look at the primary reasons why projects fail we see the likelihood that Agile will continue to grow.

Here are the top reasons why projects fail according to PMI's Pulse of the Profession:

      • Change in the organization's priorities - 39%
      • Change in project objectives - 37%
      • Inaccurate requirements gathering - 35%

And these were all tied for fourth at 29%

      • Inadequate vision or goal
      • Inadequate, poor communication
      • Opportunities and risks were not defined

When you review these aspects, who do they align to the Agile Manifesto? How do they align to the benefits we've discussed in Week 3 on how Scrum works? 

The reality is that Agile addresses the primary challenges facing projects today directly: objectives, requirements, and communication.

Understanding that Agile continues to grow, we also see in Verizon One's State of Agile report that most projects use Scrum:

      • 56% use "pure" Scrum
      • 75% use Scrum, Scrumban, Scum/XP, or Kanban methods

This is because Scrum is simple, works, and is great for small teams. But as we've reviewed, there's no greater "organization" in the Scrum model. So what about Scale? How do these organizations that use Scrum scale their Agile approaches?

There are four major types of scaling methods used today, according to Verizon One's survey:

      • Scaled Agile Framework (SAFe) - 29%
      • Scrum of Scrums - 19%
      • (Internally Created Methods) - 10%
      • Disciplined Agile Delivery (DAD) - 5%
      • Large Scale Scrum (LeSS) - 5%

This accounts for the major majority of methods used. Often we see that internally created methods tend to look like Hybrid methods. In the next sections we'll explore SAFe, DAD, and LeSS. Each has the following items in common:

      • All use Scrum as the base model for managing teams
      • All have Product Owners, Scrum Masters, and Development Teams
      • All differ on how to mange "Support Teams" and how to make an organization Agile.

The simplest means of understanding Agile at Scale is to look at the two methods originally used to Scale Agile:

      • Scrum of Scrums - teams coordinate work through sending representatives to have Daily Stand Ups across teams.
      • Hybrid Methodology - teams are coordinated by using Predictive or Traditional controls, such as stage gates, to manage delivery

Scrum of Scrums:

      • Scrum of Scrums Stand Ups: Teams send a representative, although usually this is a Product Owner or Scrum Master
          • Can take literally just a long as a standard Daily Stand Up
          • Focuses on reporting out completions and blockers
          • Opportunity to identify need for coordination among team memebrs
      • Scrum of Scrums have a Scrum Master
          • Usually a senior person in the organization
          • Responsible for facilitating the coordination of work
          • Responsible for overall productivity of the Scrum of Scrum Teams
      • Scrum of Scrums applies when two teams have potential dependencies
          • Share resources (people, services, etc.)
          • Shared product in development
          • Shared goal or vision
      • Originally this was proposed by Jeff Sutherland, one of the founders as Scrum and signatories of the Agile Manifesto in 2001
          • "Agile Can Scale: Inventing and reinventing SCRUM in Five Companies" - Jeff Sutherland, Cutter IT Journal, 2001
          • Provides story of using Scrum of Scrums at IDX, where weekly product line Scrums and Monthly Management Scrums occurred.
          • Some teams became "hyper-productive," a state of Scrum teams that Jeff Sutherland talks of being 4 to 5 times more productive

Scrum of Scrums offers a very simple, and yet elegant means of scaling Scrum. In fact, the practice has been used by many very large scale organizations to achieve organizational agility. 

In the HBR Article, Agile at Scale (2018), there are examples of Scrum of Scrums spanning hundreds of people in less than one hour:

      • Saab's aeronautics business has over 100 agiel teams for its Gripen fighter jet ($43M project)
      • Daily Stand Ups occur from 7:30 AM to 8:45 AM
      • By the end of the the Stand Ups using Scrum of Scrum approaches, the executive team knows the critical issues it needs to address
      • That's over 500 people fully reporting using word-of-mouth in less than 90 minutes

This model is having a resurgence now among many Agile practitioners. Especially as many organizations are expanding their understanding of Agile and using Hybrid means or SAFe to transition into becoming an Agile organization.

The Hybrid model that is most commonly used by organizations is rather simple:

      • Traditional means are used to control major decision points
          • Stage Gates are leveraged especially for Requirements, Design, and Operations (Deployment)
          • This offers a chance for the Traditional / Predictive leadership to approve the next "Stage" of the project
      • Agile (Scrum) methods are used to rapidly and iteratively develop products in each stage
          • Whole teams are used to develop Requirements, Designs, Development, and Verificatoin
          • Whole teams are able to prototype and create reusable document
          • Requirements are managed as User Stories
          • Stories are generated in Requirements, refined in Design, Implemented and closed in Development
          • Development is often still iterative and incremental for speed and learning
          • Development may have multiple releases to a "staging" or "pilot" environment
          • Verification is run for system-level requirements against use cases

This effectively looks like iterations between stage-gates; and is often more successful in organizations that resist Agile. Since organizational resistance to Agile and misunderstanding of Agile are the primary reasons for Agile failing (according to Verizon One), this makes sense for many new entrants learning Agile for the first time.

When looking at the major reasons that Agile fails, we see the following:

      • Organizational culture at odds with agile values - 53%
      • General organizational resistance to change - 46%
      • Inadequate management support - 42%
      • Lack of skills/experience with agile methods - 41%

These statistics show why the Hybrid model is so popular among about half the practitioners of Agile in more traditional organizations. For this reasons "Internal Agile" is a great means of proving the effectiveness of the method when there's no upper management support. However, the only means of truly achieving agility is to have leadership support and good Agile training.

So how do we convince the leaders who are disbelievers in Agile? Show them the data:

      • Reasons for Adopting Agile
          • Accelerate Software Delivery - 75%
          • Manage changing priorities - 64%
          • Increase productivity - 55%
          • Better alignment of business and IT - 49%
          • Increased software quality - 46%
      • Benefits of adopting Agile (percentages show counts, not impact)
          • Better management of priorities - 71%
          • Project visibility - 66%
          • Alignment of business and IT - 65%
          • Delivery speed / time to market - 62%
          • Team productivity - 61%

And in terms of impact, the benefits can be four to five times the productivity and value output; as seen in the Ambysoft survey in 2013.

Now that you understand the Scrum in the World of Agile, and you know that world is here (!):

      1. What framework will you choose?
      2. How will you achieve the benefits (speed and innovation)?
      3. How will you manage the change (leadership and control)?

The other lessons in this week will try to help you answer the first question. To answer questions 2 and 3, we highly recommend you sign up for the remaining courses in the Agile Project Management Certificate. Just like in this course, if you Verify you'll get tools, additional resources, and insights that go beyond these lectures and notes to enable the change in your projects.

Now, go be Agile and win!

 

Wednesday, August 19, 2020

Agile Sprint Planning and Development

 

Sprint Planning

Sprint Planning is one of the most exciting parts of any Sprint. It's an opportunity to imagine and explore the needs of the customers and stakeholders. Everyone is involved and the Development Team really gets ask all the detailed burning questions needed about the requirements they're preparing to implement.

The key steps in this process include:

    • The Product Owner presents the Updated Product Backlog
    • The Development Team selects User Stories for a Product Increment
    • The Development Team refines User Stories enough to estimate and finalize selection

In completing this process, there are couple of key tenants:

    • All voices need to be heard
    • Everyone has to agree on the Sprint Backlog
    • You need to get all planning completed quickly! 

How would you quickly get all of this accomplished to plan work for two weeks or four weeks?  Think of all the points of discussion on one User Story, let alone a team's worth! 

Sprint Planning Summary Points

Sprint Planning has three key objectives:

    • Product Owner presents the updated Product Backlog
    • Development Team selects and refines User Stories
    • Development Team is able to commit to the Sprint Backlog

However, to ensure the authenticity of those objectives are met the following must happen:

    • All voices must be heard
    • Team must review and elaborate all User Stories in the Sprint
    • The Team must be able to size and select those stores within the timebox of the Sprint Planning!

The "timebox" for sprint planning is usually half a day for a two-week sprint, or a full day for a four week sprint. The same applies for Team Retro and Reviews. This allows for one day out of two weeks (1:9) ratio to be spent on planning and review.

To do this correctly, the team must avoid:

    • Getting into long, drawn-out discussions on requirements
    • Conflicts that can destablize the planning meeting
    • Not having the information needed to plan

The key to making a good Sprint Planning Work is two-fold:

    • Great User Story writing by the Product Owner (and/or Development Team in variations of Scrum)
    • Planning Games

Great User-Story writing means that the Scrum Master and Product Owner need to work together to ensure User Story quality. This is especially important when the team has a new Product Owner, who hasn't worked on a Scrum team or THIS Scrum team. Story writing is extremely cultural.

The use of Planning Games is essential because it helps to facilitate and elicit creativity from the team. Often this is when many teams will ask, "why not just talk about the stories?" The key reasons for NOT using unfacilitated discussion or "open discussion" is that it's NOT open:

    • Loudest voice in the room wins
    • There's no timebox or time limit on discussions
    • There's no way to tell when consensus is reached
    • There's no way to improve without structure to improve upon

For this reason we use games in Scrum. The most common is the Planning Poker Game.

Planning Poker Game. Key source for these rules is: http://agileinaflash.blogspot.com/2009/07/planning-poker-r.html

    • Agree on a point scale
    • Team briefly discusses the User Story
    • Everyone picks a card in silence
    • Team members reveal the card
    • If an outlier exists (more than one step from the mode), then discuss
    • (Optional) After two rounds take an average, and validate with a "yes/no" team vote

This process is used to accomplish three things:

    1. Validate that the size of the story is correct
    2. Validate that the User Story is well understood
    3. Ensure all voices are heard equally when disagreements occur

Many times there are disagreements about how to develop a point scale. There are valid reasons, especially when Story Points are misused by team members or management outside the team. Here are some key points to consider:

    • Points are a relative metric
    • Points should consider more than effort
      • Complexity - how hard is it?
      • Uncertainty - how certain are we know the business reqs and potential technical solution?
      • Effort - how much total work?
    • Points should be consistent across Sprints, but not necessarily across teams

Please note that many types of "Scaling Frameworks" disagree, with basis, on whether User Story points should be an absolute metric, or at least shared across multiple teams. For Scrum and it's variations this is not important. Story points are solely to help the team know how much work can be accomplished and if the team is getting faster Sprint after Sprint.

We continue to explore these concepts of how to use scaling of points and measurements of team performance in the Agile for Control course in the Agile Project Management Curriculum. As well as briefly in next week's lessons on Scaling Frameworks.

Finally there are few additional items to consider for Planning:

    • Work iteratively through picking Stories prior to Sprint Planning
    • Select Stories that combine to form a cohesive "Product Increment"
        • It's best if the Product Owner has something in mind already
        • This Product Increment should be written down as a "Sprint Objective" to help focus Planning
    • Work one-by-one through User Stories when performing the Planning Poker game
        • This is fastest, because everyone is focused on the same story at the same time
        • This is easiest because you only have to think about one story at a time
    • Make sure to leave a little buffer on your first Sprint
    • Make sure that everyone commits to getting the work done - don't let everyone leave without a clear "confidence" vote from the team
    • You will end up refining the Product Backlog and identifying potential dependencies in this process - that's okay!
        • When updating the Sprint and Product Backlogs - do it now. Don't lose those moments of insight that come in planning
        • Make sure that the tools you use are simple and effective to make this go smoothly
    • Finally, be sure to prioritize the Sprint Backlog so the Development Team knows which User Stories to start on first the next day.

By following these guidelines your planning will be faster, more inclusive, and more accurate than any group discussion or interview process could hope to achieve.

Sprint Development

Sprint Development is upon the team. It's the first day and a Sprint Backlog of User Stories fresh in mind awaits the team. Time to Stand Up and start delivering!

Sprint Development is much different than the type of work experienced in Traditional environments. Every morning the team meets, rain or shine, good day or bad day, and they discuss the work-in-progress. To ensure that no team member is stuck many tools are used, some of which we've discussed briefly already:

    • Daily Standups
    • Kanban or Scumban boards
    • User Stories
    • Face-to-Face meetings
    • Focused time at your desk! (Imagine it!)

The goal of these tools is to reduce the time spent in meetings to the essential. Teams will open up less work than the whole team could work on concurrently as individuals. Why? Because that way when someone needs help there are people to help. Everyone isn't "too busy" to jump in and solve problems together. 

Also, there is no "i" in team, and the "m" and "e" are always preceded my "t" for team. The team comes first because the whole team is evaluated on performance together, and no one person "owns" the work. Team ownership means everyone has a shared interest: completing the Sprint Backlog.

Imagine removing all "coordination" meetings with a five-minute standup. Imagine having help whenever you ask for it. Imagine getting work done during the day

Sprint Development Summary Points

To begin, it's important to review the principles of Sprint Development:

    • Daily Stand Ups - daily face to face communication so there's no "scheduling" of coordination
    • Whole Teams - Everyone knows what the work is (we planned it together), and works on it together
    • Team Ownership - Multiple team members working on the same User Story
    • Limit WIP - limit the Work-In-Progress (WIP) to achieve faster, predictable development with focused time

When we look at these principles we see a lot of the Agile Manifesto Values restated within them. 

    • Individuals and Interactions over Processes and Tools Daily 
    • Working Software (Systems) over Comprehensive Documentation        
    • Customer Collaboration over Contract Negotiation                       
    • Responding to Change over Following a Plan                                    

Daily Stand Ups

    • Two types of daily standups
        • "Scrum Standup" - each team member reports on what they did, what they plan to do, and any blockers
        • "Forward-Looking Standup" - facilitator asks about work-in-progress, team self selects what they'll be doing

Whole Teams

    • Whole team is available to work on closing User Stories
        • Product Owner provides input on features as developed, and is available to close stories
        • Scrum Master facilitates meetings, workshops, and ensures quality through good User Stories, Story Closing, etc.
        • Development Team collaborates to complete work, which may mean switching to help others
    • Continuous Planning
        • As product takes shape, Product Owner consults with stakeholders to gather feedback
        • Scrum Master ensures feedback is facilitated and efficient
        • Scrum Master works to engage other stakeholders as necessary, or other teams at scale
        • Product Owner write stories, which are audited by the Scrum Master

Team Ownership

    • Teams know what work needs to get done, each supporting as needed
    • Sometimes that means three Development Team Members work on one User Story
        • First gathers user interface (UI) and process requirements from stakeholders, and builds UI
        • Second begins working on technical solution for middle (logic layer) and backend (data management)
        • Third designs and builds tests based on Acceptance Criteria (automated tests)
        • Scrum Master might facilitate meetings with stakeholders or UI rapid prototyping
        • Product Owner will validate the final product
    • If one User Story begins to fall behind, then pair programming or "war rooms" can be established to solve the problem
        • Team members know the work, and can jump in to help
        • No individual ownership removes issues of "pride of authorship"
        • Team reduces risk of failing to deliver critical functionality
    • This "Team Ownership" ensures progress on the highest priority work, which also carries the most value for stakeholders

Limit WIP

    • Limiting work-in-progress (WIP) enables all processes to work faster
        • Reducing WIP means team members are available to support as needed
        • Reducing WIP means fewer meetings and coordination activities
        • Reducing WIP means clear, small tasks that can be accomplished and reviewed quickly
        • Reducing WIP means more time spent getting work done, and less time organizing multiple acitvities
    • Primary means of reducing WIP is to use a Kanban or "Scrumban" board
        • Kanban board - manages stories as work items, moving Stories across the value stream of a states
            • Stories may have three or more states, often requiring five states (Planned, Ready, In-Development, Testing, Done)
            • Each state is limited in terms of the number of stories allowed (such as only two in Testing at once)
            • Limiting the WIP in each state ensures that work must be completed before starting new work
        • Scrumban Board - manages tasks as work items, moving tasks and then Stories across a value stream of states
            • Like Kanban, there are three or more states that tasks and Stories can be in, often five (Planned, Ready, In-Dev, Testing, Done)
            • Stories can only move forward in states in the Value Stream once all tasks have moved forward
                • Stories are only "In-Development" if all tasks are "In-Development" or further in the Value Stream (e.g. "Testing")
                • Stories and tasks are managed in their own row or lane
            • Scrumban may also include "fast lanes" for high-priority tasks

Note that many of these techniques are borrowed from Lean approaches; especially the Kanban board for limiting WIP. This is because once Stories are planned the team should operate like a well-oiled machine cranking through work. The goals of continuous improvement and reducing waste definitely apply. 

However, one key aspect of Scrum that differs and remains Agile is the fact that the Product Owner is on the team, and they can accept work incrementally. Also with the full transparency of the Sprint Backlog showing what work the team must accomplish by the end of the Sprint, the Development team can decide to manage their time based on those Sprint Requirements. These Stories also combine to form a meaningful, shippable increment.

For these reasons, Agile offers sustainability, purpose, mastery, and autonomy to the Development Team not offered in pure Lean approaches. These elements have been proven to be the most motivating for teams of knowledge workers.













How to Scrum and be Agile? How to form scrum team? How to write user story?

 

All projects begin with the same founding document: a charter. Charters are essential to setting the direction and project objectives that will guide the team to completion. They should also include key information needed to manage the work:

  • Project Objectives
  • Project Stakeholders
  • Project Constraints
  • Project Risks
  • Definition of Done

If you're managed a project before this should look familiar, except perhaps for the Definition of Done. This is a critical additional element added by the Agile framework that defines how work will be closed incrementally throughout the project.

Having a Charter allows for the correct formation of  team. You know what the work is, what it is not, who cares, the risks in performing the work, and the way you'll finish the work. All aspects are clear to select the appropriate team members based on these parameters.

In "pure" Scrum is very basic with only three roles: Product Owner, Development Team Member, and Scrum Master. In reality teams often form as many derivatives of these roles.

Scrum Team Formation Summary Points

The key document that sets up the team is the Charter. This includes:

  • Project Objectives - what the sponsors and/or customers expect from this project
  • Stakeholders - who "has a stake" from sponsors to customers and why. Includes technical, security, business, and operational stakeholders
  • Constraints - what must the project also do or do not in accomplishing the objective, such as standards, interfaces, and dependencies
  • Risks - what are major risks (internal and external), this includes business, technical, political, social, environmental
  • Definition of Done - the agreement among stakeholders of how work is closed by the Product Owner and supporting stakeholders

 Once the Team Charter is in-place, the team should assemble based on the skills needed to do the work:

  • Product Owner - person responsible for managing the Product Backlog; can only be one person; 
  • Scrum Master - person responsible for facilitating and keeping the team on track; leads Sprint Planning and Retrospectives
  • Development Team Member - person on the team who takes responsibility for the team's success in completing the Sprint objectives

These are the general types of team members on a Scrum Team, however, we know that many times we need variations based on our organization. The following are typical variations

Product Owners variations

  • Types
    • Business Representative - from the business line using the product, or subject matter expert (SME) for customer
    • Technical Expert - from the systems engineering or technology group of the customer, has experience with building for business lines
    • Sponsor - the executive, director, or product manager for a business line (internal or external); focuses on marketing and feature analysis
    • Business Owner - the owner of the business selling the product; often a combination of other types of representatives
  • Level of Availability
    • Dedicated - always on the team and available to the team; focusing on the backlog refinement whenever not supporting other team members
    • On-Call - available when needed at all times; however, may have limited time outside of team support for backlog refinement (e.g. other duties)
    • Matrixed - works on multiple products or projects, balancing time based on their own direction or the direction of departmental goals
    • Minimal - available only for Sprint ceremonies and minimal other times
    • Absent - available with long lead times for set consultation hours; cannot predict if/when they will be avialable

Scrum Master variations

    • Types of facilitation
      • Facilitator - facilitates planning meetings, daily scrums, coordination with stakeholders (requirements, etc.), and retrospectives
      • Project Manager - works as facilitator, as well as managing human resources; and is responsible for reporting and project success 
      • Junior Project Manager - works as facilitator and is responsible for reporting and project success for the Scrum team
      • Business Analyst - works as facilitator and also provides supports for Product Owner and Development Team with requirements elaboration
    • Types of Availability
      • Dedicated - soles works on the Scrum team
      • Split - works across multiple Scrum teams (can be the same or different projects or product lines)
      • Rotating Team Member - can be a rotating member of the Development Team who acts as the Scrum Master for a Sprint
      • Matrixed - can be part of a department with responsibilities to the department, Program, Program Management Office, etc.
      • Minimal / Absent - can be only available for running ceremonies and on-call for other facilitation

Development Team Member variations

    • Types of representation
      • Generalizing Specialist - a team member that can perform any role as needed, but is trained in a certain skill set (usually development)
      • Developer (Hard/Software) - a technical team member who focuses primarily on building the product to specifications
      • Business Analyst / Tester - an analyst who defines and checks the work being developed by the team meets the Product Owner's intent
      • Technical Writer - an analyst who provides support for other team members in capturing notes, metadata, and communicating work
      • Architect - an experienced team member in a technical or business domains that serves as subject matter expert (SME)
      • Support Team - a team member that provides enabling technology, such as work tracking software, builds, deployments, machining, etc.
    • Types of Availability
      • Dedicated - soles works on the Scrum team
      • Split - works across multiple Scrum teams (can be the same or different projects or product lines)
      • Matrixed - can be part of a department with responsibilities to the department, other projects or product lines, or Centers of Excellence
      • On-Call - is available as needed, when needed by the team to provide surge support or expert guidance
      • Absent - available with long lead times for set consultation hours; cannot predict if/when they will be available

There are many advantages to having fully dedicated team members. Most often the objections for fully dedicating team members arise when considering the Product Owner and the Scrum Master. It appears as if these team members have a lot of "downtime" during the actual Spring Execution phase. This is hardly the case:

  • Product Owners need to use time between ceremonies to liaison with Stakeholders
  • Product Owners need to research market changes (Political, Environmental, Social, Technological) to validate product features
  • Product Owners need to work with team members and provide quick feedback to keep the Development Team running as fast as possible
  • Scrum Masters should to facilitate meetings, especially with stakeholders - this can take a long time to research and prepare!
  • Scrum Masters should to help guide requirements, development, and testing based on best practices
  • Scrum Masters should to help escalate issues outside the team; and address real-world obstacles that get in the team's way
  • Scrum Masters should always be analyzing the data of the team's performance to identify continuous improvement opportunities
  • Scrum Master is often having to "prep" the stakeholders and retrain where necessary the Product Owner and Development Team

How does this compare with your organization? Do you have "professional facilitators" who can ensure productive meetings? What about dedicated product owners to answer questions and make calls so development keeps on-track?

Consider the difference an approach like this might make, and the challenges in implementing it.

Three-Part User Story Summary Points

There are three parts to a User Story:

    • Value Statement
    • Assumptions
    • Acceptance Criteria

These work together to for the complete "User Story." It is NOT just the Value Statement. 

The proper means of creating a Value Statement is up for debate, but usually the statements are as follows:

 As a...[Who]...I want to...[What Functionality Desired]...in order to...[Why It's Important].

The "Who" is the user, either directly using or consuming outputs from the product the Development Team is building. It's important that if this user is not clearly defined already in the Project Charter then they are added by the Product Owner, with consensus by the Stakeholders. This ensures there's a clear understanding when say the term "End User" is put into the [Who] part of the Value Statement. Usually "End User" is too vague. It should be a descriptive title such as "Research Librarian" or "Fighter Co-Pilot."

The "What" should be the MOST important aspect of the component being built. Often because product features serve multiple users and needs or wants of users the User Stories can seem to compete with one another. When multiple types of value or outputs are created by a new product feature or component, make sure that the one that is put in the Value Statement is the priority. Priorities matter because a product that does everything for everyone in the end serves no one well.

Most importantly the "What" or "Functionality Desired" should be stated in only business terms. Examples:

    • I want to Login Using My User Name and Password --- WRONG!
    • I want to access my account --- RIGHT!

The "Why It's Important" is a critical failing of most User Stories. This is true for experienced and beginning Scrum teams. The easiest trap is to simply restate the "What" in another way. Such as "I want to Login to access my account." As stated above, the proper "What" in this statement is "access my account." So what's the "Why?"  It could be:

    • To check notifications
    • To assign work
    • To check the rankings of my fantasy football team

The key is that it's important and the MOST important "Why" of the feature or function. Others that are less important belong in the Assumptions.

Additional key points:

    • Assumptions are a bucket for everything else
      • Captures less important value created by the User Story
      • Captures detailing of Why the user story is important
      • Identifies constraints from preceding or proceeding tasks, work, components, etc.
      • Identifies all the standards, influences, reference architectures, etc.
      • Captures other reasons "Why" this story might be important
      • Can limit the Acceptance Criteria and the Value Statement - not just the Value Statement
      • The only information that is not needed to be listed here, are standard procedures captured in the Definition of Done.
    • Acceptance Criteria are NOT restatements of the Value Statement
      • Should clearly define the primary use cases for testing
      • Must specify any performance or loading that the product increment should meet
      • Must be comprehensive in detailing all tests that will be run to close the story

Finally it's important to note that all User Stories should be modular because they capture business functionality. If written correctly these shouldn't ever be in conflict because of technical dependencies.

User Stories are owned by the Product Owner when in the Product Backlog, and then once they are moved into the Sprint Backlog they are owned by the Development Team. The Development Team can update these stories with comments, but cannot change the Value Statement, Assumption, or Acceptance Criteria without the Product Owner and Development Team Members' consent.

All User Stories are governed by the Project's Definition of Done. In this way the Definition of Done is the hidden "Fourth Part" of any user story, although it is focused on process for closing a story.  The Definition of Done captures all the standard requirements for completing work defined in a  User Story, such as:

    • Standard approvals,
    • Reviews by stakeholders
    • Prototyping (if required)
    • Documentation (for sustainability, reporting, etc.)
    • Design constraints (for compliance, integration, etc.)  

In this way the Definition of Done helps to modularize the statements within an User Story; but it also provides a clear set of expectations around quality control and sustainability.

 

 

 

 

 

 

 

 

 

Comparing Project Management Methods Across Industries

 

Comparing Methods Across Industries Summary Points

The central part of this lesson is understanding this table below on Size and PM Method:

 

Traditional

Agile

Lean

Project Size

Large

Medium

Small

Industries

Construction

Military

Government / Policy

Relocation

Information Technology

Product Development

Consulting

Operations

Sales

Customer Support

Legal

Research & Development

Planning*

Master Schedules

Releases

Backlogs  (Prioritized Lists)

Sourcing

Efficiency

Trust

Expertise

Goals

Predictable  (Low Cost)

Speed  (Maximize ROI)

Innovation  (Problem Solve)

 

Traditional

  • Typically Large
  • Many connections between stakeholders
  • Impact many stakeholders
    • Many departments
    • Many technologies and concerns
  • Good Examples are
    • Large building construction
    • Military platform acquisition
    • Government civil works projects
  • Planning is done using a Master Schedule
  • Goal is to be predictable and efficient (low cost)

 

Agile

  • Typically Medium in size
  • Good examples are
    • Building new products
    • Ex. SpaceX used modular designs to launch many types of rockets
    • Ex. Apple Operating Systems with regular releases over time (incrementally better)
  • Planning is done in Releases
    • Goal is to get out to market
    • Each cycle builds on what came before in releases
  • Goal is to be fast and make money (maximize return on investment, ROI)

 

Lean

  • Typically Small
  • Good examples
    • Building a new solar panel
    • Selling or closing a deal
    • How we manage ourselves
      • To Do:  Get the dog from the vet
      • Doing:  Pick up kids from school
      • Done:   Bought the presents for the kids' party
  • Planning Uses Value streams and Lists
    • Setting up a process (e.g. To-Do, Doing, Done)
    • Establishing a backlog of work to go through that process
  • Goal is to be responsive and innovate (problem solve)

A key question we should ask after considering is why do these groups form around size? Why are the Traditional projects large? The Agile projects medium in size? The Lean projects small?

Asking these questions drives us to the next lessons on key concerns: Customers and Engineering.

 

Comparing Methods of Customer Management Summary Points

 

Traditional

Agile

Lean

Project Size

Large

Medium

Small

Industries

Construction

Military

Government / Policy

Relocation

Information Technology

Product Development

Management Consulting

Operations

Sales

Customer Support

Legal

R&D

Customer Size

>250 participants

Up to 250 participants

Up to 10

Customer Communication

Representatives

Large, Facilitated Meetings

Part of the Team

Small Meetings

On-Call

Ticketing / Request

Payment Method

Firm Fixed Price /

Custom Pricing (Quote)

Time & Materials /

Retail Purchase (Paid)

Cost-Plus /

Subscription (SLA)

 

Traditional

  • Customer Size: >250 participants (customers and team)
    • Greater than Dunbar's Number
    • Many different groups and sets of concerns
  • Customer Communication: Formalized
    • Large Facilitated Meetings (Public Meetings or Hearings)
    • Large Surveys and Teams of Interviews
    • Representatives are sent (such as in government) to represent large stakeholder groups
    • Change Control Boards ensure all stakeholder (groups) are heard
  • Payment Methods
    • Almost always Firm-Fixed Price (cannot change the price)
    • Requires custom quotes because of the size and complexity
    • This involves complex parametric estimation

 

Agile

  • Customer Size: Up to 250 participants (customers and team)
    • Department user groups
    • Clear Market Segments
  • Customer Communication
    • Customers are on the team
    • Customers engage in ceremonies and provide immediate feedback
    • No delays, and often just one representative can suffice for decisions
    • Sometimes working groups help to coordinate across functional concerns
  • Payment Methods
    • Time and Materials (T&M) to scale resources for fixed periods of time
    • Retail Purchase (Paid), where a fixed price and targeted units sold ensure profits

 

Lean

  • Customer Size: 10 people or less (customers and team)
    • Single user who needs support
    • One product group that needs new technology
    • One owner or a small group that needs expert advice
  • Customer Communication
    • On-Call support (customer calls the vendor)
    • Ticketing systems (customer logs an issue)
    • Communication is then one-on-one with issue holder
  • Payment Methods
    • Cost-Plus contracts (guaranteed profit plus any expenses)
    • Subscription (SLA) or Fixed Fee

Hopefully these new details are opening up one clear set of constraints on Project Management Methods: The Customer. Scheduling and managing resources using traditional means, with large meetings and formal communication can really make sense at scale; but also when you have many differing concerns in requirements (stakeholder groups), or an unavailable customer on large, complex work. Agile works well when the customer prioritizes your project and there can be a single, decision-making representative. Lean makes sense when the customer needs immediate attention, but at uncertain intervals. Lean also makes sense when the work and complexity is very small (although the expertise level may be very high).

But is it always up to the customer? What about the product? What kind of engineering is required or resultant based on these methods to maximize their potential returns?

Comparing Methods of Engineering Management

Depending on the method of Project Management (PM) selected our goals in Engineering design change. What does that mean for the Project Manager? Everything, if you're being held accountable for successful delivery!

We sometimes see the product as driving PM Method choice, but this is rarely the case. The Customer (s) type, availability, and total number of stakeholders drive the management method. The work must meet those demands, based on the goals set. 

      • Traditional must be efficient in design
      • Agile must release early and maximize value with iterative releases
      • Lean must be responsive and provide services or products based on client priorities

To do this results in very different design paradigms, coupling of services, and resultant architectures. This lesson will explore those together, along with the Engineering Team makeup that also derives from the PM method choice. This forces new design, development, integration, and testing concerns on the creators. 

Can you imagine how the Project Management method would bind or release your creativity? What about getting feedback on your designs? What about acceptance?

Enjoy this lesson as you explore the stark differences each method produces in what's under-the-hood in your final delivery!

Important Note Before You Go:

      • In this lesson there will be discussion of Applications, Features, and Services
      • These are Systems Engineering Terms, and Common Terms for many problems - beyond Software Engineering!
      • Here's how it breaks down:
          • Application - the business use of product(s) or service(s) to support the organization
            (e.g. a new car from the dealership) 
          • Feature - an aspect of an Application that delivers value to its customers
            (e.g. automatic air conditioning)
          • Service  - a set of functions that serve a common purpose 
            (e.g. air sensor system, air cooling system, air heating system, ventilation)


Comparing Methods of Engineering Summary Points

 

Traditional

Agile

Lean

Project Size

Large

Medium

Small

Industries

Construction

Military

Government / Policy

Relocation

Information Technology

Product Development

Management Consulting

Operations

Sales

Customer Support

Legal

R&D

Design

Dependent / Coupled

Independent / Decoupled

Constrained / Evolutionary

Teams

Departmental

Matrixed / Projectized

Emergent (Ad Hoc)

Development

Linear

Iterative

Incremental

Integration / Testing

End Phase

Continuous

When Possible

Closing

3rd Party Acceptance

Team Acceptance

Customer Acceptance

Important Note Before  Reading Further:

  • In this lesson there will be discussion of Applications, Features, and Services
  • These are Systems Engineering Terms, and Common Terms for many problems - beyond Software Engineering!

Here's how it breaks down:

      • Application - the business use of product(s) or service(s) to support the organization 
        (e.g. a new car from the dealership) 
      • Feature - an aspect of an Application that delivers value to its customers 
        (e.g. automatic air conditioning)
      • Service  - a set of functions that serve a common purpose  
        (e.g. air sensor system, air cooling system, air heating system, ventilation)

Traditional

  • Designs are Dependent of Coupled  & Development is Linear
      • Driven by need for efficiency
      • Heavy amounts of reuse across components
      • Drives multiple dependencies into the system
      • Any small change in the services results in BIG costs
      • This can be efficient with few changes
  • Teams: Departmental
      • To be efficient we use multiple departments or contracts
      • This specialization will lower costs of delivery
      • These teams are then matrixed into the project
  • Integration and Testing: End Phase
      • Because of tight coupling, only at the end phase can we really test
      • All parts are connected and could impact each other
      • This delays feedback, which in turn freezes requirements
  • Closing: Third Party Verification
      • A third-party tester is needed to match requirements to the final product
      • Only this way can multiple stakeholders trust the results
      • This is also a large job, requiring verification expertise

Agile

  • Designs are De-Coupled & Development is Iterative
      • Allows for building features one at a time
      • This requires additional scope around supporting services to make features independent
      • This reduces costs of changes, but increases baseline costs
      • This also allows for early release of features or minimum viable products (MVP)
      • Each iterative release can build on the release that came before it
  • Teams: Matrixed / Projectized
      • Everyone is on the team
      • All departments see and hear the same intent
      • This ensures maximum accuracy in communication
      • The customer is also on the team
      • This also enables speed, reducing handoffs and delayed decisions
  • Integration and Testing: Continuous
      • By continuously testing the work, the work can be closed for each release
      • This is done on cadence with the owners
      • This ensures that new features don't break old ones as we add scope with each release
  • Closing: Team Acceptance
      • The testers are on the team and can immediately inform customer on quality
      • The customer is on the team and can accept the work

Lean

  • Designs are Evolutionary & Development is Incremental Only
      • Limited up-front planning and control on releases
      • Features are built based on immediate need, not market segments
      • Services evolve underneath features to be both responsive and efficient
      • Designs can be complex to maximize reuse, requiring smart but limited engineering work
      • Key is to build "just enough"
  • Teams: Emergent (Ad Hoc)
      • Teams include only those needed at each stage
      • This has a mix of people involved depending on current focus of work
      • This minimizes costs immediately, but can cause issues in ownership and handoffs
  • Integration and Testing: When Possible
      • Lean projects are building on-demand without much up-front planning
      • This results in an integration "when possible" approach
      • As soon as the work is complete its integrated
      • Examples are
          • New discoveries introduced from R&D
          • Fixes to working systems, such as bug fixes or replacement parts
          • Upgrades and updates to legal documents once agreement is reached by parties
          • Completing deal stages once customer is ready or response time expires
  • Closing: Customer Acceptance
      • Closing is based on customer acceptance only
      • The work stays open until the customer is satisfied
      • Customer is agreed to pay all costs until work meets satisfaction or project is cancelled
      • Even testers are simply informing customers, usually without authority

Understanding the impact that the chosen PM Method has on Engineering is essential for any project manager. Depending on your domain of engineering different types of engineering may be possible or nearly impossible. Can one incrementally build a house? It wouldn't be allowed by the zoning boards, but it would also be dangerous!

At the same time, you only need a single general contractor and a small team to get those repairs done before putting a house on the market. You may have a fixed budget and need the best ROI to get that house at maximum attractiveness so buyers offer you the best bang for your investment buck.

And when it comes time to sell, can we understand the inefficiency of always re-writing the typical contract used for closing a house? Why redesign a whole new contract when you can just update and modify a template? The legal profession lives on templates.

Every aspect of work has its natural fit, but knowing that Agile delivers the maximum profit - can we make our projects more Agile-ready? What does that require from the customer and the design?

This is where the world of Engineering is headed today:

    • All Industries are converging on Agile
    • IT is integrating into every product - Andreessen's claim "Software is Eating the World"
    • Examples of this trend include:
        • Traditional going Agile:
            • Building Information Modeling (BIM) - to drive the use of iterative planning and design for one or many buildings (e.g. Onuma System)
            • Government Modular Acquisitions - to enable products of products and systems of systems in the government space (e.g. Open-Government Movement)
        • Lean going Agile:
            • Online Legal Products - grouping concerns of typical Lean processes into automated productized support (e.g. Legal Zoom)
            • "Everything as a Service" - human resources, accounting, and marketing are now productized services or automated services for small businesses

Onuma Planning System Example

      • Building Information Models to drive decisions on building investments
      • Example of Agile approaches to modeling and planning large-scale requirements for buildings
      • Modeled using "Rapid Planning Sessions" where
          • Large ships called "Cutters" drove facility requirements
          • Facility requirements then drove modeling new buildings and investment at Coast Guard sites
          • All future scenarios were modeled using simulations in Google Earth
          • Final details were architectural level, down to the "nuts and bolts."
      • While this type of system may seem new, it's actually over a decade old
      • This allows for iterative through otherwise static, top-down design processes with many interconnected planning details
          • All the stakeholders get in a room
          • The buildings are simulated in real time
          • Architects, Interior Designers, MEC vendors, and Construction can all contribute to designs in real time
          • Result is low costs in construction and significantly reduced numbers of change requests