Agile Insider reality bytes…

30Jun/090

Could Agile Have Evolved?

DNA

DNA

I've been researching material to support an article on my company blog entitled "Agile Dictators" and it left me thinking about how Agile started in the first place.

The more I reflect on this, the more I am left feeling that Agile is actually a mutation in software development and this is one of the major reasons why Agile is so difficult to master. I'm wondering whether agile would ever naturally evolve in a small team left to their own devices and I simply can't envisage it. Of course, this will now remain an academic hypothesis since Agile has now stamped it's influence indelibly on the DNA of software development.

Software development as a craft suffers from unnecessary complexity and I fear that Agile, which initially thrived in simplifying (or removing) this complexity, is now becoming itself encompassed in unnecessary complexity.  Despite agreeing with much of the sentiment of the software craftmanship manifesto I just can't bring myself to sign up to it yet.  I struggle to see the benefit of more fuzzy aspirational statements and would prefer to see a clarity of vision and roadmap to achieving it.

Fundamentally Agile is fantastic, but sadly the passionate discussions, raging debates and conflicting methodologies don't clarify anything. If Agile doesn't clearly define itself soon I fear yet another mutation may take centre stage and Agile will end up being just a blip (albeit a very significant blip, where we gained sight) in the evolution of software development.

 Digg  Technorati  Deli.cio.us  Slashdot 
29May/091

Slack Is Important

I'm a very strong advocate for slack. I believe introducing slack as a policy improves the overall quality produced during productive hours compared with the traditional approach of applying constant pressure. Just like pair programming, it is actually very difficult to get managers to understand the real benefits of having 'slack'.

For me, slack is just another way to improve the transparency of an agile project and is also the ideal vehicle for introducing diversity, continuous learning and continuous improvement. Given slack, developers will naturally use this to either improve their own networks, improve their understanding on a topic they found difficult or explore new technologies. Any of these will ultimately add significant value to your project.

 Digg  Technorati  Deli.cio.us  Slashdot 
28May/090

Too Many Broths Spoil The Cook

Too Many BrothsI' ve got several things bubbling over at the moment and because I never bothered capturing them as stories and placing them in a backlog I'm really struggling to make headway with any of them.  Some are personal experimentation, others are professional and finally there's a few projects which may end up as open source.

So what's stopping me making this backlog?  It's the lack of a single coherent customer to do the prioritisation of course.  I could certainly pull out all the things I want to do into a set of stories, but would it be right for me to also play the customer role?  I certainly don't want to ask my work to do the prioritisation, since I know which side of the fence they'll lean on...

I think my personal challenge is quite similar to many projects I have witnessed where there has not been a single customer.  It becomes extremely difficult to prioritise stories and deliver a single useful end to end feature and instead we deliver lots of little bits and pieces.  Of course, switching contexts in itself is extremely expensive in terms of productivity, but unless there is a single customer, with clear goals and a solid backlog of well expressed stories then switching contexts is inevitable.

What do I plan to do?  Well first and foremost I'm going to take the baby-step of at least creating my backlog of stories...  By definition, these are my stories, so in reality I am the customer, I guess I'm just like all other customers, I'm not a very good one and I like to keep changing my mind - oh well...

 Digg  Technorati  Deli.cio.us  Slashdot 
28May/090

Qualities of a Good Developer?

Just what exactly is it that distinguishes a good developer from an average developer?  Certification in a particular language or technology demonstrates the ability to be "average", but certainly doesn't demonstrate good.  I believe a good developer is someone who has an aptitude for developing, which is inherently extremely difficult to measure or quantify.  However, there are possibly a few things that can help you identify your good developers:

  • They are capable of using several languages to get things done
  • They are pragmatic in their approach
  • They understand the concepts as well as the solutions
  • They can think at multiple levels of abstraction
  • They can get things moving despite uncertainty
  • They champion quality and continuous improvement
  • They like to share their knowledge and expertise

Of course, these are very subjective measures and very hard to qualify or quantify.  It can be very hard to demonstrate an ability to use several languages if the working environment dictates a single language.  Red tape may prevent pragmatism.  If the environment prevents these qualities being expressed then it is very likely the most important qualities of the best developers are being suppressed.

If you wish to get the best from your best developers, and achieve that 10 times productivity that is often quoted, you should look to make sure that you have provided them with an environment that allows them to demonstrate (through action) the above characteristics.  If there is anyone you can think of right now with some or most of these characteristics, why not take the opportunity to ask them how you can help to allow them to improve.

 Digg  Technorati  Deli.cio.us  Slashdot 
21May/090

Simple isn’t Easy

After 2 days coaching on test first development within a legacy code-base (lots and lots of refactoring) it really hit home just how difficult it can be to do something simple. The English language doesn't help, because simple implies it should be easy, but in reality simplicity is extremely challenging.  I suspect this holds true in many fields (physics springs to mind, how long did it take for e=mc²).

I'm left wondering whether it is something inherent in human nature that leads us to strive complexity or whether it is actually the way we are educated.  Certainly, with regards to software engineering the majority of the agile techniques and practises appear to contradict what is being taught in universities.  The comment I hear most often when coaching Test First Development is that the difficulty is in thinking backwards, suggesting that the practise itself isn't difficult per se, but it's the way we think that needs rewired.

Of course, not knowing what the problem is makes it difficult to formulate a solution - now there''s a real challenge for agile ;)

 Digg  Technorati  Deli.cio.us  Slashdot 
   

Twitter

Follow @agileinsider (41 followers)

My Links

Follow @agileinsider on Twitter
I'm on Linked In
I work for emergn.

Personal Blogs Blog Directory

Recent Posts

Archives

Blogroll

Tags

Rate This

Meta