Friday, August 26, 2011

Being agile and technical masturbation

I suggest a great term for those who cannot do without making it more complex than it should be: "technical masturbation". Some people may choose to call it "Over engineering"; however I choose technical masturbation since what they do is satisfy themselves.

This occurs most when people try to make a software too flexible then it should be. Those keep saying they may need to serve in an another format; serve in a different platform/technology; but these never happen.

Requirements and technology changes rapidly; it is our job to be synchronized with them. Business wants development teams to be agile. For this reason, we have been populated our code base with:

  •  interfaces (that has only one implementation and will never change),
  •  design patterns where we do not need them actually (strategy pattern with one strategy)
  •  aspects where actually a simple web filter was enough (debug became harder; great)
  •  targeting high unit test ratios caused unit tests testing only order of method calls with mock objects
  •  useless documents
  •  too many configuration files (that never change)
  •  pages of spring beans; every developer will debug again and again

In order to be agile for business requirements; we should not forget two things:

  •  the language should be agile in nature (see few words on ruby)
  •  the team should be agile which is more important. To make team agile we need to be sure that the code is easily read; understandable by new joiners (where in IT world; recruitment occur more). Sometime it is better to do copy&paste code then a series of design patterns if team says replace all is easier. (and I doubt if it will ever needed.)

Requirements and technology changes rapidly; perhaps a design / software done five years ago is nearly dead and you think it is time to build it again with different technologies. Follow technology and use it; but do not lost yourself inside it; do not be obsess with being too flexible, technology and patterns. Check your old projects; don't you have a great new plan/design for those?


4 comments:

  1. change ur blog theme...makes me puke !! n difficult to read too dude !

    ReplyDelete
  2. This is one of the finest article with good information
    Websphere Training In Hyderabad

    ReplyDelete
  3. being agile and technical masturbation nice posts../.
    Hadoop training in hyderabad.All the basic and get the full knowledge of hadoop.
    hadoop training in hyderabad


    ReplyDelete
  4. Big data and data warehousing related information is always updated to me at hadoop online training in hyderabad. Nice insight on the topic refer the details at
    hadoop online training

    ReplyDelete