Posts Tagged ‘Software development life cycle’

Technology for Technology’s Sake?

by Thomas Frasher on June 23, 2009

technology1

A Simple Question: What is the goal of computer technology development in today’s marketplace?

Some will disagree, however my postulate is that technology development in today’s marketplace has the single goal to support business objectives. Without the satisfaction of business objectives, eventually there is no way to fund new development of the technology, and it becomes deprecated in the marketplace and falls into disuse (assembly language application development, dbaseII, basic programming, etc.).

New technologies bring about the following situations:

  1. New products and the space to create new products.
  2. Shortened time to market – new methods and tools usually focus on productivity improvements.
  3. New methods of development, testing, deployment – minimizing the effort to develop, test, deploy and measure results.
  4. Ability to attract and retain employees by offering interesting projects.

1. New products and the space to create new products are created by new technologies. 30 years ago, most development was done in simple languages that didn’t support modern concepts (Assembly, BASIC, COBOL, and FORTRAN). New concepts such as Object Oriented Design and Programming were a future glimmer, but unachievable with the technology of the time. While still used by segments of the engineering community (embedded systems, legacy code), development of those technologies has substantially slowed. Fast forward and we have systems now that are capable of programming themselves, indeed more and more engineers spend their time specifying work flows and behavior, less time “coding” directly, instead using code generators to process the specification into code for the computer to compile and run. Without these new technologies there would be no modern operating systems, few of the modern programming tools would be available and fewer still the programs that people use to operate their businesses.

2. Time to Market is of paramount importance in these days of worldwide competition. The facticity of the worldwide situation is that there are thousands of equally skilled developers that are spread across the world from Arkansas to Zimbabwe, with the ability to work on projects anywhere in the world.  Basic economics dictates the price for the services these engineers are able to offer; more developers will drive the price downward. For a project to be profitable it must be out in the marketplace and “tested” by the audience of users very quickly.  Missing the time to market window significantly increases the space for the competition to effectively compete, reducing the future possibilities available to exploit, an argument for established technology. Sending out defective software can have a similar effect, an argument for new technology.

3. New methods of development, testing, deployment minimize the effort to develop, test, deploy and measure results.  Newer tools provide for increases in both productivity and quality. Not so readily recognized is that new tools and higher productivity result in higher motivation among the development staff.  Getting “stuck” in old technology is a career dead end if you are unable to keep up with new tools and techniques.

4. Ability to attract and retain employees by offering interesting projects: If you are an employer, offering work that is based on old technology, highly skilled developers will recognize that the position is a dead-end from a technology or career standpoint.  This makes it difficult to attract highly skilled people. This translates as the need to hire lower skilled or otherwise less desirable employees.

Even more difficult to manage is the developers career’s concerns if the business is based on older technology.  Failure to care for that concern will result in employee concerns becoming threats (employees abandoning their positions for new positions).

The downside to staying with old technology for too long is that is a dead-end path.  The facility provided by the language will quickly be outpaced and the development path will be limited by the structure available from the tools.

On the other hand, jumping from technology to technology without completing the business objective raises costs and prevents the satisfaction of the business concerns.

A fine line must be drawn and closely managed with respect to the usage of technology in the business environment.

As with most things it will depend on the business objectives and constraints.