Vindication
Many of you know that I worked at a place called Cecil for quite some time. The source of a great deal of joy and a great deal of stress for me for quite a few years.
Leaving a position like that, in a job like that, part of you (the vindictive mean-spirited part of you) kind of hopes the whole place will fall apart without you. That somehow, without your incredible insight/skill/talent/charisma, the whole operation will grind to a screaming halt.
Of course, that didn’t happen, they soldiered on and seemed to go from strength to strength, I was almost offended when (in my absence) they started breaking all the “rules” I’d ever assumed about software development…
- They hired a whole bunch of new developers, fresh blood, and let them loose to write a whole new interface without so much as giving them a specification.
- They did not take the time to “understand” the old code. How were they going to understand the business logic built up over 7 years?
- They created silos, where web development, middleware development and database development didn’t mix, in direct contravention of XP’s mantra “it’s all my code”.
- They relied on the brilliance of one key developer to implement 90% of the complex database access and middleware code, in direct contravention of any CMMI level you care to mention.
- They promoted a tester who had shown little aptitude for development (or even testing) to be “lead developer” against the advice of any management textbook I have ever read.
- They promised to rewrite the whole code base in .Net and make it all web based in a matter of months. They planned few contingencies.
But what really annoyed me is they seemed to be doing well despite all the above! The code was faster because they were no longer tied down to the legacy code, and they could cut corners by leaving out “superfluous” or “confusing” functionality.
As a rare measure of prudence, they ran the new interface side-by-side with the old (classic) interface. Now, I was never much of an interface specialist, I was normally across all aspects of the application, from database to javascript and everything in between, so I can’t take credit for the interface, but I certainly knew how to keep everything going without falling over.
Whenever there was a bug they couldn’t fix, they blamed it on the old developers and “the COM”. They refused to touch “the COM” so they still pay me an exorbitant amount of money to come in every now and again (no more than a few hours a month) to “fix” problems (normally adapting the COM to behave as they expect it to behave rather than how it was designed). When they finally decided to implement error logging they realised with a start that their “perfect” new code was throwing exceptions like nobody’s business.
Anyway, I felt a little vindicated today when I got a sneak peek at some feedback from users. Users were asked to comment on whether or not the old interface should be completely dropped in favour of the new one.
Within 5 minutes of the question being posted on the website, the first response came in: overwhelmingly no. The new interface was crap, users found it confusing, limiting, slow, bandwidth heavy etc etc. Over the next two hours or so, the responses poured in. From users who had faithfully used our software for over 5 years to users who had only just started using it, they all thought the new interface was a mistake.
Forgive me if I gloat, just a little. Maybe, just maybe, all that software development methodology stuff actually was important?
May 19th, 2006 at 3:04 pm
Have to agree with you there Steve, (as one of those old COM developers). The system was designed around Outlook which was somthing that most of the staff were familiar with, yet non of the students. Now considering that students probibly make up 99% of the load on the system….
On your XP comments (and a little off topic) I think there is a time and a place for and XP style of development though. I don’t ever want to go back to the XP styled environment that was available at Uniservices. Things were never confirmed and always in a state of flux. The customer contact side of things only works well if the customer knows exactly what they want. If the customer does not know what they want (which seems to be the case most of the time) I would rather see the customer rarely and be able to hide behind the legal protection of a contract.
May 19th, 2006 at 3:06 pm
I have so much to say, but I haven’t gather my thoughts yet. I feel like ranting too!! Maybe later…
But hey, you hired ‘him’ who so wanted your job as soon as you left…
Oh, ps.. no no… the ex-tester and the person who does the business layer… are both ’senior developers’. there is no dev lead as such. It’s all going to drop on the PM’s desk when the PM has not been given enough authority. Nice.
But still surviving anyway
May 19th, 2006 at 3:07 pm
Mmmm, them poor developers. All their hard work and nobody likes it
Although I do wonder - is it really the devs fault that nobody likes the UI, after all we only did what we were told (um, I mean they).
May 19th, 2006 at 3:17 pm
off the topic…
customers don’t know what they want?! of course they don’t. we dun even know what we want a lot of the times. and we change our minds as we go along…
Those who study consumption on consumer choice making (or something like that) would have heard of this study.. by.. Soloman I think.
Study A - give someone 1 chocolate bar per week, for 3 weeks.
Study B - give someone a choice of 3 chocolate bar of any kind or the same kind… to consume for the next 3 weeks.
Results:
Study A - most people picked their favourite one week after week.
Study B - most people picked a selection of their favourite ones… rather than 3 of the same kind.
So do we really know what we want?
May 19th, 2006 at 11:56 pm
Aww, Craig, you did the best you could of a bad situation ^^
May 20th, 2006 at 12:10 am
Heh, I am not proposing that we all adopt XP completely, but I do agree with a lot of its core ideas (unit testing, peer programming, code ownership).
I think that maybe the Uniservices “XP” was more “we don’t know what we want so we’ll get the developers to make stuff up as they go along”
May 26th, 2006 at 3:38 pm
I want a cup of tea! oh? you dont do that? How about milk? Well I guess I can drink milk instead. What type of milk? Hot milk is what I want! What? you been serving cold milk for 3 years and doing very well in it? Well then, I guess I will take that cup of cold milk.
I often wonder the decisions we made around the system, xp or preplan, is it all that important? Is it just another way to get to the same place? I want to view a public announcement, if it is in my face, I will read it, if it hiding somewhere I will search it, if it is behind 10 clicks I will click it. If it is slow i will wait for it. It’s the service I really want to add to my value chain, not a system or a website.
May 27th, 2006 at 4:51 pm
You’re a strange boy, Doug.