Saturday, December 14, 2013

Maintaining existing software architecture

Evolutionary design is a very hard to tackle task. All of us have been in the situation when joining a new team and wanted to augment an old feature to a new design. It’s really hard to be in sync with other team members. 
Many times when a developer complain about messy code, it’s really because of a lack of consistency in the design. Adding a new feature needs assessment and so does the evolutionary design.

The article by Jimmy Bogard (Curbing long tail design) elaborated on the ‘Law of two’. Meaning only allow at most two designs in your system. Before doing other changes to the design, move all existing features to the new design. If you’re working in small steps, this shouldn't be much of a problem.

Saturday, November 23, 2013

Why we do not document code?

This post led to a hot technical discuss today.


If we’re serious about the piece of code, we have to write some useful documentation. Amazingly, I have noticed among many of my colleagues that the hard part is not coming from laziness! It’s the full understanding of a system/component that makes you feel sluggish to write a decent document for your code.

Some business processes are really complex to rephrase them into human language. Of course, the fear of any misunderstanding gap seems to be the source of all ignorance.