Sunday, August 29, 2004

Technical Supports for Software Development Life Cycle

There are several aspects in software engineering that do not get enough attentions in software industry. I believe consulting opportunities exist on those places, software solutions may be welcome from vendors, and more books are needed to educate developers and managers.

(1) Project Automation: version control system set up and administration, push button build and scheduled build implementation, build and unit test integration practices, build, deployment and integration test consolidation. Project automation should also be more closely integrated with project management
(2) Release Management: there is a need to help vendors to package software components in different ways to support different business engagements. A different approach is features enabling or disabling. This is an orthogonal concern, and should be released from the system developers.
(3) Deployment Management: solutions are needed for carrying out flexible deployment of software for various clustering requirements and for a standalone case.
(4) Issue Management: it can be divided into internal issue management and customer issue management. Software exists for such solutions, but setup, administration and education should be emphasized in the skills set of a developer.
(5) Patching and Upgrade Management: patching should also be an orthogonal concern, and a solution is needed for major software development paradigms. Leading vendors have powerful software upgrade management solution, such as versioning, internet-based upgrade etc., but they are not well understood in the industry.
(6) License Management: there are two issues here, one is licensing terms enforcement for installed software; the second is to easily change license models for packaged applications. Both of them are critically important for software providers. Developers should be released from messing codes for licensing management with those for business logic.

There are some others. But those are issues encountered by software vendors very frequently, and good solutions are not always presented. For software developed in Java, some of those issues are addressed by Bugzilla, Jira, and complicated Ant and Maven scripts etc., and solutions for others involves architecture concerns. More unified and steam-lined solutions may benefit all parties in the industry.

Project Automation from pragmatic programmer’s toolkit and Beyond Software Architecture from Martin Fowler’s signature series are good (and only) books on those topics at this moment.

0 Comments:

Post a Comment

<< Home