Thursday, January 21, 2010

New to Agile? Want to know which tool to use?

There is a re-occuring question I am asked from time to time, and I see on discussion forums. It again appeared last week:

“We are new to Agile and are looking to adopt a tool for managing the process... which tool would you recommend?”

There are variations on this question (replace Agile with Scrum/XP/Kanban/whatever, or replace “managing the process” with requirements/development/testing) or maybe its put as “Does TFS work with Scrum?” or “Is Target Process the right tool for XP?” but its the same basic question.

Anyway, I try not to take the bait on these but last week I couldn’t resist and answered it. My answer solicited a positive response from several people so I thought I’d share my answer with more of you and expand on it a little:

For anyone new to Agile (all flavours, Scrum, XP, etc.) I strongly advise avoiding all software tools for managing the process until you get the hang of working in the new manner manually. You will have a faster and more fulfilling learning experience if you do it by hand - pens, cards and white board - for a few weeks before you look at a tool.

There are several dangers with tools:
  • You may mistake the tool for the process: e.g. using Rally doesn’t make you Agile
  • The tool might not work quite the way you need to work: in your company the tool might not do something you need to do
  • The tool might be too strict: when your learning you need a bit of slack
  • People may communicate through the tool rather than face-to-face
  • You may spend time customizing the tool when you should be focusing on the actual work
  • And, when you find things don't work quite the way you want them to it is much easier to change a card or a board than change the software.
Something magical happens when people work with cards. Abstract “work” becomes real. We relate to it in different ways when it has a physical presence and you can move it about. You don’t get that with a tool.

Once you have a tool the tool easily becomes an impediment to further change:
  • To change you need to change the tool
  • You need time to reconfigure the tool (if you can)
  • You need time to move your data to another tool (if you can)
  • You need to justify the change of tool to those who paid for it: “We paid $10,000 for these licenses 6 months ago, what do you mean you aren’t using it any more?”
  • You need to justify spending money on another tool: “And you want me to spend another $5,000 on another tool? Will you use it this time?”
  • And you have invested yourself in the tool, you don’t want to admit you got it “wrong”.
Nobody ever got fired for spending too much on index cards, or for throwing a pack away.

Yes I know there are genuine reasons people want to use a tool to help with their work. But choosing the tool before you change is putting the cart before the horse. In my opinion people and teams which spend time evaluating and deciding on their tool are resisting change.

Damn the torpedos just do it!

Do it by hand to start with, give it about 3 months like then then look at some free tools, don't waste time on customizing anything. Give it another 3 months then you should have the experience to find the best tool for your team.

Don’t be scared to change tools - and don’t invest so much in one tool that you can’t change in a few months when you realise its not right.

I’m not saying “Don’t use tools”. To be honest my preference is not to use them, stick to paper, pens and boards. However, I recognise that on some occasions they can help (remote working springs to mind.) But, before you start using one be clear what you need to get from it.

The thing is: Agile is about learning, and you have a much better learning experience when you are manually managing the tasks. If you need a tool to manage them you probably have an over complicated process. When you insert a tool between you and the process you loose sight of what is happening. The tool is a box labelled “magic happens here” and complexity can set in.

There is a story. Its about Jack Kilby - not heard of him? You should have done, he was co-inventor of the Silicon chip. A few years after inventing the chip he helped Texas Instruments develop the calculator. But he regretted the passing of the slide rule.

He said: the slide rule gave engineers the numbers but they needed their intuition to know were the decimal point went. Was the answer 123,456,78 or 123.45678? The calculator took that away and he thought that made for poorer engineering.

Using an tool to manage your Agile process is like that. It removes part of your intuition, part of your understanding.

Thursday, January 14, 2010

'Wired for Innovation' and the Trouble with business value

I stopped reviewing books in this blog a while ago but, having said a few words about Domain Driven Design Using Naked Objects last time I want to say a few words about another book I’ve just finished reading: Wired for Innovation: How Information Technology Is Reshaping the Economy.

For anyone who is concerned with the future of IT, technology in general, and improving the state of the art this book is well worth reading. At a little over 100 pages and £10 it is worth the investment.

The book is written by two academics, and it is a bit academic in tone and approach but there are some gems in here. Not only have the authors studied how IT is used they have made serious attempt to measure it. In fact, if you have read anything by Brynjolfsson before there is a good chance it was his work on the “productivity paradox.”

