Monday, July 18, 2011

Fractals and design

So my first releasable app is already a month over my initial estimation. The Android learning curve is taking twists and turns, I am graphically challenged so it takes me longer to design a good icon, blah, blah, blah. Everything mentioned is true but what is interesting is that when it comes to design the challenges that need to be solved behave like fractals.


Or in other words in software design and in lesser extent electronics most problem domains are fractals. Design generally deals with fractals, for instance, to build a single engine one must build hundreds of components, that are built off hundreds of cogs and pieces, that have to have dozens of unique features. And once the engine is built it needs to go into a car/boat/plane composed of thousands of parts that they themselves represent millions of smaller problems each visible only once a designer focuses into the problem area.

Because of the fractal nature of the problem domains and the lack of serious standardization in design principles. software design is notorious for it's cost overruns, widening scope and date slips. In software a huge ten day design effort problem can be hiding behind every aspect of the project. A feature might be impossible to test without setting a ridiculous number of data by hand, a function takes too long to complete and concurrency at that stage requires redesign and so many more that volumes of books are not enough to list them all. Due to the number of unknown factors involved one could say that the model of solving a software engineering problem is chaotic and as such very difficult to correctly predict and estimate.

As software engineers we try to use our tools to accurately model and predict our future but when we actually look at our methods we generally look at the sky, lick our fingers and say hmm... it'll be OK. Only to find ourselves in a thunderstorm of epic proportions a week later. Unfortunately because business and money are also involved very often someone warns us of the coming storm but in an effort to keep our bosses, clients and investors happy we tape his/her mouth SHUT and throw them in the basement. Cause if you hope it will work out, it works out right? Ask any of sailors down at the bottom of the sea.

New methods are being developed all the time but rest assured that every tool in the world can be manipulated to predict good times when contracts full of money are at stake. I mean ask any construction company, they'll tell you: "Don't look at the sandy land we are developing on, look at the nice drawings instead and please give us money." Trust us, we won't go over budget before you are way too committed to pull out. And the world keeps on turning.

Till next time,
Stratos out.

No comments:

Post a Comment