DZone
Thanks for visiting DZone today,
Edit Profile
  • Manage Email Subscriptions
  • How to Post to DZone
  • Article Submission Guidelines
Sign Out View Profile
  • Post an Article
  • Manage My Drafts
Over 2 million developers have joined DZone.
Log In / Join
Refcards Trend Reports Events Over 2 million developers have joined DZone. Join Today! Thanks for visiting DZone today,
Edit Profile Manage Email Subscriptions Moderation Admin Console How to Post to DZone Article Submission Guidelines
View Profile
Sign Out
Refcards
Trend Reports
Events
Zones
Culture and Methodologies Agile Career Development Methodologies Team Management
Data Engineering AI/ML Big Data Data Databases IoT
Software Design and Architecture Cloud Architecture Containers Integration Microservices Performance Security
Coding Frameworks Java JavaScript Languages Tools
Testing, Deployment, and Maintenance Deployment DevOps and CI/CD Maintenance Monitoring and Observability Testing, Tools, and Frameworks
Partner Zones AWS Cloud
by AWS Developer Relations
Culture and Methodologies
Agile Career Development Methodologies Team Management
Data Engineering
AI/ML Big Data Data Databases IoT
Software Design and Architecture
Cloud Architecture Containers Integration Microservices Performance Security
Coding
Frameworks Java JavaScript Languages Tools
Testing, Deployment, and Maintenance
Deployment DevOps and CI/CD Maintenance Monitoring and Observability Testing, Tools, and Frameworks
Partner Zones
AWS Cloud
by AWS Developer Relations
The Latest "Software Integration: The Intersection of APIs, Microservices, and Cloud-Based Systems" Trend Report
Get the report
  1. DZone
  2. Culture and Methodologies
  3. Agile
  4. The Case for Lean: Oversight

The Case for Lean: Oversight

In the first part of his series titled "The Case for Lean," Alan Hohn discusses the management process and the relationship between sprints and stand-ups.

Alan Hohn user avatar by
Alan Hohn
·
Jul. 01, 16 · Opinion
Like (2)
Save
Tweet
Share
3.10K Views

Join the DZone community and get the full member experience.

Join For Free

As I've advised a few teams this year who are making the switch to agile, I've found myself advocating more and more heavily for Kanban or "continuous flow" styles. I thought I'd take some time and write down what I think are the reasons I'm moving in that direction. Of course, Kanban is a frequent topic on DZone. I won't waste your time by describing it, but hopefully I can find a fresh insight or two, or at least say something stupid enough to make people want to comment.

The first reason I want to discuss comes from how I've seen agile done, at least on some large teams (over 50 people). As an employee of a large organization, I've always been interested in how agile methods work at scale, including how they interact with the broader organization.

Large organizations tend to be very interested in managing risk, and the primary risk in engineering (at least during development) is that whatever we're doing will not work out the way we've planned. For this reason, a lot of energy is expended on figuring out if everything is going the way it was originally planned to go. Note that this isn't just a concern about costing too much or taking too long, although of course that's bad, but a concern that the plan is wrong. A status report that indicates that the planned work was done for half the cost or in half the time gets a great deal of attention, for two main reasons. First, it raises the possibility that the work was not done to the right standard, or that it does not do all the things it needs to do. Second, it raises the possibility that we don't really understand the work we're doing as well as we thought. This could mean that our estimates of the future work are also suspect.

Of course, in practice, we generally don't understand the work we're doing as well as we thought. As nice as it would be, we don't get to build the same thing more than once in engineering. But if it were possible, the program manager would prefer to have a well-understood, consistent approach to the work, where the line graph shows us steadily moving upward toward completion, tracking exactly to the line that shows our initial plan.

Agile methodologies come into this way of thinking and, at first, they appear to disrupt it. Teams start talking about self-organization and about embracing change, and program managers get concerned because they conclude that this means that teams aren't going to be doing things the same way week after week and that, in any case, the program is going to be changing what "completion" means all the time, so there's no way to track progress against "completion."

But program managers are smart, and they soon get over this initial concern. They notice that the agile teams keep performing these "sprints." At the beginning of each one, the team plans out the work they will do during the sprint, and at the end, they see how they did against the plan. This is catnip to a program manager. As long as we allocate a certain amount of the overall work to each sprint, and we keep meeting our sprint plans, they conclude we will be on plan for the whole program.

The mental process I'm attributing to program managers may be unconscious, but I'm convinced that something like it must be going on, because I've witnessed multiple agile programs where sprint goals were presented to the team ahead of time, and daily standup meetings turned into an "encouragement" session of why it's really important to meet the sprint goals so we can stay on track for the overall program. And, honestly, as long as the sprint goals are reasonable, this isn't the worst way to run the program. At least you get a regular pulse as to whether the team is on track. It's just that I can't see any way to call this an agile methodology just because it's agile terminology.

So where do we go from here? Well, one thing we might notice is that these sprints are artificial deadlines. There might be value to the customer of getting certain features sooner rather than later, but there's nothing that says we have to break things up into fixed-length iterations in order to do continuous incremental delivery of value. Maybe a methodology that doesn't have sprints would avoid this particular problem.

Of course, not every team has this particular problem. If you're on a team where sprint content is determined by the team, and the discipline of sprints helps the team to stay focused on necessary work and maintain high productivity, then there's no reason to change. But if you're on a team where sprints have become counter-productive and are a source of pain to the team rather than value, then the most agile thing to do might be to get rid of them.

In upcoming articles I'll talk to other reasons I find myself advocating for Kanban, and hopefully illuminate what I think are some of its key features.

agile Lean (proof assistant)

Opinions expressed by DZone contributors are their own.

Popular on DZone

  • Fargate vs. Lambda: The Battle of the Future
  • Introduction to Container Orchestration
  • What Are the Benefits of Java Module With Example
  • Monolithic First

Comments

Partner Resources

X

ABOUT US

  • About DZone
  • Send feedback
  • Careers
  • Sitemap

ADVERTISE

  • Advertise with DZone

CONTRIBUTE ON DZONE

  • Article Submission Guidelines
  • Become a Contributor
  • Visit the Writers' Zone

LEGAL

  • Terms of Service
  • Privacy Policy

CONTACT US

  • 600 Park Offices Drive
  • Suite 300
  • Durham, NC 27709
  • support@dzone.com
  • +1 (919) 678-0300

Let's be friends: