Dragging Software Development into the 21st Century

Companies spend billions of dollars every year onhuman resources, which could be used too much
developing their own software applications orgreater effect elsewhere, are absorbed into a
purchasing complex enterprise softwarecycle that could be avoided altogether.
applications. This includes not only the cost ofOne of the highest costs involved in software
software, but the hardware infrastructuredevelopment is the cost of developers. Over the
required to support the software as well. Ratherpast few decades computers have automated
than spending this money on softwaremost industries. Ironically, the one industry that
development, a company should put it to betterhas not benefited from automation is the
use to improve the core business of thesoftware development industry. Writing software
company. That is, the company should beis still a manual process involving monotonous and
focusing on what it is that they are really inrepetitive tasks. Techniques, such as code reuse
business for rather then being distracted byand code generation have been developed over
software development.the years to reduce the workload. However,
Current software development practices fordevelopers are inherently resistant to change and
enterprise applications often result in products thatto anything they perceive as being able to
are too expensive to develop, acquire, implement,"replace" them. Either they do not trust someone
integrate and then maintain. The typical softwareelse's code, or they think they could write better
development cycle starts with a base productcode themselves. For whatever reason,
that is developed and subsequently sold, ifdevelopers wind up reinventing the wheel project
external, or delivered, if internal, to a client. If theafter project and billing for that work. Since
base product is lacking in functionality, thendevelopers are reluctant to utilize tools and
additional modifications must be made to the basetechniques in their own development, they
product, adding to the cost of development. Oncebecome their own worst enemy. The computer is
modifications have been completed, thethe greatest tool ever invented and developers,
implementation and integration phase starts. Thisthe ones that make this great tool work, are
phase has high costs associated with it; usuallyreluctant to take maximum advantage of it.
surrounding customization in order to get theIf there is an industry that should be automated it
software to interface with existing legacyis the software industry. All business applications
systems. Finally, annual maintenance and serviceperform the same basic functions and they
fess are charged, which usually do not includeinteract with a database the same way, doing
future upgrades. Clients are frequently less thaninserts, updates, queries, deletes, etc. They
happy with the results. The softwareinteract with the user through a user interface
development entity is often unaware that theallowing the user to input and retrieve data. The
client is not happy until the next developmentinternal plumbing that ties everything together is
cycle is well under way, at which point it is toothe same. What makes an application unique is the
late and too expensive to address the problems.business rules, logic, and workflows (how the user
This results in an endless cycle where themoves through the application). Ideally there would
software developed for a client continuously lagsbe a tool that would "create" these common
behind the client's actual needs. Financial andfeatures and help "manage" the unique parts.