Monthly Archives: January 2012

Binary Opposites
Ferdinand de Saussure argued that something is, by what it is not. We cannot have ‘good’ without ‘evil’. Jacques Derrida believed that in Western culture one of these binary pairs holds dominance whilst the other is marginalised. White/black, man/woman, matter/spirit, Christian/pagan. It is a hierarchical relationship.

Manifesto of the Communist Party v Manifesto for Agile Software Development
Our idea of the manifesto is derived from Marx and the communist manifesto is the model for all successive manifestos. It has an excitable and urgent rhetoric that sees history in progressive but conflictual terms. It argues that the bourgeoisie is necessarily exploitative and that it is the proletariat’s destiny to overthrow capitalist social relations and bring forth a communist society. The manifesto became a polemical intervention that spawned numerous other manifestos. The futurist, surrealist, situationist and other avant-garde manifestos followed, bringing the manifesto into the artistic and as well as the political arena.

A manifesto is a “public declaration of intentions”, yet both the communist and agile manifestos were written when their movements were already established. Marx opens with, “A spectre is haunting Europe – the spectre of communism” and the agile manifesto emerged from a grouping of extreme programming, crystal, feature-driven development and other lightweight methodology practitioners.

The agile manifesto doesn’t take on the literary form of the manifesto standardised by Marx. A manifesto is usually written with complete self-belief and a series of demands. The agile manifesto is both sombre and calculating, which outlines preferences against alternatives. Consisting of only four tenets it is extremely terse. It suggests that writing successful software includes (1) skilled workers closely interacting, (2) writing software, (3) continual customer/developer dialogue and (4) the ability and willingness to adapt.

Ironically, the manifesto for agile software development is the single most important document in agile software development.

Modernism v Post-Modernism
According to Lyotard post-modernism marks the end of the ‘grand-narrative’. The grand-narrative is the big idea made complete: marxism, christianity, economic liberalisism
(our post-modern disrespect for these narratives leads us not to capitalise them). The grand-narrative (waterfall) is replaced by a plurality of small and local narratives (scrum, extreme programming (Xp), dynamic systems development method etc). The unified process (UP) was stuck between modernism and post-modernism in late-modernism. The UP can be implemented in either an agile or heavyweight manner (but usually in a heavyweight manner, as consumers were scared to miss anything out).

The waterfall model with its engineering metaphors and ideas of completeness and correctness has been seen as masculine whereas agile with its concern over people and relations has been viewed as feminine. This equates with the inherent division within modernist and post-modernist literature. According to John Carey, the high-modernist Wyndham Lewis, “persistently characterised the female in terms of repellently soft or fluid textures and consistencies.” Many modernists deemed women’s literature to be inferior: passive, emotional and subjective, whilst men’s literature was: objective, theoretical and serious. Women have always been excluded from engineering as they are seen as not being able to be both precise and abstract. Those with traditionalist attitudes towards software development still believe that agile developers have not got the discipline to become ‘proper software engineers’.

Agile v Post-Agile
Post-modernism is not the complete rejection of modernism and neither is post-agile the complete rejection of agile. We can accept some agile practices that have worked for us, reject others and also think of things new. Fred George under the programmer anarchy umbrella dismisses stand-ups, stories, retrospectives, estimates, iterations, unit/acceptance tests, refactoring etc, but keeps the Xp values of simplicity, communication, feedback, respect and courage. Like classic Xp, Forward Technology have only developer and customer roles: no project managers, no business analysts, no testers and no managers of programmers. They replace this with highly collaborative teams, small, short-lived applications and continuous deployment. They have statistics to prove they deploy every few minutes.

Dan North, the originator of behaviour-driven development now states “it’s ok not to do TDD”. He says on his blog: “I find I’m writing fewer TDD-style tests these days in favour of rapidly iterating and manually testing the components of my apps. I still write tests for places I’m likely to screw up …”. Even though TDD is primarily about design and not testing, lets go further. Dan states that risk is a two-dimensional axis of impact and likelihood and that in agile environments we aim to reduce the impact of something happening. Instead of a major bug found in the live environment, we reduce the impact by locating it in our continuous integration. But we could also minimise the impact by automating deployment, so if there is a problem, we can quickly deploy something else. Test automation is a proxy for reducing impact and not an end-in-itself. It becomes the value-judgement of the experienced developer on whether it is worth writing tests or not.

Jason Gorman differentiates between ‘Agile’ (capital ‘A’) and ‘agile’ (lower-case ‘a’) Agile (capital ‘A’) is the marketing term and now involves management consultancy, two-day Scrum Master courses, “Agile tools” etc. Agile (small ‘a’) is about the ability to quickly adapt to changing circumstances. Agile is not agile, but in fact its opposite.

The term ‘Agile’ was usurped and ruined by those removed from the mode of production. Scrum omitted Xp practices which in most cases led to a ‘hyper-productive mess’. Software craftsmanship was a way to address this unbalance but there is also a fork that has gone beyond ‘Agile’. Post-modernism lower-cases narratives, so there is only – ‘agile’. We are in a post condition and both post-modernism and post-agile is an eclectic mix or pastiche from which we can pick and choose. I believe post-agile to be a developer response to ‘Agile’ and its natural progression. It repels totalitarian dogma, replacing it with a society of choice, freedom, democracy, anarchy, responsibility and courage.