I try not to bitch about the traps in my job – but I think the singular beef of being a developer is the end-user. I know we are meant to be developing for them, but in the end I think most developers actually program for themselves. They try to produce code that interests them and keeps their short attention spans occupied with a problem.
Unfortunately, CRUD applications don’t offer that – every time a new web app is constructed the cycle begins again – application planning, database planning, database creation and programming. The front end is fun and exciting and presents challenges to get things working and looking right, but the dreaded milestone in any application development comes when you need to produce the back office – the dreaded data-entry section where user input needs to be checked and all kinds of dull interfaces need to be created.
I have to say I think this is the singularly greatest feature about Django – you produce your modules, views and functionality in python – produce a couple of templates and then run a few commands and wham! you have a fully functioning back office, auto-generated, linked and joined datatables with interdependencies ready to go.
Want to move servers or platforms? Not an issue since you can re-generate the database with a single command, it’s all very impressive.
It was this feature that drew me to django in the first place, and probably the first thing I explored once I had set up my first little test app.
I’m not saying anything new here though – all of this can be found on the django homepage – what I really want to talk about is how end-users end up ruining the fun of development.
Perhaps it’s a personal opinion that applies only to me – but I have a feeling programmers are obsessive problem solvers – long-running projects tend to peter out as interest wanes and in the end things are left half-finished because it is the problem that is interesting, not necessarily the execution, programming is a means to an end, the end-user happens to benefit from the operation but ultimately it is the problem that is exciting.
That’s not to say a product shouldn’t be polished and made ready for market – I’m just extolling what I feel is my reason for coding. The fact we have to make a living somehow makes us go that extra distance to add all the boring stuff.
Which is why we need managers, bosses, those-bearers-of-authority that pressure our neuroses to make us produce something marketable. People deride managers that don’t know what they are talking about or have no experience with coding, but in the end they are the ones lokoing out for the product, and quite rightly too – since the programmer sure as hell isn’t…