Wednesday, March 31, 2010

Committees and Directors

Outcome


Many things are going to effect getting something done, in this case building a system or creating software. Though I think the following could be said about just about any collaborative effort.

There are three concepts to keep in mind, one is design by committee, the second a saying I picked up at Cable & Wireless from a director I worked for :

"There should always be an odd number of decisions makers, and three is too many"

And the third concept, which I was lucky enough to have a senior exec from Accenture remind me of recently is :

"Given that a qualified professional experienced person (i.e. me) trusts their judgement and ability to learn from mistakes, the more time you spend making decisions, the more you get correct and the more that gets done."

It's a simple formula that rests on the 80/20 rule stating : If I make the right choice 80% of the time, then the more choices I make and act on the more I'll get right over time.

The opposite being not making any choices and getting wrapped up in discussion, email storms and typically quite a Machiavellian approach to teams and work. Which is not only tragically destructive to gaining momentum on a project, it's counter productive and very easy to lose any direction.

Getting it done


As with all ideas they are good in theory ........ actually executing on a way of working as with most things is harder, i.e it's easy to sit here and type about it, though actually doing it takes some effort.

When moving from a committee or a non decisive environment into one, to put it bluntly noses are going to be put out of joint. Change always has it growing pains with egos and existing (read old) ways of doing things are being challenged, changed and general group dynamics being mixed up, you'll encounter the full range of people clamouring for more pie via what ever techniques they are used to or choose, some who are resistant and others who put their hands in the air and cry "just let me know where I do what".

Judgement aside for acceptance (easier said than done I know !)........ these things are typical and just "are what they are" so getting upset by them will put you at a disadvantage.

As with just about all things in life, it's about awareness of yourself untimely and of the situation in this case.

How do you react in these situations ?

How do you deal (positively, as it's pointless fighting manipulators at their own game, and ensure you support the ones who want to grow) with others ?

What is the desired outcome ? Yours as well as the company's that is paying for outcome X, and if they don't even have X defined that is a whole other blog, though make sure you keep asking or if your up for it be part of defining it ;)

Fall out


As new things come up there will be certain influences that will try and make "secret projects" out of the bosses ideas to garner favour and control the outcome in their favour, opposed to actually being team focused let alone outcome focused. These individuals are quite dangerous though easy to spot and even easier to deal with.

Just focus on getting the work done opposed to controlling it or hiding it, be inclusive of people who want the same and want to work.

This will inevitable get you their negative attention, be that trying to put you on the spot in meetings or defensive "woe is me" emails or chats they will have with other team members, though remember your their to get a job done and not play their game.

Remember they are far better and playing games on that level, don't sink to it, it's where they live their lives and they will likely win outright, or keep it up till you burn out.

Just accept it for what it is, leave them to it, be aware when dealing with them, and get on with making choices and doing work.

Who actually produces and delivers will be plain to see, and any employer who cant see that ..... well.

Balance


As will all things, it's not one or the other.

The balance between full on dictatorship and committee paralysis is called da da daaaaa .... teamwork.

Which turns out to actually be quite hard, as it relies on trust and each member making (the majority of the time) the choice of co-operation. With out that the system will lurch from one end of the spectrum to the other, committees killing any momentum and then individuals working away without the support of the rest of the team.

In fully dynamic environments (such as the development kind I'm told about within places like facebook or companies that actually want top performance) you have small teams where individuals spearhead projects and the team supports and leadership is shared (as it always is/should be in a team, even if that is accepted or not).

Though you need that culture and understanding across the organisation, a level of decisiveness and maturity.



So :

1 - Model by example
2 - Accept you get to learn from 100% of what happens, and 20% of that more so
3 - Let people be people and leave them to dig their own holes or support the ones who join in

4 - Remember ........... unless you own the company ..... it's just a job !

Monday, March 1, 2010

A Mandelbrot Tornado



Once again it looks like a good walk home pondering, and some thinking about how mother nature does things and an idea just appears.......

Windy maelstrom


Working up (or back depending on where you are) it's likely that you are in some kind of structure which resembles the following (in a software place that is); someone with money and an idea or desire, and some people they have hired to get that done.

Now if there is enough work (or a wide enough scope), the people in the middle likely end up getting more people to do the actual work.

Which brings me to the analogy, of a tornado. At the top you'll have quite a large influence looking out over the savannah of business with a view granted by elevation (CEO vision, company direction, etc). Now at this top level, there are large ideas and big plans, large slow moving schemes and strategies, slow relative to day to day implementation that is.

Ideas of months, quarters and years.

The Mandelbrot Effect


Now the next area (middle in a tornado or 1 step scaled in for fractal people) would be where the (sane) ideas from the top layer get filter too (i.e. what can we really build for the boss). Here they percolate, are weighed, discussed and start to become real, plans are made, dependencies thought about, architectures considered and resource consulted.

Weeks and months.

Touching down


At the correct time and after planning and once packaged up into a bite sized chunk, the idea touches ground and becomes real.

While it's being created (coded) the next chunk is being filtered and refined, the tornado starts to follow a path and the foundations are laid.

Days and weeks.

Filter


What is good to remember, is that ensuring that the correct ideas are in the relevant areas at the correct time is vital. Attempting to move across a savannah with the middle or the top of a tornado makes less than no sense, or the middle attempting to tell the centre what it needs to do or attempting to change it's direction on an hourly basis.

Also attempting to get the base spinning at 500mph to get some real damage ...... errr work done, without the momentum and direction being observed it's futile.

Such things start small and slow by necessity, they need to form, then they speed up .... and take out all things in their path.

Patterns within patterns


From the slow overarching path of the top of the tornado to the inner core spinning, the cycle is the same, feeding in and back out at the correct time, correct place and to give the correct momentum.

Even down to the continuous integration of the development, or even the cycle of a http request.

Attempting to be in the wrong place at the wrong time will have two effects, for a small or undeveloped development tornado it will stop it, for a large one you'll get blow out (and thrown down the stairs by the development lead).

Much as with Mandelbrot, it's all looks the same, just depends on where you stand ...... so best know where that is before doing anything.

Filter and stoke


Remember if you're a development lead of some kind you have to ensure the correct amount is allowed though at the correct time relative to the speed of the core. Build momentum in development much in the same way as getting a fire going, build it up into the bonfire before throwing houses on it.

Protect it from the wind in the middle. It's your job to be the gate keeper for distracting breezes and hot air .......so the core team don't have to content with it, they are too busy spinning at top speed tearing things up.


Practical


1 - Boss decides outcome at a macro level
2 - Facilitators filter and put it in order
3 - Team members task it up and execute on it

While the core at step 3 is biting off and delivering they are left alone by the facilitators at stept 2 till they have delivered.

By which time the facilitators have seen the results of the last sprint, and thought about the next one, and left the current one uninterrupted.

All seems simple when you write it down really :)