|
| 1 | +--- |
| 2 | +layout: post |
| 3 | +title: Is Agile For You? |
| 4 | +author: Dave Hillier |
| 5 | +categories: [agile, waterfall] |
| 6 | +--- |
| 7 | + |
| 8 | +# Is Agile right for you? |
| 9 | +If you have engaged a development consultant in recent years, you have probably heard them wax lyrical about "Waterfall |
| 10 | +is dead, we're Agile" - but what does this actually mean for your product delivery? What is the business case for |
| 11 | +engaging with Agile? |
| 12 | + |
| 13 | +Neither Agile or Waterfall are actually software development methods. Waterfall is the collective name for more |
| 14 | +traditional project management methods that have sequential separate stages from planning, design, implementation, |
| 15 | +testing to maintenance. Agile methods are incremental and adaptive methods for delivering software. The values and |
| 16 | +principles can be found in the [Agile Manifesto](http://www.agilemanifesto.org/). |
| 17 | + |
| 18 | +Across the software industry there is no common definition of success of a project. Is it on time, on budget, to |
| 19 | +specification or fit for purpose? From each of these points, both traditional methods and Agile can be used to |
| 20 | +successfully deliver software products, however, research has found that Agile methods are a more effective way to |
| 21 | +deliver software. |
| 22 | + |
| 23 | +Agile methods have many benefits but are not a panacea for software delivery. There are no guarantees, however, we |
| 24 | +believe these methods allow us to deliver the best quality and offer value for money for our customers. |
| 25 | + |
| 26 | +Here at pebble {code} we use Agile methods in the development of all our projects. We have distilled the best/core |
| 27 | +practices from methodologies like Scrum and XP to created a lightweight Agile Framework that gives us the flexibility to |
| 28 | +apply them to the kind of projects we run with the minimum of ceremony. |
| 29 | + |
| 30 | +## Will the spec change over the life of the project? |
| 31 | + |
| 32 | +One of the pathologies of traditional project management is scope creep. In traditional methods everyone agrees to the |
| 33 | +contract up front and spec changes are managed through some change control process. Each change will cost you; it is |
| 34 | +going to mean creating a change request, budget approval and back and forth with a purchase order and so on. |
| 35 | + |
| 36 | +Traditional methods work hard to keep things on schedule by controlling scope. Unfortunately, this means, at the end of |
| 37 | +the project and a large investment, you risk getting a product not fit for purpose and losing your competitive |
| 38 | +advantage. |
| 39 | + |
| 40 | +##How certain are you about your assumptions? |
| 41 | + |
| 42 | +Assumptions add risk to your project because they can turn out to be false. In fixed cost pricing, you have plan up |
| 43 | +front and no doubt those costs are passed on to you. Worse is when a false assumption is simply missed and it derails |
| 44 | +your project. |
| 45 | + |
| 46 | +Traditional project management methods invest a huge amount of effort in documenting, tracking and managing assumptions |
| 47 | +and risks (if they do anything at all). |
| 48 | + |
| 49 | +## Are there any other uncertainties? |
| 50 | + |
| 51 | +> ...there are known knowns; there are things we know we know. We also know there are known unknowns; that is to say we |
| 52 | +> know there are some things we do not know. But there are also unknown unknowns – the ones we don't know we don't know. |
| 53 | +> - Donald Rumsfeld, 2002 |
| 54 | +
|
| 55 | +There are many unpredictable things that could cause delays to your project. Developers get sick, get poached by rivals |
| 56 | +or go AWOL. Technologies have security flaws discovered. Suppliers go bust. |
| 57 | + |
| 58 | +We can never identify all risks that might go wrong - there are almost infinite possibilities. You have to mitigate this |
| 59 | +risk by building in a significant contingency. These risks might never happen; forcing someone into a fixed price |
| 60 | +contract will inevitably lead to them adding this risk to the cost or failing to deliver on commitments when something |
| 61 | +goes wrong. |
| 62 | + |
| 63 | +## Mitigating Risks and Increasing Agility |
| 64 | + |
| 65 | +Agile methods embrace change; changes are easily incorporated into the process of prioritization and planning that |
| 66 | +takes place at the start of each sprint. It is a much more efficient use of your budget. Change is managed, not |
| 67 | +prevented; you become adaptable. |
| 68 | + |
| 69 | +Typically teams take work from a Product Backlog, which is ordered by priority. The Product Backlog contains things |
| 70 | +like User Stories and bugs. Product Backlog items are deliberately left as open as they can be. Detail is deferred |
| 71 | +which allows the specifics to be filled in as the product is developed and more information is gathered. |
| 72 | + |
| 73 | +Software development is a process of continuous discovery. Agile’s iterative approach allows assumptions to be tested |
| 74 | +each sprint, for example, by getting the software in front of real users or, perhaps, doing performance testing on a |
| 75 | +piece of technology for its feasibility. If you find your assumptions are incorrect, you adapt during your |
| 76 | +prioritisation session and waste little or nothing. |
| 77 | + |
| 78 | +Agile technical practices, like collective code ownership, work to reduce the risk that any one developers absence will |
| 79 | +cause delays or stop work. This practice helps the architecture of the software evolve by sensible practices rather |
| 80 | +than mirroring the social structure of the team. |
| 81 | + |
| 82 | +Commitment to decisions are deferred as long as possible. This is sometimes called the Last Responsible Moment. Making |
| 83 | +decisions at the Last Responsible Moment is a risk avoidance strategy; decisions made too early in a project are hugely |
| 84 | +risky. The earlier you make a decision, the less information you have. In the absence of information, work might have |
| 85 | +to be re-done or thrown away. Another way to think of the last responsible moment is before your options expire. |
| 86 | + |
| 87 | +When building software products, it is near impossible to get everything right first time. Agile methods allow you to |
| 88 | +evolve quickly, respond, and adapt. Through frequent testing and stakeholder (customer) engagement we can be sure we |
| 89 | +get it right as quickly as possible. |
| 90 | + |
| 91 | +Agile methods can respond quickly and effectively to the complexity and uncertainty that characterize today’s business |
| 92 | +needs. |
| 93 | + |
| 94 | + |
| 95 | + |
0 commit comments