Skip to content

Commit 7f5e70e

Browse files
David HillierDavid Hillier
authored andcommitted
Agile blog post
1 parent 9ee4271 commit 7f5e70e

File tree

3 files changed

+95
-1
lines changed

3 files changed

+95
-1
lines changed

.DS_Store

-10 KB
Binary file not shown.

_posts/2016-01-19-admin-bosspa.markdown

Lines changed: 0 additions & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -3,7 +3,6 @@ layout: post
33
title: Single Page Apps for Admin Backends - Who needs them ?
44
author: Martin Schinz
55
categories: spa
6-
featured: true
76
---
87

98
## No app is TodoMVC
Lines changed: 95 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,95 @@
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

Comments
 (0)