|
| The
software development business, once the domain of a few advanced technology
companies, is now pervasive. Why? Because software is less costly and easier to
modify than hardware. At first glance
this is obvious: building a software
telephone switch is a lot less costly than the hardware equivalent. But looking more closely, software products
have far more features and are therefore more complex than hardware
products. Software is easier to change,
but this just adds to the level of complexity, especially on the management
side. Software allows us to build products that are more complex.
Each software development project starts with a concept or proposal, and a favourable business case, and ends with product retirement. There's a lot of process in between: Requirements, Project Management, Architecture Definition, Design, Implementation, Build Management, Change Management, Document Management, Configuration Management, Problem/Issue Tracking, Test Case Management, Test Run Management, Customer Tracking. The successful software organization can manage complexity - in both the product and the process. Product: Focus on Strong but Simple Architecture Simplicity and good architecture are the keys to managing complexity and producing good product. Good architecture is a result of understanding the problem, understanding the tools you have to work with, and good design. And there's no substitute for experience. One important component of good architecture is how you use your tools. The C language, for example, has numerous capabilities. Some are good, some are bad. At Neuma, we tend to be fairly strict about how the language is to be used. Not just no "goto" statements, but a whole set of dozens of guidelines that help our developers produce good product. Some examples:
This is a very specific example, but if you have even a dozen clear guidelines explained, it's amazing how much simpler you can make your development environment. Other ways to simplify your product include:
Process - A Reward, not a Burden I love it when developers come to me and tell me that they couldn't do their job without the ALM/CM tools and processes. You'd expect that from CM managers, but often CM is seen as an overhead by developers. And grant it, you'll never hear this until you take away their environment. But if you give them benefits such as:
It's a real sign that they've got a good process and good tools to support them. Good management tools gather accurate and timely data that reflect your processes. Good processes, when supported by good ALM/CM tools, help to ensure productivity and lower administrative overhead. The two work hand in hand. Your ALM tools and processes should be the nervous system of your product development, not a burden. Up-to-date status information, high-level impact analysis, good communication, instant traceability - these are a few of the benefits when tools and processes are well implemented. I've mentioned them before, but some of the key ingredients of such environments are:
The software development business demands that we know our customer. Whether it's a single contractor, an internal customer or a market segment, whether it's a unified voice or an assortment of variant requirements. We need to understand the customer. Many common mistakes are made here:
In the end, it is the flexibility of software that the customer likes. If a good job is done on architecture and process implementations, the flexibility can be realized without exponential costs due to product complexity. Joe Farah is the President and CEO of Neuma Technology and is a regular contributor to the CM Journal. Prior to co-founding Neuma in 1990 and directing the development of CM+, Joe was Director of Software Architecture and Technology at Mitel, and in the 1970s a Development Manager at Nortel (Bell-Northern Research) where he developed the Program Library System (PLS) still heavily in use by Nortel's largest projects. A software developer since the late 1960s, Joe holds a B.A.Sc. degree in Engineering Science from the University of Toronto. You can contact Joe at farah@neuma.com .
Set as favorite
Bookmark
Email this
Hits: 11539 Trackback(0)Comments (0)
|
| Last Updated on Thursday, 26 July 2007 17:57 |



