Developers, working to create abstracions
Everyday software development is composed mostly of non scientific related problems, meaning less time working on complex new algorithms, and more doing simple, action-reaction development, like UI, database queries, reports and so on. Meaning that the bulk of our everyday tasks should involve more effort on how to organize and write the code than how to solve a particular problem, thinking more on abstractions and code interactions ratter than the algorithms themselves.
It is like that lazy developer that delivers a simple functionality, like an UI interaction, but through a highly coupled and dispersed solution, with code being written in places it shouldn’t be. Sure it could be said that the value was delivered, but a big amount of legacy code was created in the process, and that is because the developer is focusing on the easy part of the task, the algorithm, ratter than a proper abstraction to define it.
It is easy to make something work, but making it maintainable, that is another story. We should, as developers, excel at creating abstractions. This is our real job.
February 11th, 2010 at 7:47 am
Agreed! But we can`t forget about the other side – the algorithms, etc… It`s very important too, but it`s supposed to be just like that: easy. Ok, just if it`s not an NP-complete problem…
February 12th, 2010 at 2:31 pm
I am not contesting its importance, I am just point out that to solve our daily taks we usually spend more time figuring out where and how to put our solution on the code than on the solution itself.
More often than not, the solutions are trivial, think about it!
Thanks for the comment.