Tag Archives: trends

Are you being Agile and should you care?

Agile Software Development is not a new thing. As an exact “thing” it has been around since 2001, making it more a surly teenager than a brilliant new idea. Just like some teenagers, it has not always turned out quite as well as the ideals its creators had for it when it was just a babe…

The agile manifesto was set out by some pretty cluey people – people who were quite competent at thinking for themselves. Unfortunately, some people look at the manifesto and think that it means “rules” rather than “policies and aims”. Sometimes people want to have rules to follow and the manifesto simply does not provide enough rigidity for their needs.

The most obvious example I can think of is when I have heard people misquote: “Working software over comprehensive documentation” as a reason not to write any documentation! (When misquoted, the word “comprehensive” goes missing) The fact that the manifesto is quoted as though it is law should be the first warning sign that you’re doing it wrong! The Agile Manifesto is not a development methodology and shouldn’t be treated as though it were one. As the scrum methodology website states:
“The Agile Manifesto doesn’t provide concrete steps.”

At the bottom of the Agile principles there is this gem:

At regular intervals, the team reflects on how to become more effective, then tunes and adjusts its behavior accordingly

I like to think of it as: “Remember the aims of the manifesto and do what works for your team”. If you claim to work in an Agile Software Development team – but you have worked the same way for as long as you can remember, then it might be time to shake things up a little.

At the heart of the problem is that not everyone is passionate about their job. Sometimes, even the passionate ones can be at a point where external events mean that they are not focusing this passion on their work. That’s okay! It happens! But when it does, expecting these people to work in an agile manner is not being realistic.

The Agile Manifesto and the Principles behind it are worthy goals to strive for in software development. Lean, hungry successful startups seem to naturally gravitate towards most of the principles outlined. For them, I imagine, spelling it out is just common sense. (Although the principles also talk about working at a sustainable pace. – That doesn’t seem to align with the stories you hear about successful startups!)

If you are working in a Software development company that claims to abide by the Agile Software Development Manifesto, it is worth going over these principles and the manifesto itself periodically. Make sure you are on the band-wagon, not just claiming to be! If you read them and decide that they do not suit your team at all, maybe it is time you claim to be something else!

The problem with the Internet (Part 2)

As I have mentioned earlier, one thing the Internet does well is allow people to collaborate.  With the now common-place Web 2.0 sites, there is no end to the social interactions available on-line. 

The problem here, is not all things work well “on-line”.  Asynchronous or not, the reliance of AJAX applications to communicate with a Web server can be a right pain.  This is probably a more pronounced issue in Australia.  We are a long way from the US and an even further distance to the UK and Europe.  There is around a 200-300 msec hit taken for data to cross the Pacific.  Unless there is some major break throughs in quantum physics, this delay is simply unavoidable.  Put simply, even things moving at the speed of light, take a notable time to traverse this distance.  Three hundred milliseconds may not sound like a lot.  Rest assured, you notice it.  Visiting US developers certainly can’t believe the slight delay that happens on every web request (presuming the web server is not located in Australia of course) and conversely most Australians abroad can’t believe just how much more responsive the Internet is in the US or the UK. 

This delay is hardly anyone’s fault, of course.  But, unless you experience this delay yourself, you are not likely to ever take it into consideration in building your application.  Here in-lies “the rub”.  Web applications are not speedy.  Oh yes, in AJAX land where sunshine and rainbows occur in green fields of joy things are much better than they once were – forms are much more “dynamic” etc, but the performance is still woeful compared to the previous generation of desktop applications.

This gives rise to the second issue.  No-one wants to develop desktop applications anymore.  The computer industry is at least as guilty as the fashion industry for being swept along with the “latest craze”. If you aren’t developing web-based applications (regardless of whether they are practical, or in any way benefit from their onlineness*) you aren’t in demand as a programmer. 

Do customers care about the technology used in the applications that they use?  Of course not – as long as the application does what they need it to do.  This lack of caring should allow the industry to stick with tried and trusted technology, rather than invent new technologies.  However, the inverse ends up being true.  That is, because the customers don’t care what technology is used, they don’t end up demanding that the industry use tools that work best for whatever the problem is at hand.   

Sometimes the Internet is the right tool for the job.  Unfortunately, the trend has been to bash it into the only tool for all software jobs.  And that leaves those that use the tools with a less optimal solution than they may have otherwise had.

* I made this term up to suit my needs… but the Internet assures me I wasn’t the first to do so!