As someone who professes to value agility in software development and all that goes with it, I occasionally catch myself in that dreadful, “do as I say, not as I do…” scenario with the teams I work with. Actually it happens with alarming regularity. I’ll just admit it: I’m a weak man. Of course I suspect that there are others who are the same way too.
Of course we should all walk the walk if we are going to talk the talk. If we are going to foist off these principles on poor unsuspecting teams, then I suppose we should make at least a token effort to be an exemplar. As an example, I’ve always been a firm believer in the value to keeping a sustainable pace and the importance of doing that for our teams. However, I came to the rather startling realization that I do a remarkably poor job of keeping a sustainable pace in my personal life (Full disclosure: it’s an unmitigated disaster of competing commitments and overlapping priorities). It has led me to question why any team would listen to me preach about sustainable pace, when I appear to be utterly incapable of demonstrating that value in my own life. Frankly, when it comes to keeping a sustainable pace, I’m the last guy you should listen to.
So with that in mind I’ve decided that it’s high time that I make a sincere effort to internalize the principles of the Agile Manifesto by trying to live them myself. I have to admit to more than a little trepidation at the very thought of trying to live according such noble goals. I really don’t do noble well. With me, noble fits like a Hawaiian shirt in church.
The Agile Manifesto contains a list of 12 principles that agile teams hold dear. You’ve probably seen them before, but just in case you haven’t, here they are in all of their agile glory:
Our highest priority is to satisfy the customer through early and continuous delivery of valuable software.
Welcome changing requirements, even late in development. Agile processes harness change for the customer’s competitive advantage.
Deliver working software frequently, from a couple of weeks to a couple of months, with a preference to the shorter timescale.
Business people and developers must work together daily throughout the project.
Build projects around motivated individuals. Give them the environment and support they need, and trust them to get the job done.
The most efficient and effective method of conveying information to and within a development team is face-to-face conversation.
Working software is the primary measure of progress.
Agile processes promote sustainable development. The sponsors, developers, and users should be able to maintain a constant pace indefinitely.
Continuous attention to technical excellence and good design enhances agility.
Simplicity–the art of maximizing the amount of work not done–is essential.
The best architectures, requirements, and designs emerge from self-organizing teams.
At regular intervals, the team reflects on how to become more effective, then tunes and adjusts its behavior accordingly.
Now I don’t think any reasonable person would try to jump into all twelve principles at once. That and I’m really just astonishingly lazy. So I’ve decided that I should take a more iterative approach: 1 principle per week. Yup, that’s right, each week I’m going to do everything I can to live one principle on the list of the famous twelve.
But Tom, you say, those principles were created for software development teams! One man can’t possibly exemplify those principles in any meaningful way! Pish tosh! Yes I can! Oh I admit that I’m going to have to take a bit of creative license with some of them, but I’m a creative guy, so I should be able to come up with something interesting.
Actually, if I’m honest, I’m much more worried about trying to live consistently according to any sort of principles. Not that my life is entirely principle free (well, actually…) but keeping focused on anything for an entire week just sounds exhausting! Oh well, I’m just going to have to put on my big boy pants and prepare myself for 12 weeks of living the principled life!
First up, principle #1: “Our highest priority is to satisfy the customer through early and continuous delivery of valuable software.” Oof! Maybe I should start from the bottom of the list…