Sunday, June 15, 2003

What Are you talking about?



It occured to me that I've been too harsh when it comes to people and the way they work.

People communicate for so many different reasons. Often when people are at work, they don't care about their job. Despite this, they'll go about their work, go to meetings, argue and look exactly like they care. Bastards.

Until now, I just assumed that if you're talking about stuff, it's because you care about it. But life has pressures that don't always mean that's the case. You can have a huge fight with your spouse, and then come to work and you're just expected to get on with work-life like everythings fine. The thing is, it's not fine, it's crap, and so when somebody suggests something you blow up and yell at them, simply becuase you can.

The point is that things aren't always what they seem, and this makes it really hard to tell when you're getting objective analysis and committment from people.

Some of the behaviours I've seen that get in the way of getting things done include:

I'm smart too
People will disagree with what you say simply because they are threatened by the suggestion. Perhaps they think that this is the kind of thing they shoud've thought of - the "turf" war begins. They can't fault your argument, but they'll dig in and disagree with stuff anyway. They may misinterpret your suggestion as a personal affront to their intelligence - and suddenly the real point of the conversation is not the issue at hand - it's all about proving how knowledgable you are.

Justifying My existence
Often people will be so intent on proving their worth that they'll take a point from the issue at hand and discuss it at great and unnecessary length, simply to allow others to see they are valuable. While these are often good conversations for people who might not understand the issues, they also slow everything down. If you understand and support an issue, you don't have to say anything.

Check me out
Sometimes people get so caught up in trying to impress people, that the issue becomes irrelevant. Angling for a pay rise, or trying to get a root.

Dominance for Self satisfaction
"The blues isn't about making yourself feel better - It's about making everyone else feel worse!"
Some people are difficult and horrible because bringing other people down makes them feel better. The issue is almost always irrelevant - it's more about the communication. There are times when I guess anybody under pressure will be dismissive or rude in the light of a perfectly valid idea.

So what do you do? Perhaps we all need a big sticker on our heads that lets our colleagues know when we're likely to impede the process of getting things done...

Maybe you just need to learn exactly when there is no point pushing the issue. If you suspect that the conversation shifts to anything other than the point, then you should just drop it.









(0) comments

Friday, June 06, 2003

More like a bridge too short…



Software Engineering is a discipline entirely unlike every other form of engineering. It’s more like sorcery. Any other engineer works constrained by the physical world; Their worlds contain concrete dependencies and tangible defined constraints – innate truths. Things that you simply know have to be completed in a particular order – for instance, a civil engineer wouldn’t set out to build a car park by suspending 10 parking floors in mid-air – My 3 year old son knows that you can’t do that. It just doesn’t work that way.

Software engineering is different. In Software land – anything you can imagine as a solution to the problem can be done. You can suspend floors in mid air – in fact you never need to build any columns at all. You can also modify the car parks to take up optimal levels of space. You could build specific car parks for specific models of car. All of a sudden, the rules go out the window in Software Engineering.

This is the cause of, and solution to all of the world’s software problems.

What if your software project was a bridge? What would it look like?. If I apply a critical, misty, metaphoric eye to Software projects I’ve worked on, I come up with some pretty interesting bridges:


BloatWare Bridge


This bridge has two huge suspension towers that support an industrial grade concrete platform that hosts a 10 lane, perfectly flat highway. Unfortunately nobody uses that. Most of the traffic on the bridge uses the maintenance tunnel, which was built very early in the construction process. The maintenance tunnel is pretty dark and narrow, but the engineering team are constantly widening it by digging sideways. There is of course a danger that this may cause the bridge to collapse into the tunnel, but so far, so good – it works, right? In order to further assist commuters there’s a matter transporter which dematerialises traffic and rebuilds it on the other end of the bank. Not many people use that either, because it uses too much power. There’s always the punt though – it cruises reliably back and forth across the water…

Several commuters insist on crossing by swinging from the suspension wires in a highly dangerous maneuver – something the bridge was never designed to support, so the engineering team have designed several floating air bags to catch them and restore them to the bridge.

Overkill Crossing.


This bridge is a striking impressive structure- that spans one side to the other like an enormous scaffolding of ultra-complex support framework designed to look foreboding. Underneath it all is a goat track that joins the two banks. Traffic generally slows to a crawl.

Asynchronous Weir


This is less of a bridge, and more of a bank-to-bank processing solution. Commuters arrive in cars and are attached to a flying fox which propels them via a small jet engine to the other bank. Their cars are then re-assembled using a specification that is kept in the glove box. If the car doesn’t have the specification, it gets ignored. Multiple passengers are supported, and if one member of the car fails to get to the other side, all passengers are returned to a holding lot and a flag gets hoisted to indicate a problem...

The point of all this silliness is that there are a million ways to solve a problem, and given all this power, there's a nearly overwhelming tendency for developers to just dive right in and start nailing girders together. Add to that the “wouldn’t it be cool if we had a…” factor, and you’re well on the way to a gnarly bizarre hard to test hard to fix piece of software.

So how do we get around this? Well the answer is disappointingly simple. We go back to our friends the physical engineers.
Put on your hard-hat, analyse the problem and find the dependencies in the solution. Write a comprehensive specification. Revise the design until your’re happy that you have the most efficient solution for the problem at hand, and everyone on the team knows exactly what your doing.

Until you’ve got a good set of blueprints, don’t build that first column.









(0) comments

Friday, May 30, 2003


The Guys over at Software Reality have some cool stuff. Some dumb stuff too, but hey - it's all stuff.


Reminds me what I hate about eXtreme Programming...

(0) comments

When Ideas Ain't Enough



When you're trying to bring about serious process change in an organisation, the most important thing to consider is the inertia. Inertia says that:


A body in motion tends to remain in motion, and a body at rest tends to remain at rest.


Organisations are the same. It's going to take a certain amount of force to make any impact.
Are the staff ready to change? Do they agree that current practice needs refining? Does your postion have enough influence to get the job done? Does Management support the change? If you can get a definite "yes" to these questions then you're a long way ahead. In reality, it's pretty rare to get comprehensive, across the board acceptance, particularly if you're not some high paid business process re-engineering consultant, and just a regular Joe who's figured out that folks around here seem intent on getting it wrong.


The most important and the most difficult task at this point is something that Jim McCarthy taught me - you need a shared vision. Everybody needs to be committed to the process change, and unless everybody is striving for the same goal, then you're going to be in for crazy levels of frustration. There is nothing less satisfying than working your arse off to bring about change, only to have people go back to what it is they were doing anyway. Remember that unless people are totally committed to changing, their default state will be to keep on plodding with what they do.


So how do you get everybody on the same wavelength?

I have no freaking idea.

Complaining a lot doesn't seem to help. Pointing out how wrong existing practices are seems to provoke lots of nodding and "Yeah..."s, but tends to result in people doing whatever anyway. You can build a few key allies this way, but so far, I've never managed to get the whole team on board.


I think this means that it's really, really hard (Either that or I'm a complete spazz. ). It's especially challenging when the current business processes are evolutionary - in that they just stumbled into existence, rather than being explicitly designed.

The other thing that comes to mind is Quinny's post on worker types - If you don't have a critical mass of Value Adding Employees, or too many Value Reducers or Value Syphoners, you're probably in for trouble. Change is really only in the interest of people who value and understand the goals of an organisation. To others it's simply a threat, or a nuisance...

Look, If you know the answer to this one, I'd really love to hear it.




(0) comments

Wednesday, May 28, 2003

Honesty in your profession



An equally scarce notion...

Today, I think there are four types of white collar worker:


Value Reducing
This group of individuals is happy with the notion that they don't have to stay home today and someone is willing to pay them to achieve that. They provide no advantage to the organisation for which they work and wouldn't be missed if they disappeared. Any notion that the organisation for which they work has a goal that should be strived for is void within these individuals. They will typically not only over-value themselves but believe that everyone else is less valuable than they are. These people devalue the organisation not just in fiscal terms, but also in the sheer number of people that they distract, demoralise and generally annoy. I feel for these people, but they should be removed from all organisations.

Value Syphoning
This group of individuals typically think that they are the bees knees. They know what the goals are and according to them they've got great ideas. Often these people get mistaken for Value Adding employees. A lot of the time their ideas will appear quite plausible, especially to those that aren't intimately involved in the problem domain. Usually the failure of their ideas will be relatively minor, usually falling under the radar. When the failure is noticed it will often be identified as an "implementation" problem rather than an idealistic one. Hence the term syphoning. They will remove value from the organisation at a slow pace. Most people won't notice what is going on until it is too late. These people mostly hide in middle management.

Value Retaining
The goals of the organisation are usually irrelevant for the Value Retainers. They either understand the goals of the organisation for which they work but don't have enough competence to help those goals be achieved or they are oblivious to them and go on doing the right thing anyway. They assist the organisation by keeping their eye, and therefore other's eyes, on the ball. Often they are aware of their limitations and behave accordingly. They keep the momentum of an organisation up. They know their tasks and they do them satisfactorily.

Value Adding
These people understand the goals of the organisation intimately. They have ideas about how to achieve the desired results and they want to discuss these with people. They are what makes an organisation change shape. They judge everything on its merits. The best idea wins.

Spare enough thought for the Reducers to understand their predicament in life, and sack them.

Keep two eyes out for the Syphoners. They are are hard to spot, but they are everywhere. They can be useful but you must be aware.

When you get large enough, an army of Retainers will be a good thing.

Invest in the Adders. They are the future.


I appear to have gone on a tangent as soon as I finished the first line... Oh, well!

Monday, May 26, 2003

Honesty in Software


It's kind of like Truth in Advertising - A nice idea...

There's much more value in a message like that in modern software tricks -

Take the metaphor of the progress bar. If your progress bar fills up and does nothing for a while- I start clicking stuff. If there was a big message saying something like "Don't talk to me until this message goes away..." maybe then I'd be more inclined to be patient...

Really important when you're offering big time functionality in the relatively cramped world of a browser.

If I see one more of those "I clicked stuff and then clicked the back button then the forward button and it didn't work" bug reports...

(0) comments
Congratulations to the Blogger mob. It appears reality is true for a few people out there.

I just created a new blog and it said "Don't close your browser or click anything!".

That's fantastic!

Rather than hide behind the aura (is that the fuzzy green thing) of software there is honesty. "There will be a problem if you do this now, sometimes I can't do anything about it, other times I just don't know the answer, but if you do this now it won't do what you want!". What more do you need?

(0) comments

This page is powered by Blogger. Isn't yours?