The authors know about measuring IT and have some fascinating statistics. For example, did you know that in the last couple of decades “IT intensive” companies have grown much much faster than those which are not IT intensive?

I don’t want to review the book but I do want to highlight some of the points the authors make for the benefit of those who won’t read the book. In particular, there are some facts here which need to be considered by those who advocate a focus on “Business Value” when developing software (of which I include myself).

Firstly the book resolves the “productivity gap”. This was the observation in the late 1980’s that despite all the investment in productivity enhancing IT there was no resulting increase in productivity in the production and GDP statistics.

The explanation turns out to be: time. There is a time lag between investment in information technology and when the benefits are seen. This has closed somewhat in recent years, instead of decades it is down to years but it still exists.

So: problem number 1 for the business value crowd, How do you measure business value when the benefit will not be seen for two or three years? Or longer still? How do you create a feedback loop when your developers are working today and you can’t measure the value for two years?

The second issue we need to pay attention is “the complementary nature of IT.” It turns out, when you look at the numbers that IT by itself doesn’t delivery a whole load of benefit. To see real benefit you have to combine it with other practices. There are seven:
  • Move from analogue to digital processes
  • Open information access
  • Empower the employees
  • Use performance based incentives
  • Invest in corporate culture
  • Recruit the right people
  • Invest in human capital
If you want to increase “business value” then do all these things as well as your IT work. Trouble is, many of these things fall outside the bounds of your typical IT project. (And in part doing these is why there is a time lag.) If you don’t do these things then you will fall a long way short of maximising business value.

Put these together and you discover: a successful IT project requires organisations to change their processes. Which leads to another issue the book brings out: should business processes be counted as assets for a company?

After all, we count the hardware and software used for the process, why not the actual process? We invest in it, we spend money on it, why not count it?

This may sound irrelevant but it is important because: failure to count processes as assets means companies don’t invest in them. It processes were counted it would become easier to justify the seven things listed above. If processes were assets then money spent on them would come off one account and appear on another so it is easier to justify.

Where all this is leading is a stark reminder, next issue, that in many businesses, and among many managers, IT is considered intangible. The authors don’t challenge this assumption, to be honest, there is good reason why IT is seen as intangible. But it does mean that someone who talks about “Business Value” looks a bit out of place when “everyone knows” its intangible.

(Why IT is seen as intangible is probably another blog entry.)

Next, a lot of IT has delivered “value” it isn’t countered. Take for example a Google search. How much is a search worth to you? How much time and effort would you need if you had no Google?

But, while Google’s revenue is countered by the Government those searches aren’t. In fact, nobody, anywhere, attempts to put a value on Google searches.

Or take Wikipedia. How much is it worth? If I want to know how the steam engine works I can go out and buy a book. That will be counted. But if I read it on wikipedia it isn’t.

These are just examples of how IT systems change things and add value which isn’t countered. It is the kind of challenges we are up against when we try and measure “business value” in IT work.

And its why, for anyone who claims to know about measuring business value in IT, this book is worth reading.

Friday, January 08, 2010

Naked Objects and ACCU London January 2010

I am very excited about the next ACCU London meeting when Dan Haywood will be speaking about Naked Objects. The meeting is open to all and is free, just check the ACCU website for details.

I’m excited about this talk because Naked Objects is one of the few technology based approaches to software development which I think holds real promise for better development. This is because the Naked Objects philosophy is based on a very different approach to most software development. Rather than view the end user as some kind of inconvenience Naked Objects treats them as a problem solver who wishes to solve something.

I read the original Naked Objects book by Richard Pawson and Robert Matthews a few years ago and the idea has been with me ever since (I reviewed the book in an earlier blog entry). Its the difference between treating users as adults and not children to my mind. Rather than the designers defining processes in the software they give users the tools to resolve the issues their customers raise. This approach respects the person using the software. It moves the conversation from business processes to customer service; and it fits far better with piecemeal growth over big-bang change.

Dan has just published a new book on Naked Object, Domain Driven Design Using Naked Objects and I’ve been lucky enough to have a sneak preview. This is the first technical book (i.e. one with lots of code) I’ve read for a while and I enjoyed it. So here is potted review... Dan sets out to explain the Naked Objects framework. Yes, Naked Objects is not just a philosophy it is the framework too. No need to invent the wheel, here it is; and it seems that framework has matured quite nicely.

He is passionate about his subject, I’m almost itching to download this stuff and start coding myself - arhh, if I could only prioritise coding for fun above the other things going on in my life. The writing is very clear and to the point with a little bit of humour. His instructions for getting the environment set up for the example code and case study is clear.

There are plenty of code samples and screen shots to illustrate what is going on which is nice but... On the downside the book is nearly 400 pages long which means it yo are unlikely to carry it around much. I read a PDF version so I didn’t suffer too much.

I sometimes seem to be the only person I know who has not read Eric Evan’s Domain Driven Design book. Initially I thought I might be at a disadvantage reading Dans book but he explained just enough to get me through. Indeed, I’m now intrigued and plan to get a copy of the DDD book.

Sometime ago I asked Steve Freeman “Whats all the fuss over domain driven design? What is it?” to which Steve said: “Its about doing objects correctly, the way we should have been doing them all along.”

Everything I’ve learned about domain driven design since then fits with Steve’s description. It seems to me that domain driven design and naked objects were made for one another so I’m glad to see Dan’s book.

And I’m even happier that he’s speaking to ACCU London in a couple of weeks!

Tuesday, January 05, 2010

McKinsey on Agility

A recent McKinsey quarterly has a piece on organizational Agility, “Competing through organizational agility” by Donald Sull. It s a reminder that “agile” means something outside of the software world.

That said, the piece is a little disappointing. The piece doesn’t say anything particularly new. The only insight I gained from it was separation of agility into: Strategic agility, Portfolio agility and Operational agility. It would have been nice to know if you can have one without the others.

The main article also contains a sidebox which suggests some companies are centralizing decision making to improve agility. Personally I find that idea a little crazy. As far as I am concerned centralized decision making runs counter to agility for two reasons.

First it moves power away from those closest to the action. Those who deal with the customers, market and problem are the best place to make decisions. Moving decision making to the centre is disempowering and adds several layers of message passing.

Second centralized decision making is too often slow, bureaucratic or politicized. It takes time for the centre to realise a decision needs making, time to gather the information, time to make the decision and time to send out the decision.

Interestingly some of the examples given in the piece (e.g. Zara) are the same example cited by the Lean guys. More evidence that Agile is Lean by a different name.

Saturday, January 02, 2010

The return of XP?

An interesting prediction from Kevin Rutherford for 2010: “I predict that 2010 will be the year that eXtreme Programming returns to centre stage.”

I tend to agree with Kevin, while his logic is sound I would offer an alternative rationale for the return of XP. It goes like this...

XP can be viewed from two perspectives: project or engineering practices.

The first of these is basically Scrum. The cognoscenti might debate which came first and which borrowed from which but basically the approach is the same: short time-boxed iterations. Yes Scrum adds in Scrum Masters, Product Owners, self-organizing teams and such but while XP’s description is more basic they have broadly the same approach.

As to engineering practices, there is a growing Software Craftsmanship movement which is aiming to put these back on the agenda. While Scrum has been centre stage in the Agile world many of the engineering practices have been absent. Uncle Bob Martin has been talking about this for a couple of years and I’ve observed it myself (see my post about the Scrum Wall.)

Scrum gained a lot of popularity during 2008 and 2009 but too many of those teams adopted the project management bit without the engineering practices. While that approach can bring benefits it also stores up problems for the future. As more teams take this approach more teams will see these problems and more teams will need to add back the engineering practices and take craftsmanship seriously.

Add engineering practices to a Scrum team and it isn’t very different from XP.

The question Kevin leaves unanswered is: XP 1 or XP 2? For me its Extreme Programming, first edition, “the old testament.”

Now, to extend Kevin’s prediction. I hope we will see the return of “requirements” in 2010, or rather, more focus on “business value” delivery.

The “what are we building?” question has been underplayed in Agile too date. This means the Product Owner, Customer, Business Analysts and/or Product Manager roles (call it what you will) needs to have more attention. Fixing development is the easy bit, the difficult bit is doing the right thing. But, you can only really address that question once you can deliver.