The Agile landscape – should we care?

Yes, “agile” is an umbrella term, the word was chosen by the signatories of the agile manifesto. Who-ever would be referring to the agile method, doesn’t understand what agile refers to.

The existence of many agile methods, frameworks and approaches (no, Scrum is not the only agile method) for single teams and multiple teams illustrates the continuous journey of exploring and uncovering new and better ways of developing products. And that’s a good thing, isn’t it? It would be worrying if the whole world would agree for a single method or way of working.

Illustrations as the one below show the diversity of methods in the whole “agile” landscape.

agile-landscape

Some thoughts…

Continue reading →

thinking

Personal reflections: the world of software development

10 years ago I’ve entered the IT world with the exciting expectations to create truly amazing software. Nowadays, the possibilities are endless, the technology advances fast, there are plenty of opportunities for innovation. It’ an exciting world!

Unfortunately, from time to time, the process to create software (for internal or external use), is clogged down by overly-prescriptive processes, coordination chaos, organizational barriers, technical mediocrity or simply the unwillingness (failure) to understand that software development is a complex adaptive system. In summary, an approach of an old industrial paradigm applied to software creation.

Humans are complex creatures, and as humans we want to create complex products. Unless you’re a solitary developer working end to end alone to create a piece of software – for your own use; you will need to talk (at some point in time) with a colleague developer and / or the user of that software.

Humans like to create complicated things to manage complicated things to end up in a lot of complications. Anyway, the world always will be divided by different streams of thinking; including the software world, moreover as it offers countless possibilities to create solutions.

In today’s fast paced world, software needs to be spot-on, well-engineered, valuable and simply said: great!

A piece of software has its use: it solves a problem, it answers to a need, it offers some entertainment, or it was a learning journey. In the real word (business or non-profit), we need to seize opportunities, respond to challenges, and control risk – and all this in a timely manner. The software developed needs to support this, it offers a solution, and it gives us a competitive advantage. Needless to say, in today’s fast paced world, software needs to be spot-on, well-engineered, valuable and simply said: great!

In the software industry (and nowadays also outside it), there exists a way of thinking and acting that embraces the above; it grass rooted long time ago and has gained adoption as time passes.

To me it makes no sense to act otherwise, to create complex (software) products in different way. One need to realize this way of working is more than a process; it’s more than yet another development framework. It addresses basic principles of values, it embraces humans for their nature; it embraces creativity. I am in no way brain-washed or sponsored (I hope); I do know that other ways of creating complex (software) products has failed too often. I like simplicity, I like productivity. I think there’s a way to have it in the world of software.

Source featured image: http://callagylaw.com/wp-content/uploads/2015/03/Broken-Thinking-Callagy-Law.png

Principes achter het Agile Manifest

Na een aantal jaren in IT consultancy en participatie in kleine en grote projecten; ben ik toch wel heilig overtuigd van de noodzaak van de Agile principes.

Dit zijn de grondbeginselen horende bij het Agile Manifest:

1. Onze hoogste prioriteit is het tevredenstellen van de klant
door het vroegtijdig en voortdurend opleveren van waardevolle software.

2. Verwelkom veranderende behoeftes,
zelfs laat in het ontwikkelproces.
Agile processen benutten verandering
tot concurrentievoordeel van de klant.

3. Lever regelmatig werkende software op.
Liefst iedere paar weken, hooguit iedere paar maanden.

4. Mensen uit de business en ontwikkelaars moeten dagelijks samenwerken
gedurende het gehele project.

5. Bouw projecten rond gemotiveerde individuen.
Geef hen de omgeving en ondersteuning die ze nodig hebben
en vertrouw erop dat ze de klus klaren.

6. De meest efficiënte en effectieve manier om informatie te delen
in en met een ontwikkelteam is door met elkaar te praten.

7. Werkende software is de belangrijkste maat voor voortgang.

8. Agile processen bevorderen constante ontwikkeling.
De opdrachtgevers, ontwikkelaars en gebruikers
moeten een constant tempo eeuwig kunnen volhouden.

9. Voortdurende aandacht voor een hoge technische kwaliteit
en voor een goed ontwerp versterken agility.

10. Eenvoud, de kunst van het maximaliseren
van het werk dat niet gedaan wordt, is essentieel.

11. De beste architecturen, eisen en ontwerpen
komen voort uit zelfsturende teams.

12. Op vaste tijden, onderzoekt het team
hoe het effectiever kan worden
en past vervolgens zijn gedrag daarop aan.