When Agile isn't agile
https://siriuspeople.com.au/resources/technology/agile-terminology/

When Agile isn't agile

Agile software development is a group of software development methods in which solutions evolve through collaboration between self-organizing, cross-functional teams. It promotes adaptive planning, evolutionary development, early delivery, continuous improvement, and encourages rapid and flexible response to change.
agile (adjective)  : able to move quickly and easily  : quick, smart, and clever

A desire to be agile when developing software products is at the root of the Agile Manifesto. Other methodologies, such as Scrum and Extreme Programming, are based on the Manifesto’s teachings. Many enterprises migrate to Agile methodology and its ilk but fail to achieve agility. That’s because, in its naive implementation an Agile Sprint is no better than the Waterfall process.

When Sprint == Waterfall

Adopting an Agile process without a corresponding change in organizational structure and business processes will not achieve the desired results. Organizations must change to reflect the move to a faster and more integrated software development process. In a truly agile software development organization, product management, architecture, design, development, testing, and operation all become functions of the software engineer role.

Each engineer will have strengths and weaknesses spanning these functions, and corresponding responsibilities and seniority levels within the organization. Merging these distinct roles, which crosses most organizations’ traditional boundaries, is key to achieving fast and incremental iteration.

The business processes that need adoption alongside an Agile software development process are:

  • Adaptive Planning
  • Early Delivery
  • Evolutionary Development
  • Continuous Improvement

Adaptive Planning

The Cone of Uncertainty makes traditional planning methods flawed for the fast-paced technology sector. The longer out a plan tries to predict, the worse the ambiguity gets. Agile redefines the concept of a fixed-term plan. Adaptive planning starts by capturing backlog stories, considers organizational output -- also called velocity -- and then continuously adapts the plan to reality.

In adaptive planning, the key is to get all of the things you want to do written down, designed, prioritized, and labeled before resources and dependencies are identified. Planning becomes a bottoms-up discovery process that engages and leverages technical talent. Longer term planning becomes an opportunity to dream bigger. The resulting plans are not rigid formal contracts, but living and dynamic documents. Adapting the plan becomes a business process executed by project managers, and does not need to involve, and thus disengage, key technical talent who would rather be, and should be, coding.

Early Delivery and Evolutionary Development

Setting goals and being accountable are important in high-performance organizations. Each goal has a delivery date, and organizations push themselves to deliver earlier than what's comfortable. In Agile, this means shipping the product as soon as it is a Minimum Viable Product, then evolving the product iteratively and continuously based on feedback. The business process becomes one of informed evolution instead of prediction.

Market, product, and business research is still critical. Before a new product is developed, the research identifies which ideas to pursue, and what the minimum viable feature set is. After the product goes live, the research identifies which products should evolve and in what direction, and which products should discontinue.

Continuous Improvement

Continuous improvement is a goal for both the software product and the software development organization. Continuous delivery is a process designed to achieve both these goals. When implemented correctly, continuous delivery ensures early delivery and evolutionary development, in addition to providing all the necessary inputs for adaptive planning.

Continuous delivery demands that the first milestone of software product development is to fully automate the delivery process. This automation is done prior to any product functionality being implemented, and thus the entire product is developed evolutionarily in small increments. Feedback loops and key metrics tracking lead to continuous improvement.

The connection between continuous delivery and organizational improvement is perhaps more subtle. Continuous delivery exposes the velocity of the organization and the trend of this velocity. When changes are made in the organization, the effect on velocity is immediately exposed. With this information, managers are forced to drive toward organizational improvement in small increments, and experimentation is achieved through normal operating procedures.

Let it Go, Let it Go!

Traditional planning is key to top-down control in enterprises. Through the planning process and subsequent resource allocation process, executives decide what projects to fund. Resource allocation is a key part of executive function in these enterprises. So what replaces the traditional plan as input to the resource allocation process?

In an agile enterprise, the input to the resource allocation process is derived from the organization's backlog and current velocity. Resource allocation becomes a question about which organizations would benefit from increased velocity to tackle valuable product stories faster. The fundamental difference is that it's not projects that get funded, it’s organizations that get increased velocity. Control has been transferred from the executive to the organization, and ceding this control freaks out a lot of executives. It is a necessary and critical part of becoming agile.

Achieving agility

Adopting an Agile software development process (e.g. Scrum, XP) without the corresponding organizational, business process and management changes, will fail to achieve organizational agility. To become agile, an organization must empower its engineers; the people doing the day to day work. In order to move fast they must make the majority of decisions. In an agile software enterprise, management and business processes aim to empower and unleash the software engineers, not control them.

James Gourgoutis

Development Machinist at Astra

9 年

Great article! I'm curious to know what organizational changes do you think we need to make within LinkedIn, in order for us to become truly agile? I will also disagree that being Agile isn't just something in the realm of the software engineer -- the designer, the PM, QA, and researchers all need to be involved in owning the development process. Teams need to leverage Lean UX. Else, design is still something that happens in waterfall fashion, and writing the code to support the product design is relegated to a reactive role, vs. a proactive one. And then there are dozens of corner cases that are found too late.

回复
Supreet Oberoi

Enterprise SaaS Engineering Leader | CTO | Gen AI + Data-intensive Applications | S/VP Demandbase, Oracle, AmEx | Stanford (MS) + UT Austin (BS) in Computer Sciences

9 年

Love your posts, as always Jens Pillgram-Larsen This one will be heavily forwarded link inside my organization :)

回复
Shaila Gupta

Senior Manager, Lifecycle Marketing at Kickstarter

9 年
回复
Brenda Lee H.

Founder & Owner, ESPACIO BE, LLC

9 年

Very well said!

回复

要查看或添加评论,请登录

Jens Pillgram-Larsen的更多文章

  • Pull versus Push in the Software Enterprise

    Pull versus Push in the Software Enterprise

    One of the most misunderstood facets of Agile and Lean Software Development is "Pull versus Push". Many practitioners…

    6 条评论
  • The Companionship of Time and Energy

    The Companionship of Time and Energy

    In a previous post I claimed that time is the ultimate commodity. That is only part of the story.

  • Validating API Contracts

    Validating API Contracts

    In Software, as in life, relationships matter. Software components depend on each other in intricate relationships…

    1 条评论
  • Time: The Ultimate Commodity

    Time: The Ultimate Commodity

    The GTD (Getting Things Done) method rests on the idea of moving planned tasks and projects out of the mind by…

    7 条评论
  • Addition by Subtraction

    Addition by Subtraction

    “The entire idea of *via negativa* is that *omission* [avoidance of harm, removal of drugs, corn syrup, cigarettes…

    2 条评论
  • Everyone has the same job description

    Everyone has the same job description

    “Help your organization Win” is the only job description you need. The other one, the one senior management and HR came…

    2 条评论
  • Important and Not Urgent

    Important and Not Urgent

    "I have two kinds of problems, the urgent and the important. The urgent are not important, and the important are never…

    15 条评论
  • Vanquish the HR Bell Curve

    Vanquish the HR Bell Curve

    In mathematics, a Gaussian function, often simply referred to as a Gaussian, is a function of the form: for arbitrary…

    10 条评论
  • Software Engineering in the Continuous Age

    Software Engineering in the Continuous Age

    Software Engineering has entered a new age: The Continuous Age. QA certifications and release dates are being replaced…

    5 条评论
  • Be a Voracious Reader

    Be a Voracious Reader

    “The more that you read, the more things you will know. The more that you learn, the more places you'll go.

    14 条评论

社区洞察

其他会员也浏览了