Latest entries

Posted on 2 May 2006 under General

If you are one of the two actual humans who still subscribes to my blog then thanks for hanging around and I’m sorry for the lack of posts. I think I’ve got my inspiration back so hopefully your persistence will be rewarded.

Posted on 2 May 2006 under General, Management

Long, long ago in a company not far from here I worked for a company that was full of smart, capable people.  We did good things without any defined process.  Knowing what I’ve learnt since and especially reading about the experience of others it was amazing.  Either we were incredibly lucky, super smart or there was something else stopping us from creating nothing but train-wreck software.  I’m voting for something else since the luck thing doesn’t sound right and I don’t think I’m super smart.

So what do I think this something else was?  I think it was related to putting a capable person, who cared about almost nothing except for getting a good project out the door at the centre of the project.  Because I was at the company for a while (more than 10 years) and was interested in nerdherding I paid attention to the leadership/management of the teams and was able to correlate project success with the different team and project philosophies used on each project.

The most interesting failure in the company was a project that was months late and didn’t seem to be capable of delivering.  In fact, the project team didn’t even have a list of the features that it needed to implement or the bugs that needed to be fixed prior to delivery.  What was interesting was that once we realised that the project was going nowhere we only changed one thing.  We added a person to the project who was responsible for working in the middle of the team to make sure that the project was delivered.  Nothing else was changed - the technology, tools, daily processes and staff all remained static.  The person in the middle maintained a list of tasks that needed to be done, talked to everyone (individually) to find out what they were working on, doled out work to those who needed some, guided features towards simplicity and sought help for people who were struggling.  Think of the role as a task-nazi/coach or an unholy amalgam of a customer representative and a lead developer or perhaps a project manager who worked at a half-day granularity and understood the business.  After this change the project quickly build up a head of steam and finished only a few weeks late.

Other interesting failures at the company had to do with strict functional splits on projects.  You know the thing - business analysts too separated from software developers who are too separated from test resources, etc.  Even if each of the individual functions was communicating well with each other function, unless there was a person who co-ordinated and guided all of the interactions then things went wrong.  The worst example of this was on the company’s biggest ever project.  The project limped along and was delivered, but in the end wasn’t what was needed by the customer and was eventually canned (resulting in lots of job losses and investor money evaporating).  If only a person was put at the centre!

I’ve seen similar failures and successes at other companies often strongly correlated with the presence of a person in the middle.

Now I know that there have been plenty more advances in process and I’d rather use a more complete agile process any day but if you don’t really have a process or you use a waterfall variation then for the love of all things good, please put a single, capable person in the middle of each of your projects.

Posted on 19 October 2005 under General

Esther Derby has this neat post entitled “People who lower productivity” that reminds me of such a person from my past. He is a relatively famous programmer, is always nice and sociable, but has an ego problem that matches his extreme raw hacking brilliance. Anyway, in the mid-nineties I drew the short straw and got the job of porting some C language Windows 3.1 gui code he had written to Windows 95. It was a giant struggle due to the needless complexity and some odd little quirks. The thing that was sticks in my mind as needlessly difficult was that instead of ORing together symbolic constants for window-styles from windows.h (WS_X | WS_Y) he opened up the header file added the relevant constants together (probably in his head) and then pasted the raw magic number into the C file. Now, I didn’t know if the constant values had changed between Windows 3.1 and Windows 95 so I had to spend an hour or so working out what style constants he originally meant and then getting them into the source file. AAARRGHHHHGHHH!

Unfortunately for the company he is back and from all accounts hasn’t changed much. Leopards. Spots.

P.S. This one’s for you Sasha.

« Previous entries | Next entries »