Friday, February 3, 2012

Dealing With Effectiveness Roadblocks in Software Change Management



In our previous review of major concerns in the practice of software change management, we focused on communication issues and analysis and identification problems. Other problems areas identified in both academic research and the literature of practitioners include effectiveness roadblocks, decision-making challenges, traceability issues and problems with tools. We have already established that third-generation languages (3GL) such as Java, RPG, COBOL and the various C-languages (C, C#, C++) all have characteristics that contribute negatively to the ability of an organization to achieve best results in the practice of software change management.

At this time, I would like to engage in a high-level overview of effectiveness roadblocksin software development and software change management. Software development managers should consider how inadequate testing, poor tool support, hardware and infrastructure inconsistencies and the inherent constraints of direct source code maintenance contribute to developer sluggishness and overall software development ineffectiveness.

Concurrent or parallel development rears its head again as a source of development challenges. It should be cear that no one is suggesting that parallel or concurrent development approaches must be avoided in order for software to be effective. Although, many developers utilizing more advanced tools will suggest that a one person development teamcan accomplish more than teams working in parallel.
Obviously, concurrent development necessitates greater and more frequent communication between developers, business analysts, stakeholders and users. Communication is, of course, a vital and necessary aspect of any development project as previously discussed. Nevertheless, communication is a source of errors, or more to the point mistakes in communication lead to errors. But effectiveness issues also contribute to the problematic nature of parallel efforts. 

Application platforms help deal with effectiveness issues in software change management and software development. A metadata-driven application platform provides software “applistructure” that helps avoid many concurrent development issues. By virtualizing the hardware environment, these platforms leverage metadata to reduce the programming effort. 

Higher level approaches that avoid line-by-line coding are not prone to experience the problems introduced by code optimization. And even if an optimizer is used, readability is unaffected. The pre-compiled and tested capabilities of a platform are essentially pre-optimized.

Expectations for high availability rather than inducing high costs and practical limitations that prevent responsive software change management are better met with an application platform approach which introduces a higher potential for stability, scalability and robustness in finished applications. Application platforms are “maintenance friendly” because software changes introduce less risk. Ironically, change avoidance can ultimately put previously stable software at risk as changes in application environments introduce new unknowns as changes in operating systems, database and other systems inevitably creep in. Those concerned with software change management must pay careful attention to the future-proof nature of application platforms versus 3GLs. A metadata-driven application platform with a repository-based approach will go a long way towards providing the assurance that whatever underlying changes are introduced, the platform vendor will be able to provide a way forward that protects your investment in your applications and allows you to maintain your applications with a minimum of effort..

In parallel efforts, integration architecture is necessarily incomplete in the early phases of a project. Testing errors occur because it is impossible or difficult to in a 3GL to anticipate testing oversights. A more advanced application development platform may be a solution in particular because of the repository based aspects of some application platforms. Also, underlying architecture is part of the platform and not the development effort and so de rigueur testing has already been accomplished by the platform provider.
Other aspects of the project architecture, up to and including hardware  requirements aremore likely  incomplete at the beginning of a 3GL project, which leads to requirement changes on software created by subsequent architectural changes not anticipated in the beginning stages of the lower level efforts.

Source code optimization also relates to effectiveness problems impacting software change management and software development overall. For one thing, optimized source code is difficult to understand. Changes are more difficult because it takes extra time to figure out what is going on with the optimized code. It’s also difficult to pinpoint issues in testing to separate problems in the optimized code. 

Application platforms help deal with effectiveness issues in software change management and software development. A metadata-driven application platform provides software “applistructure” that helps avoid many concurrent development issues. By virtualizing the hardware environment, these platforms leverage metadata to reduce the programming effort.

Higher level approaches that avoid line-by-line coding are not prone to experience the problems introduced by code optimization. And even if an optimizer is used, readability is unaffected. The pre-compiled and tested capabilities of a platform are essentially pre-optimized..

Expectations for high availability rather than inducing high costs and practical limitations that prevent responsive software change management are better met with an application platform approach which introduces a higher potential for stability, scalability and robustness in finished applications. Application platforms are “maintenance friendly” because software changes introduce less risk. Ironically, change avoidance can ultimately put previously stable software at risk as changes in application environments introduce new unknowns as changes in operating systems, database and other systems inevitably creep in. Those concerned with software change management must pay careful attention to the future-proof nature of application platforms versus 3GLs. A metadata-driven application platform with a repository-based approach will go a long way towards providing the assurance that whatever underlying changes are introduced, the platform vendor will be able to provide a way forward that protects your investment in your applications and allows you to maintain your applications with a minimum of effort..





No comments:

Post a Comment