Search
 
     
   
   
   
 
By
Dr. R. Srinivasan,
CTO, iCMG, Bangalore
   
  What hampers the success of Software Development?
 
 

 

Introduction of new technology often increases the possibility of making costly mistakes resulting in software failures, warns Dr R Srinivasan


I had mentioned in my earlier article that the definition of "success" in software development depends upon how the respective organization achieves the targets compared to what was planned. Many a times the definition itself is elusive which is illustrated by Sanjiv Purbha and Bharat Shah in their book on, 'How to Manage A Successful Project'. They say that sometimes the Project Manager must be flexible in understanding and communicating what an organization may actually need to be successful in software development, while accepting a lack of success in some other measures (like cost, budget, etc.).

This is because the branch of software engineering demands intellectual activities focussed on solving problems of high complexity comprising many unknowns in competing perspectives. However, in this present era of software driven applications where we are now, software development is destined to be production intensive where success is the buzzword, if the product needs to be competitive in the market.

As mentioned in my last article, in addition to the parameters internal to an organization, there are two distinct external ones that hamper the success of a software development project- they are the customer coming up with requirement changes and the commercial innovation/new technology. According to Purbha and Shah, "because technology is often the enabler of change, IT becomes the work horse for meeting the new requirements". Software Expert Alan Davis, in his paper on "Fifteen Principles of Software Engineering" (IEEE Software, Vol.11, No. 6, Nov. 1994, pp.94-96) mentions that one of the principles is "design for change". Even though it is theoretically accepted, not easy in the real life situation, unless the software architecture planned in the beginning will be able to support this change. Moreover continuous change will result not only in the system becoming more complex, disorganized and may be introducing bugs. On the lighter side to quote Mark Twain, "the only person who likes to have a change is a baby with a wet diaper"!!

Resuming our discussion on the influence of commercial innovation and new technology on the success of software development, we have been witnessing the most striking and rapid changes taking place in computer technology. The change cycle is so frequent that the technology of yesterday becomes obsolete today, thereby introducing challenges in bringing out competitive software products employing state-of-the-art technology. It is indicated by Dr. Thomas Mowbray, et. Al, in the book on CORBA Design Patterns, that as computing technology continues to grow in diversity, complexity and rate of change, it becomes increasingly important to know how technologies relate to one another, and the rationale needed to make good decisions on how fast the developers will pick up for implementation. So, with new technologies comes the potential for costly mistakes leading to software failure.

We are now in the "Internet Age" and in this one of the successful applications is the Internet-based transactions like e-Commerce, Healthcare, Finance, etc., Internet enables the integration and interoperability among the constituent modules within each of these vertical segments; but the question is how successful are we?

Dr. Thomas Mowbray points out that in many organizations the Internet is yet another vertically integrated technology that co-exists with other technologies, but does not effectively interoperate. The Internet-based operations has brought us to a new paradigm shift-namely moving away from the erst while 2-tire architecture to the new 3-tier "middleware architecture" which would enable interaction among the applications that are designed to interface with the middleware. The problem is that there are many commercially available middleware products in the market which are proprietary in nature and so applications developed on one middleware may not be able to interoperate with those on another middleware in the Internet environment unless there exists bridging facility. Moreover the organizations deciding on applications development to suit particular middleware may get stuck under it forever. It may also be possible that such an organization may be needing only 30% to 40% of the capability and services of the middleware and so it will end up paying for the unused portion also.

The solution to circumvent this problem is to resort to developing applications towards a standard architecture like CORBA. To summarize, before going on to describe Patterns and AntiPatterns in Software Development, the truth is that there happen to be many instances of software failures due to influences external to an organization; in addition there are some internal factors that contribute to the success or failure. Brown, et. Al in the book on, 'AntiPatterns, Refactoring Software, Architectures, and Projects in Crisis' put a question to people like us in software Development, "Can you handle the truth? The truth is surprisingly hard to communicate, and often regarded as politically incorrect and undiplomatic. The truth does not make everybody happy".

While we describe the Patterns and AntiPatterns, we will be seeing the problems encountered in communication and documentation, particularly when we suppress the problems because it will be a bad news. Thomas rule says, "Bad news does not get better with time".

(to be continued)

(The author is Chief Technology Officer, Internet Component Management Group, Bangalore and can be contacted at: r.srinivasan@iCMGworld.com)


 
     
Copyright © 2006 iCMG. All rights reserved.
Site Index | Contact Us | Legal & Privacy Policy