Monday, June 27, 2016

Servants, not leaders, not managers

Sharp eyed readers of my management mini-series will have noticed I referred to managers doing administration several times, Peter Hilton mailed me to ask me more about this. Let me image such a manager, let me imagine the worst possible scenario…

This manager spends a lot of time involved in admin. Finance forms a lot of this, juggling a budget, allocating “resources” (people to you and me), calculating totals, staying within limits. Some of this is straight admin, it could be done by anyone semi-competent with spreadsheet but some of this work demands knowledge of what the organization is trying to do and, importantly it demands authority. Would you like your team composition to be determined by a finance clerk?

While the manipulation of the spreadsheet could be done by a finance clerk the result would not have the same authority. At the very least the clerk would to work under the direction of someone with authority.

Some of the work requires authority too because the organization has put a number of checks in place which require authority to overcome. Purchase orders need to be raised, but to raise them statement of works need to be raised, and once raised these artefacts require authority to approve them. The approval authority rests several steps up the management chain but it is not possible to jump to the top, the higher levels only give authority when the lower levels have.

And sometimes the machine breaks down and someone needs to use chase, and sometimes chasing requires authority.

In fact it appears the more the organization has tried to streamline its internal processes the more authority is needed to make anything happen. A finance clerk breaking rules and pushing senior staff for authorization wouldn’t get far, they may even be viewed as a fraud problem.

This hypothetical manager spends a chunk of his day in discussing seating plans. Such work could be devolved to teams but why disturb busy programmers and testers with seating plans of little interest too them?

Such work could he given to an office administrator or a personal assistance (if he had one). But who would like their desk decided by a secretary?

And if you have several self-organizing teams who is going to resolve conflicts? Who is going to represent the teams when they need to ask for more space?

Our hypothetical manage spends a lot of time on the phone, to colleagues, some managers, some non-managers who require updates on what is happening. Not just about software progress but about budgets, seating, recruitment and all the rest. Yep anyone could answer the phone but again, who wants to be interrupted? And who wants to speak to the office secretary? How do you know the secretary has the most up to date information?

Sure in an ideal company there would be little or no hierarchy, people would happily ask questions of those with knowledge rather than those with status but you only need a few people who stand on status, on hierarchy, and it spreads. A Director expects to speak to a fellow Director not to an NCO team lead. And if the Director wants to know about several teams who does he call?

Many of those phone calls involve recruitment, in particular recruitment agents, resources, head hunters, call them what you will. Job descriptions go out, CVs (resumes) come in, even if this manager does review them (and he does some) who is going to communicate with the agents?

If you’ve ever tried to hire someone via recruitment agents you will know: these guys don’t let go. If they get a whisper that you are recruiting they will call you. Once you have a CV from them for a candidate they will call you day-and-night until they know whether you will interview them. And if you say No they will try and change your mind.

Sure good personnel, sorry human resources, staff can help, but a) very few IT staff trust HR, b) many HR people do not feel competent to hire IT staff and c) recruitment agents will find a way around HR staff if they possibly can, and they usually can. (If recruiters have the names of multiple people in the same office they will call them all until one gives the decision they want.)

Who wants to be interrupted by these people?

I could go on but my point is made.

Now an organization could seek to remove a lot of this work from such a manager. After all: you could have an office admin person, a finance specialist, a recruitment person, you could move a lot of this work to specialists, but…

In a small company this often doesn’t make sense. You don’t do enough recruitment to have a specialist, you don’t rejig the money often enough to have a clerk.

Sometimes these issues are interlocking: recruitment effects the budget, the budget effects office desk space and so on. There may be a logic to bringing it together.

Then there is the question of authority. If we delegate the office seating plan to an administrator and an Architect doesn’t like it will they go running to the Manager to have it changed? Or maybe they will talk to the Admin directly.

To complicate matters many companies have actually stripped out these supporting roles over the last 20 or 30 years. Secretaries are increasingly rare but they can be the oil that makes things work efficiently.

In stripping these people out they may have been replaced by machines executing business processes. That may be fine when things work but what when things don’t? Like in code exceptions don’t happen very often but they do take up a lot of energy and effort. In a corporation handling such an exception may also require authority.

Coincidentally I saw Mike Burrows talk the other night about Servant-Leaders. It occurs to me that we don’t actually need Servant-Leaders so much as we need a few more Servants, or rather, support staff to help things work efficiently: secretaries, office admin, finance clerks and recruitment people to name a few.

We need these people embedded with the teams were they can address issues first hand. Putting them offshore or outsourced to another company may make them cheaper by the hour but it will increase the number of hours that are needed.

