Organizational excellence – Importance of refactoring

January 31, 2011 at 10:51 pm | Posted in Blogroll, Organizational Excellence, Software Engineering | Leave a comment

In software development, refactoring is an important practice to keep the code clean. Some of the aspects of refactoring are applicable to organizations in general and can be useful to get some pointers leading to excellence.

Wikipedia defines code refactoring as “the process of changing a computer program’s source code without modifying its external functional behavior in order to improve some of the nonfunctional attributes of the software. Advantages include improved code readability and reduced complexity to improve the maintainability of the source code, as well as a more expressive internal architecture or object model to improve extensibility.”

The need for refactoring arises because everything about a given functionality is not known to begin with. We know something and we start to code to provide the functionality. As we know more, we keep adding to or changing the existing code. Over a period of time, it starts becoming bloated and complex, disorganized and hard to understand. In refactoring we remove unnecessary or duplicate parts, better organize in different methods and provide meaningful comments. Care is taken to make sure that every increment produces a stable code without compromising or risking the existing functionality.

We come across similar situation in organizations as well. As per the need, we start defining policies & procedures. In addition, written or unwritten practices that work get established. Over a period of time, we come across different scenarios as well as exceptional conditions. As a result, the policies procedures and practices start becoming complex unwieldy and difficult to understand. A time comes when it makes sense to spend time looking at them and trying to simplify and better organize them. If this is done on a regular basis, it keeps them in good shape and easy to use and the efforts required are well worth it.

Such a culture of periodic refactoring has an added benefit. We don’t have to make everything perfect and comprehensive in the first attempt. We can start simple, covering only those aspects that we are sure of. As time goes by, we keep adding and changing. From time to time, we refactor and reorganize. This helps to keep the organizational structures healthy.

Organizations are made up of people. If the individuals keep refactoring themselves from time to time, it helps make the organization excellent. Each of us is guided and in effect controlled by our own assumptions, beliefs and the value system. As long as we don’t review and clean them up from time to time, it leads to our moving in same grooves. Stephen Batchelor in his book “Buddhism without beliefs” has nicely captured this when he says that whatever has happened in the past could not have been any different. However, when we clean up the junk from our assumptions beliefs and values, we can respond appropriately to the external stimuli.

Whatever is true for each person is also true for interactions between different individuals. They also tend to follow repetitive patterns. Refactoring helps. Thus the refactoring within an organization at the level of system structures, individuals and their interactions helps a lot in leading it to excellence.

I would really appreciate any thoughts / experiences from you that either support or challenge what is said above.

Advertisements

Leave a Comment »

RSS feed for comments on this post. TrackBack URI

Leave a Reply

Fill in your details below or click an icon to log in:

WordPress.com Logo

You are commenting using your WordPress.com account. Log Out / Change )

Twitter picture

You are commenting using your Twitter account. Log Out / Change )

Facebook photo

You are commenting using your Facebook account. Log Out / Change )

Google+ photo

You are commenting using your Google+ account. Log Out / Change )

Connecting to %s

Create a free website or blog at WordPress.com.
Entries and comments feeds.

%d bloggers like this: