WARNING - this is likley to be controversial. But I aim to promote discussion as much as anything else.
- Seriously, I don't know.
- Because just doing enough isn't going to stand out!
- Because just doing what anyone could do isn't going to stand out!
But isn't that doing unnecessary extra work? Who's going to pay for it?
- The trick is to provide a lot of value for a little extra effort. It's paid for when that work gets you great recommendations and future business.
- Yes, I know there are times when there really is no need to do more than the absolute minimum.
- Yes, often there are other external pressures.
- Yes, often a client may have a limited budget.
- Yes, a client may want a very specific thing and not be interested in it being the best it can be.
- Yes, there are probably lots of other resons not to do this - but I'm being idealistic and this is my blog so I'm allowed.
I saw two options: 1. Work at a reasonable rate and if everything went well end up with something that may be barely acceptable. or 2. Go above and beyond and create something I could be proud of.
I decided that if I was going to undertake the project it was going to be as good as I could make it. This was as much to prove to myself that I could make some thing great in the time available as it was to deliver a great solution.
- the customer was very impressed as what I delivered was better than they had hoped for.
- there were a couple of minor bugs, but because I was there I managed to find workarounds - so no big deal, considering.
- the users of the software were initially wary but after a short time prefered working with the application and didn't want it taken away after the demo. They were also more productive with it.
- the potential customer we wanted to impress, were very impressed.
- I was happy with what I achieved.
- The client was impressed.
- The potenital customers were impressed (and some have already signed some big deals).
- I think, my boss was impressed.
I think so. I wanted the project to succeed and was only interested in being involved if it could be really good. (In retrospect I think I only managed to reach the level of 'barely acceptable' by my standards - but these are very high.) Yes I had to work very hard, but it was better (in my mind) than having just created something average - again.
- Because of the tight schedules I was keen to see how much I actually got done in a realtively short period of time. I was also keen to know exactly how much time I spent on the project. So I recorded (admitedly only in a basic way) how I spent my time.
In my estimation, if I hadn't put the extra time and effort in, the amount I would have got done would have meant that: there would have been some fairly essential functionality not there; the look and feel of the applications would have been much poorer; there would have been more bugs; the last minute changes that were necessary to actually do the demo couldn't have been made. All of which means (by my reckoning) that if I hadn't put the extra effort in the demo wouldn't have gone ahead. This would mean that the sales people wouldn't have had anything to show. They would have had a much harder job convincing the potential customers to but their business in the hands of a system they couldn't even see demonstrated.
No, this isn't a dig at the sales people - it's just an observation that it's much easier to sell something if you can show it working, and working well.
- Making something great was worth it to the business.
- I am actually very clever and can make the applications I always knew I could.
- I REALLY don't want to work to that level again. (At least not without some serious reward* and only if the impact on family life can be minimized)
- Some other things it doesn't make sense to talk about here.
Other thoughts:
- This is only possible if developing for someone who wants to make a great system
- I suspect it would be MUCH harder to create a truly great system without a very itterative process.
- Part of the reason that the client was so happy with what was delivered was "exactly what they wanted" not what they actually/initially asked for. I can see 3 reasons this was possible:
- I had good knowledge of the application domain. (Another reason I was excellently suited to the project.)
- I spent a lot of time talking direclty with the client to confirm exactly what they wanted and discussing possibilities. I suspect that if these communications had gone through other parties at least some of information would have become confused or lost. (Time constraints meant that there wasn't time to formally spec everything prior to development. - For the demo version only. This isn't a good way to build large, long lasting, reliable software.)
- The original 'spec' had reporting as a 'wish list' item. My experience taught me that it was actually essential and internally I promoted this to an 'essential' deliverable. - I was working on the basis that if you're going to be showing & trying to sell something to people who are only interested in the data that comes out the backend it helps to be able to show that data. Not only did I show the data but also put it in nice graphs (which everyone deemed was more than they could hope for - I consider that a Saturday well spent). As I sat in on some of the sales demos, I saw jaws drop in amazement and wonder as we were easily able to show and explain trends in data that no-one had previously been able to even capture. - I suspect that making sales is much easier when you've been able provoke that response.
Greta post!
ReplyDeleteI agree, it is definately worthwhile (sometimes if the situaution is right) to build a piece of software that makes you proud to be the guy who wrote it.
I mean how many times do you write stuff and don't really want to tell people it's your baby?
It is tough though to find these 'perfect' situations where the mix is just right for you, but when they come around you just have to run with it, blow the doors off peoples expectations and push the boundaries of what you thought you could achieve yourself. - sorry bit life coachish.
But it sounds like your project is f***ing amazing, so all the hardwork is worth it!
//craig hogan
web developer
It is a great project. Kinda feels as though I've spent the last few years getting to the point of being able to be trusted with it and be able to implement it.
ReplyDelete