Not all work can be delegated in this way but a lot of it can. If our hypothetical manager was supported by a good assistant a lot of the admin work could be lifted off his shoulders. This would then allow the manager to devote more time to the important things. In time such a change might even remove the need for a manager altogether.

Now I’ve seen teams with embedded support. A company I worked for in California had a development assistant. She was personal assistant to the whole team. If we needed stationary or a white board she’d get it, if we needed lunch brought in she did it, if we had a problem with expenses or accounts she’d have the first shot at addressing it, and so on.

Before we rush for more Servant-Leaders lets get a few more Servants.

Thursday, June 23, 2016

Management - a lesson from BHS

No sooner have I said I’m closing off my management mini-series than things come to light that need saying! Arrh well, I did say it wasn’t my last word on software management, i just didn’t to be revisiting the subject to soon.

The reason for this rapid revisit is the news from BHS, formerly known as British Home Stores, for those who don’t know it, BHS was for about 100 years a standard part of the UK high-street. Growing up we bought as much there as the better known, and more expensive, Marks & Spencer.

For those who don’t know the story (the BBC has lots) a sort introduction to the key points: Entrepreneur retail billionaire Philip Green owned BHS for over a decade (directly and indirectly) before selling it to a completely new venture, Retail Acquisitions Ltd. for £1. Well, BHS was in trouble (it missed e-retailing) and had big debts (largely in the pension plan.) Surprise surprise, the company collapsed leaving angry pensioners and politicians set about investigating.

The executives and owner of BHS were called in to answer questions. This is where my point really begins…

The BHS CEO told that inquiry that a few days before the collapse the new owner told him to transfer £1,500,000 to a Swedish company. The CEO complained saying the UK company needed the money. The Owner then threatened him, told him to stop making trouble and just do it.

To those outside of management discussions it can look really simple. The money is either needed in the UK or not. Managers and Owners are supposed to think alike, indeed all managers are supposed to speak with one voice. Management, and owners, are supposed to act both rationally and consistently.

It may come as a surprise to find that managers are flawed, managers, disagree and sometimes the managers and the owners have conflicts. Indeed, whole volumes of business literature is devoted to the “agency problem”: how to make sure managers do what is in the best interest of the owners and not what is in their own best interest.

Engineers often dismiss all this as “politics.” They assume there is a rational cause of action and if only all parties could work through a rational process everything would be alright.

But this just isn’t so.

Management is fuzzy

There are few, if any, solid rules in management. Even those that have the force of law can and do get broken - think Enron and Anderson Consulting.

Unlike programming there is no machine to pull you up short when you make a syntax error.

And the feedback looks can be long, real long. Decades.

So often management decisions come down to opinion. Sometimes it is the opinion of someone in authority, sometimes its the opinion of someone interpreting authority or someone trying (successfully) to influence authority.

To an engineer all this is ripe for re-engineering, replace these broken systems. However: just because you want management to always be rational it isn’t going to be so, no rational system can operate in such a fuzzy world.

Imposing rules isn’t going to help, they will just get broken.

Systems will get gamed.

This is not a problem with management, these are the problems management exists to address. Removing management does not remove all the problems - it might remove a few, it may also make them worse. If we remove all the management and give all the power to engineers they will wrestle with the same problems.

Tuesday, June 21, 2016

#NoProjects applies to bread machines too

#NoProjects continues to attract an increasing amount of attention. In fact the idea now has its own NoProjects website - many thanks to Evan Leybourn for that.

From time to time I get asked:

“Surely #NoProjects doesn’t apply to embedded software? After all, the software is installed, the device ships, end of story.”

Maybe, but as in other cases I would argue that the software only stops changing if the product is unsuccessful. If the product is successful one can expect the software to continue changing, sure the device that shipped with version 1.0 of the software might never receive a software update but if the device is successful there will be future devices in the same product line and they will most likely contain enhance software.

For example, one of my favourite kitchen devices is a Panasonic bread machine my wife bought me a about 7 years ago for my birthday. A few months ago we noticed the bread wasn’t coming out right, after a bit of investigation I diagnosed the motor was wearing out. A few days layer I was the owner of a brand new Panasonic bread machine and it was producing great bread again.

The new device shares many similarities to the old it replaced but also has some differences. In particular the user interface is very similar - although this one contains more bread programmes and a modified selection procedure.

Although I don’t know for sure I am happy to bet money that the software inside this one - and lets be honest, there really is a lot of software inside a bread machine - is a later version of the software in the earlier machine. Why wouldn’t it be?

Panasonic produces a range of bread machines, they change from time to time. Would it seriously rewrite from scratch the software each time?

