Something has been on my mind recently. An annoyance, if you will.

For the past year or so I have been immersed in the commercial software world at the exclusion of all else. A world where requirements are deliberated upon, argued over, eventually signed off, and then software is written at breakneck speed, to the lowest cost, within unrealistic deadlines.

It’s all so wrong.

By contrast, in both the “open source” and “self build” worlds, there is no budget and no strict deadline - things tend to take as long as they take, and approach the lofty goal of “being as good as they can be” (witness the performance and stability of Apache versus Microsoft IIS).

It’s not the whole story though. The developers who work on commercial software are often just as talented and driven as those working on non-commercial projects. The difference of course comes in the time allowed to complete a job. Capitalism dictates a competitive market - where invariably the lowest bidder wins - and a low bid means a short timescale. No time to do as good a job as you might have.

It’s a difficult balance. As a professional developer, you often find yourself weighing that which is “good enough” with that which you would be personally satisfied with. “Good Enough” wins far more often than it should.

I can’t help feeling that the entire situation is caused by the prevalent mentality of the market. The cheapest option. The lowest bid. The shortest timescale. Of course when things go wrong it might be tempting to remind a client that they get what they pay for - but you do not. Marketing suicide.

By the same token - as a developer - you wish for projects where the client appreciates the knowledge, experience, and commitment you bring to their project. Where they appreciate the value and skills that they otherwise would not have been able to call upon.

Of course, knowledge, skill and experience is only of value if your opinion is sought.

Categories:

Updated: