The Artima Developer Community
Sponsored Link

Weblogs Forum
Development Management: Carthorse, Racehorse, or Wild Horse?

3 replies on 1 page. Most recent reply: Sep 10, 2008 12:34 AM by Matthew Wilson

Welcome Guest
  Sign In

Go back to the topic listing  Back to Topic List Click to reply to this topic  Reply to this Topic Click to search messages in this forum  Search Forum Click for a threaded view of the topic  Threaded View   
Previous Topic   Next Topic
Flat View: This topic has 3 replies on 1 page
Matthew Wilson

Posts: 145
Nickname: bigboy
Registered: Jun, 2004

Development Management: Carthorse, Racehorse, or Wild Horse? (View in Weblogs)
Posted: Sep 10, 2008 12:34 AM
Reply to this message Reply
Summary
Two radically different philosophies to the management of software developers. Which one do you favour?
Advertisement

Recently my wife and I were discussing the next few years, including what kinds of work I'd be taking on after my current stint: I'm currently splitting my time between helping a client's team redevelop a successful, but aging, data manipulation product to be able to handle data sets up to 4 orders of magnitude larger that it can currently manage, and working on my next book(s). Both activities are highly demanding, very rewarding, and probably going to complete early next year. Lucky me! ;-)

After that, my current (modest) plan is to do some hard-core consulting to the banking and finance industry here in Aus, hopefully helping them to boost the performance of their trading systems by substantial amounts. (Working on high-performance high-robustness networking systems is what most whets my development appetite.)

But after that, perhaps towards the end of next year, I said I'd like to take on a new development team, but do so on my terms. (These terms will be explained in a moment.) Having just come out of a position of being involved in the management of a development team in a struggling organisation, with all the stresses that that entails, my wife naturally enquired as to why I'd consider going back to that. She makes a good point, because it was a hell of a cat-herding, management-juggling, technology-obviating 18 months. (Helping developers to learn and improve is what most whets my managerial appetite.)

The question of why I'd like to try it again - after my product redesigning, book writing, bank optimising, library releasing fun in between - boils down to what I have lamely termed down the years (in conversational rants on the subject with anyone who'd listen): the Equine Management question. A friend recently suggested that I put it down on electrons somewhere, so here goes. Please come along for the gallop ...

Equine Management

In The Mythical Man-Month, Fred Brooks comments on studies showing that within groups of experienced, competent developers there can be productivity differences of up to 1000%. Furthermore, the quality of the produced software can have similar disparities. Brooks comments that software produced by experienced, competent developers can have performance differences of up to 500%.

From personal experience, I can certainly say that I've experienced groups of developers with productity and quality - not that software performance is the only, or even the most important, measure of quality - ranges at least as large as this. Where I would demur - again, based on personal experience - is in stipulating that the large ranges encompassed "experienced, competent developers". (Again, more of this in a moment.)

Being keenly drawn to simplicity in managing life, I am given to applying deductive reasonsing from facts to reach conclusions regarding human behaviour. In this case, I believe that the critical role of any software development manager is to ensure that his/her development team is populated with individuals who are towards the upper end of the performance range. This may be achieved by a variety of means including, but not limited to, recruitment, education, and mentoring. But that's just the tip of the ice-berg. Crucially, having a team populated with high-performing individuals is no more permanent than the optimal conditioning range of the musculature/brain/aerobic-system/etc. of an elite athlete. As soon as you allow it to, it will erode. Being a developer who is capable of inhabiting the upper bands of these metrics, I am all too aware from experience how easy it is to fall down the ratings, through fatigue, bad management, lack of appreciation (more often peer approval, though money is a factor) and boredom.

Racehorse Management

What I call the Racehorse Model of Development Management recognises the wide range of possible performance of software developers and the concomitant opportunity for an organisation to prosper, and attempts to give them the best possible circumstances within which to produce at their best. Given that software costs are a significant factor in (almost?) all software development organisations, dramatic increases of the order of 100-1000% are to be sought, and valued, most highly.