Sure the software in my new bread machine will never change. The project to create the software for my current machine has ended but the software hasn’t. I have but one version that will not change but it is just one release of a living system, an evolving system.

And in seven years time when I need to replace this bread machine, what is the betting Panasonic will be selling Internet connected bread machines that they can update over the Internet of Things?

As the internet of things rolls out fewer and fewer devices will not be capable of update.

The internet of things will drive another nail in the projects coffin.

Wednesday, June 15, 2016

Some things can never be spoken

“Some things can never be spoken

Some things cannot be pronounced

That word does not exist in any language

It will never be uttered by a human mouth”

        Talking Heads, Give me back my name, Little Creates 1985

Some things shouldn’t be spoken. Some things shouldn’t be targeted, some things should be created as a side effect. In Life, the Universe and Everything Douglas Adams explains the secret of flying:

“The Guide says there is an art to flying", said Ford, "or rather a knack. The knack lies in learning how to throw yourself at the ground and miss.”

Throwing yourself at the ground and missing.

Its important not to try to try:

“One problem is that you have to miss the ground accidentally. It's no good deliberately intending to miss the ground because you won’t.”

In business, in software development, there are similar problems. There are some things we should try hard to achieve. There are some things we shouldn’t speak.

We may want to achieve these things but they should be side effects of something else. Usually the thing we want to achieve is important but to set out to achieve it has nasty side effects. The solution is to do something else which has the nice side effect of creating the thing you want.

Got it?

Following me so far?

Think of it as an anti-dote for Goodhart’s Law: "When a measure becomes a target, it ceases to be a good measure."

Lets try some examples.

Profit is something that shouldn’t be aimed for. It is easy to increase profit, just fiddle the accounting rules, ask Enron, WorldCom (classify expenditure as capital investment) or Lehman Brothers.

It is even easy to reduce costs, just reduce travel allowances, freeze wages.

Another easy way is just to fire people. You will instantly reduce costs - redundancy payments can be made to disappear under “exceptional” items in the accounts - and it will be months if not years before the negative effects cut in.

Its often easy to increase sales: reduce price.

But all of these things will have a counter effect, maybe not today, maybe not tomorrow, or next week but sooner or later. People will become demoralised, people will communicate less, people will leave the company, customers will get dissatisfied and your auditors might catch you out.

The secret to making lots of profit is to not try. Try instead to make for a positive work environment, make your employees happy. Better still try and make your customers happy, make your customers lives better. Do the right thing by your customers and employees and you should expect profit to follow.

And if delivering profit means doing the wrong thing by your customers and employees then ask yourself: should we be in this business? Is this business sustainable?

It is not only profit.

Take another one popular with executives: Culture.

Company Culture is most definitely one of these things. Don’t set out to create a culture. Set out to create the kind of company you want and in the process you will create the right culture. But abstract this to a culture and you have failed.

Who gets up in the morning to go and work in a culture?

Who, for that matter, gets up in the morning and says “Gee, today I’m going to make the company another $10,000”? (OK, sales folk do.)

Rather than set out to create a culture set out to create something else: create a passion for delivery, a fervour for innovation, a zest for pleasing customers.

Don’t call it culture and don’t set out to create a culture which is passionate about delivery. Do the thing itself and the culture will follow.

Communities of Practice, CoPs, is another one.

CoPs periodically become fashionable, I’ve founded and run a few CoPs in my time and I’ve studied, them, heck I think I even wrote about them in Changing Software Development. But… whenever I’ve seen someone set out to create a community of practice they fail.

The trick is not to call it a CoP. Call it a group, a study group, a tech group, a community, just about anything but a community of practice. A community of practice is semi-academic term to describe an observed phenomenon. Decide one what you really want not an abstract idea.

In fact, teamwork, is probably another of these things. Don’t set out to create good teamwork. Set out to make your team better at what they do.

Create a purpose to your work not teamwork, not culture and not profit.

Servant-Leadership is most definitely another - talk about it in your Manager Anonymous sessions but don’t use it in the office. I know one company where the Project managers got very confused when they were told they were now Servant-Leaders.

Don’t tell people you are now a Servant-Leader. Change your behaviour, become the servant leader you wish to be. It will take the team time to notice the change but it will take you time to change. Simply announcing you are now a Servant-Leader will not make it happen, it will only confuse people - and perhaps make you look arrogant.

My own #NoProjects is another. As Joshua Arnold said recently: The first rule of #NoProjects is don’t talk about #NoProjects. The corollary is: don’t talk about Projects. Don’t talk about them. Talk instead about product, talk about teams, or stream teams, or amoeba teams. Just don’t talk about No Projects.

