Sunday, August 24, 2008

The Trials and Tribulations of a Software Developer

There are an almost insane number of factors that a computer programmer must consider as a part of their day.

A 'simple' web developer utilising mysql, php, javascript, css and html. is moving between *5* different syntaxes on a minute to minute basis, the typical development target for web development these days is IE 6, IE 7, and the most recent versions of Safari and Firefox/Mozilla.

That is effectively 5 languages (for some definition of the word) focusing on 4 noticeably different platforms, with different quirks and tricks.

at the same time the programer must be aware of the layout and design of the database, the layout, design and future goals of the code base, the possible ramifications of the changes they are making on those goals, on the existing codebase.

Also they must consider the security ramifications of the decisions they are making as they go,

They are usually working with code written at least in part by other developers in the organisation with skill levels that vary, they will frequently be working with third party libraries and API that vary in quality and ease of use and they often have to deal with features that must be implemented on short notice or with limited initial research time available.

When they actually write code they must keep in their heads the design goals of the specific problem they are trying to solve, the best way of fitting those goals into the overall design goals and methods of the larger codebase and the limits on the resources that they have available in terms of browser CPU usage, bandwidth, database access times - *and* they have to have formed an opinion on the best way of solving the problem within those limitations.

and..especially with web design...the result must look good.

Being a good developer is about achieving Context and Clarity at each step of the process, concentration focused on the goal, but maintaining awareness of the complexity that surrounds them, allowing it to guide, without letting it distract them.

With all this to consider it is, quite frankly, astonishing that they can bring themselves to take the risk of writing any code at all.

No comments: