I had cause to have another rant at work today. A project my team have been working on, and in which I haven’t been involved for a few weeks, was released last week for preliminary testing.
It was released with the full knowledge that not all of it worked. It was a “Let’s get these two systems together and see if they will talk to each other” kind of thing. An attempt to find out whether there were core incompatibilities. OK so far. I don’t have a problem with that.
But today I discovered that at least one part of the system doesn’t even compile! Now, as a professional developer I find that to be inexcusable. I know that on the first pass not everything will function correctly, particularly with a project as complex as this one; but to release a file which doesn’t even compile! I was staggered. I practically saw red.
A little background information may also help to understand my anger:
We, as a company, inherited this code from another company who were, quite frankly, not very good at this kind of project (they have since abandoned Java/JSP projects to return to their core business — which they do very well). Moreover they were especially bad at managing the code. Because of this there was an aura of distrust emanating from the client which we inherited. This made it very difficult to introduce new ideas, suggestions, and particularly new processes.
For the past 18 months I have been trying to build our reputation as professionals who can deliver what the client wants, without any of the code management based problems the last lot had. This has taken a long time. Almost exactly 12 months ago we had a set back when I delivered a release which didn’t compile, this at a time when we were doing daily releases to try to meet a deadline. It made me look and feel like an ass. It set back the company’s reputation with the client somewhat, particularly the clients IT department who mostly come across as olde worlde mainframe stalwarts who can’t be doing with this “new fangled java stuff”, and could be heard muttering “this lot are as bad as the last lot.”
So I changed our process and since then I have never released code which doesn’t compile. And I’ve done more than 80 releases since that day. Oh sure there have been bugs, stuff that didn’t work, etc. But you have always been able to actually run the code to test it.
On the back of this confidence building, I have been able to get the client’s IT guys to agree to changes to the system, to configuration, etc. which we knew were for the best, but which in the past have been strongly resisted, often with no technical reason, other than an implied (sometimes explicit) “we don’t trust you”.
And now this! Boy! I was angry! Anyway, I went for a smoke to calm down, then returned to vent my spleen at great length! I’m still simmering now, as I write this.
I’m sure some people would regard this as “over the top”. Perhaps think me a little too obsessed. After all “it’s just a job”. But funnily enough, it isn’t. Just a job. It isn’t over the top.
I enjoy my job. I consider myself extremely lucky, blessed even, to get paid for doing my job. If I had an independent income, I would still do this job. Maybe not for the same company, but I would still code.
Irrespective of that, what ever I do, professionally or personally, I try to do the best that I can. I really do.
I care. I care about trying my best. I care about taking the time to figure out how to do things properly. I get passionate about attempting to do the right thing to the best of my ability. Rather than making do, or producing something that is good enough.
Don’t get me wrong, I’m not a perfectionist. I’ve been in this business long enough to know that realities of budgets and deadlines mean that one can never attempt perfection. At work and away from work, I don’t expect everything to be perfect, or expect that I will do something right the first time. But whether for clients or family I will always try my best.
And you know what? At work when I’m amongst my colleagues I expect the same from them. I expect that whilst they are in the office, getting paid to do the job they do, they will also try their best. I expect that, like me, they will wish to learn from their own and other’s mistakes. I expect that they would want to improve themselves, so that they can do the next project better.
And every day I am disappointed.
Perhaps I’m a fool.