This isn’t an exhaustive list, these are just things I’ve noticed again and again, I’ve seen others - and I hope you will too.

Think, if you like, of these things as attributes - teamwork, culture, profit, community - or better still qualities, qualities that should remain nameless, naming them kills them. The trick to all of them is not to try too hard, focus on something else, focus on something more concrete and let the abstract notion follow.

Qualities without a name.

Monday, June 13, 2016

Management - what are we left with?

Over the last four months I have written a dozen blogs concerning management of software development. I will write more, but I’d also like to draw a line under this mini-series for now - there are other things I want to blog about.

Management in and of software development is an important topic, simply abolishing it is simplistic. Although as I said earlier: sometimes the management is so bad getting rid of it is an improvement.

Right now I’d like pull together some of the key arguments I have made in this mini-series. And I’d like to start with the words of Fred Brooks:

“the quality of the people on a project, and their organization and management, are much more important factors in the success than are the tools they use or the technical approaches they take.” Brooks, Mythical Man Month, 1995.

Perhaps the key argument I'm trying to make in this series is: There is “management” work to do - the same as there is coding, testing and customer understanding.

Such work is legitimate, just because it isn’t coding, testing or requirements analysis/gathering doesn’t make it irrelevant or trivial. Manager-less teams might well reduce the amount of work (which is good) or might redistribute but there is always a some to do.

A lot, if not most of this work involves decision making. Such decision making usually requires authority and may require making decisions with less than perfect information. Sometimes the missing information is unknowable, or is only knowable at a prohibitive costs (which might be time, money or something else.)

Consequently doing management work requires skills of its own, but even more than skills it requires intuition. So it takes an engineer to manage engineering, non-engineers managing engineering work usually lack intuition in engineering decisions.

Once you recognise managing as a skill in its own right the question then becomes: is it better to spread the work around (in which case everyone needs time and skills to do the managing) or centralise it in one place?

Other things to consider are:

Wednesday, June 08, 2016

Advice for conference submissions (Agile on the Beach feedback)

For Agile on the Beach 2016 we had over 240 submissions. Thank you to everyone who submitted, I’m sorry we could have so few of you - 41 sessions if I remember correctly.

I find sending the “Sorry you weren’t accepted” mails the hardest part of organising Agile on the Beach. That is especially true when I know the speaker personally, or I want the topic, or I’ve seen the talk before and think it would be great. But in the end I only have the same voting power as the other five committee members.

And in the end, knowing that the decision on who to accept, and who not to, was not mine alone helps me get through the “Sorries.”

Each year I tell potential speakers: “If you would like feedback on why your session was not accepted please email me, I can’t promise detail feedback, or promise to do it promptly but I’ll do my best.”

After all Agile is about Feedback so why wouldn’t we do this?

Well, its a lot of work - about five hours I think. Because its a lot of work this year it has taken me nearly three months to find the time to do it but I have just sent the last feedback. Sometimes there isn’t much I can tell potential speakers, reviewers can add comments with their score but they don’t have to.

(If you submitted something to Agile on the Beach 2016 and I’ve missed your request, or only know decided you would like feedback then please e-mail me.)

Many of the reasons why sessions didn’t score highly crop up again and again so I thought it would be worth capturing them here in a blog. For anyone thinking of submitting to Agile on the Beach 2017, or another conference, these reasons might be useful.

By the way, I have another blog post about the Agile on the Beach voting process which should be read together with this one - or better still, before this one!

So, the common themes in the feedback I’m giving submitters are:

  1. A lot of session were simply out competed: reviewers liked them but they liked other sessions more.
  2. Some synopsis were to short, light on detail, little to engage the audience - and certainly the reviewer.
  3. Some synopsis were too long, too much detail - indeed I remember some that went on and on. Clearly there is an art to getting something long enough to give detail but not so long the reader gets fed up reading it. (Remember reviewers may have 240 of these to read.)
  4. Multiple submissions by one person is a high-risk strategy. If you are Adrian Howard or Seb Rose this is a high reward strategy, both of these speakers have in the past submitted strong proposals and the committee is left agonising about which one, or perhaps two, of the submissions we will have. Seb and Adrian changed the debate. But for most submitters reviewers notice multiple submissions and actively score one higher than the other. Unfortunately if another reviewer makes the opposite choice multiple submissions effectively split the speakers vote. So it is better to limit your number of submissions and play to your strengths.
  5. Multiple submissions of the same synopsis with different travel expense expectations or co-speakers really annoyed the reviewers. For example, a couple of people submitted a talk with expenses set to “Worldwide” i.e. a long haul flight, and then submitted the same with “Local” or “Will pay my own long haul.” Reviewers felt these people were trying to game the system and marked them down.
  6. Indeed, Worldwide travel, long-haul flights, always presents us with a problem because such speakers are more expensive for us. We can usually find the money for one or two such speakers but thats the limit. This year we provided the option for speakers who were prepared to pay their own long-haul flights and we have a couple of speakers doing this. While I accept this might not be fare it is hard to see how we can be completely fare given our economics.
  7. Paid speakers: we don’t pay speaker for Agile on the Beach. We pay travel expenses but not speaking fees. If you are looking for a fee then please don’t submit.
  8. Keynotes: we don’t do an open call for keynotes. We select the keynotes and invite them before we even open the call for papers usually.
  9. Double sessions need to be twice as good: accepting a double displaces two single sessions which means we need to be convinced. Despite making extra space for doubles this feels like an inevitable problem because it is about timing. It isn’t really fair - some topics genuinely deserve more time, especially if they are interactive. Perhaps the best advice is: only submit a double if you have been the to conference before and committee members are likely to remember you as a good speaker. Giving a double to an unknown speaker is a big risk.
  10. This year we had what seemed like a lot of submissions along the lines of “What Hiking taught me about Agile” or “Why paragliding is like software development.” While these are interesting metaphors none of the scored highly. In general I think such metaphors only work if the field is well know. And this year I for one got a bit fed up of reading yet another “Lessons from arctic exploration for Agilistas.”
  11. ThoughtWorks: this is one of those “nice to have” problems but still a problem. We have a great relationship with ThoughtWorks - largely thanks to Jim Barritt and James Lewis who put us on the TW map and encourage a lot of TW people to attend. So we get a lot of strong proposals from Thought-Workers - after all TW only hire the best so we don’t get weak proposals from them. In 2015 we could have populated entire tracks with only TW consultants. They would be strong tracks but we don’t think that is good for conference variety. As a result submissions from TW consultants have to compete against each other in addition to competing with everyone else. Sorry guys.

By the way, we don’t do anonymous submissions, we, certainly myself, tend to believe the speaker, their background, name and experience is important. If we have been fortunate (or unfortunate) enough to see someone speak at a conference we take that into account. We also know there are many speakers we like to see return - and one or two who we don’t want to see again!

We have in the past been criticised for not including enough variety in our speakers, specifically: having too many men. Perhaps one reason for doing anonymous submissions would be to guard against this but actually, we don’t see this our problem. Or rather: yes we would like a better gender balance but when we’ve looked at the male/female ratio of other - comparable - conferences we’ve found we our balance is better than most. That is not a reason to rest on our laurels but it does imply its not a problem to us specifically.

Monday, June 06, 2016

Managers as information hubs

One of the arguments that is made for manager-less teams runs something like this:

“Managers were useful when they were information hubs, when they heard company information, policy, direction, etc. and cascaded it down to their staff.

But in a world with e-mail, web, slack and a myriad of information systems there is no need for the role. Information can be directly communicated via modern tools to staff.”

This doesn’t actually hold up when you examine it:

  1. Modern tools might allow mass communication but they also allow mass interruption. To communicate everything to everyone increases the information processing load on everyone. True, the information may be public but this has the cost of demanding everyone reads it.
  2. Much information does not need communicating to everyone, to communicate it to everyone interrupts everyone.
  3. Communicating a common message to everyone means that context is lost; information requires interpretation within local environment.
  4. Without a common, shared, understanding of information then each individual can interpret the same information differently within their context. Remember: the meaning of any message is decided by the reader, not the writer.
  5. Because modern tools lower the barriers - specifically cost - of communicating to many people more communication happens, but this increases the cost of receiving information because more people read the information and have to interpret it.

I could go on but you get the picture.

Let me suggest, that rather than removing the need for information hubs modern tools actually increase the need for information hubs. Far better for one person to read all the information, interpret it and pass on the useful stuff - within a context and perhaps in a timely but not disrupting fashion - than for everyone to undertake the same work and pay the price.

Such an information hub could be anyone, or at least, anyone who likes reading and communicating. But let me further suggest that this work, the information hub, is an example of management work.

Whether a commissioned manager or someone else does the work is another question.

But let me suggest further, than having someone with slightly elevated authority act in this capacity also makes sense. It makes sense because such a person can be privy to more information - yes I know we shouldn’t have secrets inside the company but they exist, some are even legally mandated.

Because such people have more authority they are also able to seek out - i.e. ask questions - which are missing from information.

In summary:

  • Just because modern tools allow us to remove information hubs it may not make sense to.
  • If there is going to be an information hub it may well make sense to give this person additional authority to go with their additional responsibility.