Thursday, August 7, 2008

On Softwareoids

A subdivision of a project into many single-person teams, can often lead to a weird phenomena that can be characterized best as a "human-based software". This is somewhat weird beast, that is usually spawned by assigning a huge project to a single individual. Necessary ingredients to this is (a) having a developer willing to commit to work for more than standard 8h-timeframe ; (b) having a developer lacking a social life (or willingly neglecting it for the sake of work, which he bizzarely considers more "fun").
Facing such person with huge and responsible task, produces the following reaction to given criterias of a task :

a) "It's huge" => "great, i like challenges, and this job is about fun, right ?"
b) "Responsible" => "no problem, if i don't manage to do it properly i can allways stick around the system at all the time (I don't have a life, remember :) ).... and be there to handle it manually if it mailfunctions

Now, reasoning in b), although seemingly courageous, can get everyone in tremendous trouble, not just because of the "golden boy" situation it generates - once that is in production fast, there is no time for it to be rewritten properly, and the person accepting b) becomes your most valuable asset (more than the software).

The main antipattern here is that from software engineering perspective - this had created a hideous beast - a two-headed monster, we might call a "softwareoid" - a code incapable of existence without its maker.

Once in the wild .... that creature can create horrible things......

and that is what this story is all about .....

(to be continued)

No comments: