Monday, March 11, 2013

Plague about software and its Development Process

Plague about software and its Development Process



There is a common plague about development process.


Software is fast in the beginning, and becomes slow progressively.
Development is fast in early days and becomes very slow progressively.


Software does best at user, but adding new features takes long time.
Any changes to existing software makes it break at many places.



There is single reason for this phenomenon.
With wrong choices of technology, changes and ambitious features, internal state of software becomes "complex" beyond manageable.


There is simple fix to this,
Simplify software everyday through continuous refactoring.
Being agile is to maintain internal state of the software to "simple" things.

6 comments:

  1. The only challenge in doing so is managing PMG. You never get special time for re-factoring...

    ReplyDelete
  2. Very well said Sir :).
    It is very important to revisit the code and see where all we can simplify things. Writing modular code is one thing (very important aspect and the foundation) but maintaining it, is challenging and inevitable

    ReplyDelete
  3. Totally agreed... also in times of crisis one should resort to water sipping theory... recall it so vividly from our Asterix days!

    ReplyDelete
    Replies
    1. Most things I learned, are from Asterix days. :-)

      UI always find 29th version of change...
      90+% of time is just spent in UI changes...
      and core value for which customer may buy in spite bad UI is often forced to under-serviced.

      World is same every where, and developers never learn to stop being frustrated or learn common patterns.

      It is important to choose what you do when you have a control ;-)

      Thank you for reminding Asterix, I love those happening days with all.

      Delete
  4. But the architecture have to be such that, the UI changes could be accommodated seamlessly. UI changes and workflow changes are inevitable at any stage of software life cycle. Architects are to support that only. The person who is facing customer and bringing business should be given priority. Development is not for developers, it is for to support business. If we say those who are facing customer are not doing great job, then we should be bold enough to go out and do their job as well.

    This is just my opinion. It may conflict, do not wanna disrespect or hurt any one else's feelings or point of view.

    regards
    Aniruddha

    ReplyDelete