Racehorses get the best hay, they get to come in at night, they get the best medical care, they are brushed, massaged, trimmed, cosseted in all manner of ways. But on race day they have to run. Very, very fast. And when they're old and past-in they're sent off to stud, where they can "pass on" their abilities so that the next generation can go even faster.

Carthorse Management

The converse approach I call the Carthorse Model of Development Management. Carthorses are (comparatively) big lumbering beasts tasked with pulling big loads on slow carts. They aren't cosseted, groomed, massaged, and they don't get to eat Marks & Spencers imported New Zealand carrots peeled by albino virgins with diamond knives. And, worst of all, nobody expects them to get their job done with any speed or grace.

Carthorse managers don't bother too much about the working conditions of their developers. They fuss about a developer being in the office between the hours and 9 and 5, and yet won't provide these developers with extended periods protected from interruptions (and that includes meetings!) during their day that would allow them to actually be productive, as opposed to just being present. They wouldn't dream of offering the developers a day at home to research a new technology/language, just in case it "might look bad". They don't battle for better conditions for their developers because they simply don't understand that better conditions will lead to productivity increases orders-of-magnitude greater than preventing them from having access to the internet just to stop the occasional email to their friends

I've encountered Carthorse managers many times in my consulting career - in my earlier, salaried career, I didn't identify them as such; they were just people whose inexplicably arbitrary interference I detested - and in my experience they fall into two camps. Either they're people who've never been software developers, and simply don't get it: it's kind of like putting an accountant in charge of a school or hospital (or a software developer in charge of a football team). Alternatively, they're software developers who, by dint of personality or immaturity, have poor social skills and are often paranoid about subordinates outshining them. In both cases, one wonders why they have been put in that position. Like as not, it's a manifestation of the Peter Principle, whereby (usually) smart, talented people are promoted one step beyond their competence. And once there, there's no going back.

The best thing one can do for such people is to buy them a copies of The Mythical Man-Month and PeopleWare and cross one's fingers. The best thing for any racehorses that find themselves being managed in such a way is to find another position, before you find yourself wearing a harness pulling a big cart!

Wild-Horse Management

Before I (briefly) outline the characteristics of racehorse management, I would observe that there's a third, accidental, school of development management: Wild-horse Management of Software Development (a term recently confected). Such teams tend to be subject to ad-hoc management, often under managers that have other responsibilities. Some may be geographically diverse. Some I've encountered had developed within companies whose main activities are outside software development; others where the founding software developer has become CEO, CIO and chief cook and bottle-washer, leaving the team to fend for themselves.

Where racehorse management (if done well) will tend to produce outstanding results, and carthorse management will tend to produce very average results, companies utilising wild-horse management may vary wildly in how well they produce software. I suspect this is due to the differences between potentially highly productive developers when left to their own devices: some will perform highly in isolation, others may flounder for lack of contact, intellectual exchange, and recognition/affirmation.

In my personal opinion, wild-horse teams need to evolve - hopefully to racehorse teams - to really achieve. If you fail to start their evolution in that direction, you may find that they dissipate entirely or, equally undesirable, someone else in the organisation will force-evolve them into carthorse.

Applying Racehorse Management

So what exactly is Racehorse Management. Well, I'm not sure exactly. Since this is as yet a personal model, and this is the first time it's been given any kind of write-up, it's more of a case that I know it when I see it. However, there are some defining characteristics that can be stipulated now:

  • Motivation Developer performance is valued more highly than automated performance. Sure, a new design tool might bring productivity increases of 10-100%. But correctly motivating your developers can bring increases that may be an order of magnitude more significant.
  • Quality is valued All aspects of software quality - robustness, correctness, discoverability & transparency, efficiency, expressiveness, flexibility, modularity and portability - are valued. The software produced by such teams may be said to be beautiful.
  • Team Spirit is valued Racehorse teams enjoy high levels of team spirit. Note: this doesn't always mean that they have deep affection for their employer - though they will always have more positive feelings than negative - but they will have it for their team.
  • Discussion is valued In racehorse teams, developers have regular debates about technology and practices. They challenge each other, including their manager(s).
  • Down-time and research is valued In racehorse teams, developers have time to spend reading on tangential matters, and doing research.
  • The managers and team leads are humble Managers and team-leads of racehorse teams are not ignorantly autocratic. They respect the talents and experience of each team member. By the same token, they are not afraid to lead in the technical areas in which they are superior.
  • Work smart Racehorse teams use modern development practices, and automate their work as much as possible, in order to concentrate on using their very expensive greyware for the things that computers can't do.
  • Compensation It almost goes without saying that, if developers' productivity is several times higher than the average, they will be paid substantially more than market rate.
  • Aptitude is the key Ludicrous notions that old/female/badly-dressed/differently-accented people cannot write beautiful software find no home in race-horse teams.
  • Development is respected In racehorse organisations, the development team is not seen as the socially- inadequate grease-monkeys of the organisation (even when they are socially inadequate). Software development is respected for the pivotal role it has in the overall success of the organiation.

They shoot horses, don't they!?

All the foregoing might seem relatively obvious for any modern team. However, there's one final aspect that we've not covered, and which you may be wondering about. It's one that I deem as essential to the model. If a developer is consistently, and irretrievably, under-performing, you have to be able to expel them from the organisation. And not with months of "performance management" and all that (mutually) soul-destroying rigmarole. Of course, this should not be done without consideration or compassion, but it has to be done. Slow race horses win no races, but they still eat hay.

Summary

In summary, I shall defer to far greater experts than I, the authors of PeopleWare, Marco and Lister, who say (from PeopleWare, of course): "a manager's job is not to make people work, but to make it possible for people to work".

And for me?

Well, I'm a realist. I know that there are precious few organisations here in Australia with the foresight, the scale and the finances to create truly world-class teams on the basis outlined in this article (and that includes the ability to easily get rid of irretrievably underperforming developers). However, if any come knocking on my door next year wanting to build world-beating software, I'll let you know how it goes.


Michael Böckling

Posts: 1
Nickname: buddycasin
Registered: Sep, 2008

Re: Development Management: Carthorse, Racehorse, or Wild Horse? Posted: Sep 10, 2008 5:46 AM
Reply to this message Reply
I agree to everything you said, you hit the nail on its head.

But the real challenge: how would one go about finding such organisations?

In your experience, are there countries where they tend to occur more often than others?

Matthew Wilson

Posts: 145
Nickname: bigboy
Registered: Jun, 2004

Re: Development Management: Carthorse, Racehorse, or Wild Horse? Posted: Sep 10, 2008 7:12 AM
Reply to this message Reply
> But the real challenge: how would one go about finding
> such organisations?

I don't know. To be honest, I don't know if they even exist. Even really big and outwardly progressive companies may be less forward-thinking than they might appear. I'm inclined to believe that the smaller the company, the more open-minded, but less open-pursed, they are likely to be. Perhaps it's a catch-22?

> In your experience, are there countries where they tend to
> occur more often than others?

I assume that this is more likely to be found in the US and, somewhat less so, in Europe simply due to the size of the populations and the level of advancement of the software development industries. It's not to say that I don't think such companies can exist here in Australia, for instance, just that the scale and capacity suggests a likely lower incidence.

But, hey, if anyone from Mac bank, or Telstra, or any of the other companies with serious requirements and deep pockets are listening, give me a call. :-)

Adi Shavit

Posts: 6
Nickname: adish
Registered: Apr, 2005

Re: Development Management: Carthorse, Racehorse, or Wild Horse? Posted: Sep 10, 2008 9:33 AM
Reply to this message Reply
As it happens I am reading "Behind Closed Doors" (http://tinyurl.com/6kv9m9) right now and I think that you'll find it to your liking. It is a book about how to manage software developer teams, written for the engineer turned manager.
Adi

Flat View: This topic has 3 replies on 1 page
Topic: It isn't Easy to Remove the GIL Previous Topic   Next Topic Topic: Metaclasses in Python 3.0 [1 of 2]


Sponsored Links



Google
  Web Artima.com   

Copyright © 1996-2014 Artima, Inc. All Rights Reserved. - Privacy Policy - Terms of Use - Advertise with Us