Software architecture and design
How do we organize the software architecture process in practice?
In typical scenario, when an architect has to create something from the scratch,
starting from business requirements only, there is the most difficult part begins -
how to create (invent) the strategic structure of the future application?
Probably every architect has its own personal way to fulfill the creation process.
Albeit, due to a common human nature we all do it somehow similarly.
As for me, I still use old-fashioned pencil and tons of paper
and can spend days drawing something looking funny or inane:
shapeless figures, lines, arrows, pieces of words, etc.
Those drawings are not intended to be used at all (nobody can understand it, including myself)
it is rather a kind of the brain’s organizing movements of the pencil.
I usually abandon drawing anything standardized, like UML diagram or any other architecture description languages, just because,
- it looks like wasting time, needs to be redrawn many times,
- any change in actual design adds an extra work to redo all docs,
- it seems to be really restrictive to my vision,
as soon as we have something fixed on paper/screen its gets tougher to think out of this box,
and the best solution can be lost.
As a result, any blueprints/diagrams/documents will be drawn post factum when actual design has been already created.
What about using any design patterns, they are stereotypes and do we want thinking by stereotypes?
It is hard to say whether it’s good or bad.
Taking into consideration that any real software system
contains a lot of nested subsystems, more or less coupled,
every each subsystem/layer can be (and ideally must be) designed independently, nesting as deep as a single class,
so this iterative process may be very long.
And really big problems begin when business requirements are evolving in parallel…
Where the golden line when it is a good time to start coding?
If the signatures of interfaces are changed afterward
then its a big pain and you may look like a very bad architect…
Would you like, guys, to share your thoughts and experience?

Comments»
No comments yet — be the first.