Topic 2: Agile Principles

Description

Agile operates on a small set of fundamental principles that are the guiding focus of its philosophy. These are neither rules nor restrictions; they are neither mandates nor requirements. Instead these are a set of priorities that suggest we favour certain directions over others.

This topic explores those principles that are at the core of Agile thinking and which underpin most successful Agile methods. We look at their simplest meaning, but also at their broader implications and interpretations. This topic also dispels some of the myths and misconceptions that have arisen from these principles.

Examine the core principles from the Agile manifesto, the reasons for their importance, and ways in which they can be embraced and adopted. Three fundamental principles that define differences between Agile thinking and traditional projects will be focused on in detail.

Consider the following questions as a guide to understanding this topic. Ask yourself how well you understand these principles and how satisfied you are that you can explain them.

* Why is the customer so crucial in our definition of value?
* How can an agile approach build confidence in the customer that their investment is not wasted?
* Why are people so important in successful Agile projects?
* What is the difference between alignment and collaboration?
* How can we ensure that adapting does not become reacting?

As we explore the principles of Agile take these considerations into account when forming your own opinions.

* There are cumulative effects from the positive reinforcement cycle that Agile methods can bring to the project team.
* What do we really mean by self-organising?
* Consider the parallels between Value in Agile and Quality in Waterfall.
* Consider the meaning of the term “change is our opportunity, not our threat”.
* There are things that we must still conform to.

Lecture 2A Value over Constraints

A focus on cost is focusing on the investment, whereas a focus on value is focus on the return. Value is the "true result". A constraint is an investment limitation (e.g., financial, time, skill etc). Which is more important? Input or output? A psychological claim: If output and value is more important, the greater the productivity of the team members - not that work packages can be delivered out of sequence as a result.

Expected value, what the client think its will do. Intended value is what the builders intend to deliver. Perceived value, does the customer see the value after delivery. Each step has a gap and an alignment. The Agile methodology allows for feedback from the customer back to the builder to allow for opportunities to increase value. The only judge of value is the customer.

Deliver now, adapt it later. The best way to fine-tune something is to have something to begin with. In Agile the execution is the planning; the execution is the control.

Lecture 2B Teams over Tasks

We manage tasks, we lead people. Teams over tasks means leadership over management. Management is the allocation of resources, a mechanical and logic-driven process. Leaders facilitate the relationship between tasks and who can do them; to act and perform in such a way that encourages others to follow. Examples of conduct, ethics, effort. Leadership is more about influence rather than compliance.

Management is a 'push' concept most useful with complexity. Leadership deals with change that motivates people to engage in tasks. When a project is empirical and uncertain, the contribution of issues to complexity is unknown which needs to be teased. The complexity arrives piecemeal, which means change. The people who encounter this change need leadership.

A team is a collection of people who are unified in purpose and leveraged in effort. Self-organised teams take responsibility for their own effort; responsibility is not given, it is taken up. The leader gives the team reasons to be motivated, responsible, and aligned. It can't create these things but it can give reasons for them. Well-led, but less managed. Agile teams need to want to be self-disciplined, contributing and collaborating.

Lecture 2C Adapting over Conforming

How to embrace change rather than avoiding it. We can't really favour value if we conform to a plan that no longer delivers value. Traditional project management tries to keep change on a short leash and tries to keep change on accordance to the charter. With empirical projects the charter evolves over time in order to maximise value in the outcome.

To adapt means to make suitable for a purpose. Change with purpose is adaption; change without purpose is chaotic. Only when value is the goal and the ultimate result can we say that a project is being Agile. Complex Adaptive Systems: Natural empowerment of individual components, a simple set of guiding rules, and a common context in which the empowered individuals express themselves in a particular context. They adapt in a self-organising manner.

The old method of employment, with limited knowledge and access to information, required different project management. Bureaucracy is giving away to self-organisation and empowerment as a result. Bureaucratic systems cope badly with empirical problems, they are slow and inaccurate - Agile is meant to represent the opposite. An adaptive, self-organised system can generate emergent results - not bureaucratic systems. Exploration is the unavoidable reality, and adapt when we discover.

Slides and Lecture

Value Proposition

* Value is the ultimate goal
* Value is subjective, volatile & fragile

Price is what you pay, value is what you get (Warren Buffett)

Planning need not be a disconnected process
* Planning is preliminary decision making
* Derived versus Original planning
* Execution is planning is execution

Only excellence delivers value
* Customer feedback on value, not quality
* Administrative or technical excellence

People drive value in Agile

Lean Thinking
* Lean is about the removal of waste
* Waste is whatever does not deliver value
* "But we need that complexity!" No, we need the value that it brings

Agile is lean because it favours teams over tasks

* Compromise polarises
* Reconceiving creates something new
* Alignment creates context

In Agile the team IS the project

* If the value evolves, so must the work
* Change is the purpose, the value, not the enemy or the problem

Readings : Chapter 2: Value over Constraints

"Outcome indicators include product vision, business objectives, and capabilities (high-level functionality), not detail requirements. These outcome characteristics define a a releasable product and quality objectives a reliable and adaptable (works today, easy to enhance) product... Project leaders need to focus on value in several ways: value determination (with product owners), value prioritization (backlog management), and value creation (iterative development)" (p27-28).

"The formula for success is simple: deliver today, adapt tomorrow" (p29)

"... the customer is the individual or group that uses the created products" (p30)

"Optimization implies that we already know how to do something but that we now need to improve it. Innovation implies that we don't know how to something, and searching for knowledge is paramount. No project, no product development effort is all one way or another..." (p31)

"... the common project management model is composed of three processes that exchange information - planning, controlling, and executing.... APM is an execution biased model, not a planning-and-control-biased model. In APM, the project leader's primary role is to facilitate creation of a product vision and guide the team toward making that vision a reality." (p32-33)

"One of the fundamental tenets of lean manufacturing is the systematic elimination of waste; that is, any activity that doesn't deliver value to the customer. One way to streamline projects (doing fewer things, doing the right things, eliminating bottlenecks) involves differentiting between delivery activities and compliance activities and applying appropriate strategies to each" (p33)

"The iterative piece of agile can be defined by four key terms: iterative, feature-based, timeboxed, and incremental." (p35)

Note that timeboxes aren't actually about time; "... timeboxes are actually about forcing tough decisions... All too often, sequentially developed products reach the final stages only discover major problems... By forcing difficult decisions early and often, timeboxed feature delivery give the team more options for solving problems. Iterations allow you to manage risk sooner". (p37)

"Many software problems suffer from technical debt, the accumulation of problems caused by poor quality practises....critics consider agile methods to be ad hoc, undisciplined, and ultimately technically inferior.,, Discipline is doing what you said you will do.. Agile organizations tend to have less elaborate formal structure, but they tend to follow the ones the have... Critics.. are really objecting to ... the lack of extensive front-up design. Agile developers believe that iterative, emergent design and frequent feedback yield superior design... it's not a question of design versus ad hoc development, but a disagreement over approach". (p38)

"Compliance activities, at their best, attempt to mitigate the risk of mistakes, fraud, poor performance, and financial overruns... Failure to differentiate between delivery and compliance results in ever-increasing compliance work ... while delivering products falls to secondary priority" (p43)

Reading : Chapter 3: Teams over Tasks

"Agile leaders lead teams, non-agile ones manage tasks... APM focuses on team management, from building self-organizing teams to developing a servant leadership style... In an agile project the team takes care of the tasks and the project leader takes care of the team." (p47)

Deals with leadership, building self-organising teams, collaboration (including decision-making), and customer collaboration.

"Most projects are overmanaged and underled... management deals with complexity, leadership deals with change." (p47)

"Leaderless teams are rudderless teams. Leaders who want to create adaptive, self-organizing teams steer rather than control.... A leader's real authority isn't delegated top-down but earned bottom-up." (p48)

"The agile movement supports individuals and teams through dedication to the concepts of self-organization, self-discipline, egalitarianism, respect for individuals and competency... Self-organizing teams are the core of APM. They blend freedom and responsibility, flexibility and structure... In a slef-organized team, individuals take accountability for managing their own workload, shift work among themselves based on need and best fit, and take responsibility for team effectiveness... Self-organizing teams are not, as some perceive, leaderless teams... There is a big difference between the terms 'self-organizing' and 'self-directing'." (p49)

"Creating a self-organizing team entails
* Getting the right people
* Articulating the product vision, boundaries and team roles ..
* Encouraging collaboration ..
* Insisting on accountability
* Fostering self-discipline
* Steering rather than control" (p52)

"Self-disciplined individuals
* Accept accountability for results
* Confront reality through rigorous thinking
* Engage in intense interaction and debate
* Working willingly within a self-organizing framework
* Respect colleagues" (p54)

"The capability of self-organizing teams lies in collaboration - the interaction and cooperation of two or more people to jointly produce a result... Processes provide guidance and support, and tools improve efficiency, but without the right people who have the right technical and behavioral skills, all the processes and tools in the world won't produce results" (p55)

Reconceiving should replace compromise. "Reconceiving means combining the ideas to create something better than any individual could create on her own... Innovation and creativity are emergent, not causal, properties of teamwork" (p57)

"A partial list of customer team responsibilities...

* Create and manage the feature/story backlog
* Set priorities in release and iteration planning
* Identify and define features/stories
* Define acceptance criteria
* Review and accept completed features and stories
* Interact on a continuous basis with the development team
* Accept accountability for results and adapting constraints" (p59)

Reading : Chapter 4: Adapting over Conforming

"A traditional project manager focuses on following the plan with minimal changes, whereas an agile leader focuses on adapting successfully to inevitable changes. Traditional project managers view the plan as the goal, whereas agile leaders view customer value as the goal... managers focus on following the plan with minimal changes... When customer value and quality are the goals, then a plan becomes a means to achieve those goals, not the goal itself." (p63)

"Teams should constantly evaluate progress whether adapting or anticipating, by asking these four questions:
* Is value, in the form of releasable product, being delivered?
* Is the quality goal of building a reliable, adaptable product being met?
* Is the project progressing satisfactorily within acceptable constraints?
* Is the team adapting effectively to changes imposed by management, customers, or technology?" (p65)

"Adaption can be considered a mindful response to change" (p65)

"An adaptive development process has a different character from an optimizing one. Optimizing reflects a basic prescriptive Plan-Design-Build lifecycle. Adapting reflects an organic, evolutionary, Envision-Explore-Adapt lifecycle. An adaptive approach begins not with a single solution, but with multiple potential solutions (experiments). It explores and selects the best by applying a series of fitness tests (actual product features or simulations subjected to acceptance tests) and then adapting to feedback." (p67)

"When you create change you are on the competitive offensive. When you reason to competitors' changes you are on the defensive. When you can respond to change at any point of the development lifecycle, even late, you have a distinct advantage" (p68).

"Inspirational goals need to be energizing, compelling, clear, and feasible, but just barely. Inspirational goals tap into a team's passion... Leaders help articulate the goals; teams internalize them and motivate themselves" (p69)

"The barrier to agility in many software organizations is their failure to deal with the technical debt in legacy code... failure to address this significant barrier keeps many organizations from realizing their agile potential." (p71)

"Repeatable means doing the same thing in the same way to produce the same results. Reliable means meeting targets regardless of the impediments thrown in your way - it means constantly changing to meet a goal... Repeatable processes reduce variability through measurement and constant process correction. Reliable processes focus on outputs, not inputs." (p73)

"With production-style projects, those amenable to repeatable processes, scope is considered to be defined requirements. Bit in product development, requirements evolve and change over the life of the project, so 'scope' can never be precisely defined in the beginning." (p74)

"Effective teams cover four key subject areas in their retrospectives: product from both the customer's perspective nd a technical quality perspective; process, s in how well the processes and practices being used by the team are working, and project, as in how the project is progressing according to plan." (p75)

"Although principles guide agile teams, specific practises are necessary to actually accomplish work. A process structure and specific practises form a minimal, flexible framework for self-organizing teams. In an agile project there must be both anticipatory and adaptive processes and practises." (p75)

Readings are from Agile Project Management 2nd edition (Jim Highsmith, Addison-Wesley, 2010)