| |
Jtec’s Living Applications
E-business is about change. Every day, we set the emergence of new business models, new competitors, new alliances and new, Web-based business applications, such as exchanges, portals, intranets and extranets. Customers grow stronger, and market conditions become more volatile. Today’s global economy has greater velocity than that of traditional business, reducing reaction time and forcing more real time decision making.
Missing the Mark
Proprietary, prepackaged technologies and integrated application suites offer businesses a core set of predetermined functionality that the vendor, not the client, has deemed as necessary elements for a respective industry or marketplace. A packaged application that delivers expert business vision, an existing data model, a process model and a graphical user interface provides an initial benefit because it can enable a company to get to market quickly. However, that benefit can be short-lived because these applications are often tied to specific or proprietary technologies, standards and a given business model. As result, they can rapidly become obsolete because they do not deliver the flexibility to quickly and efficiently meet the barrage of changes in e-business environments. If the business model or technology never changed, the buyer is safe. However, in an e-business landscape where technology and business models continuously change, there is a high risk of technology obsolescence and significant downstream risk that business changes will outpace enhancements to the packaged application.
There are numerous software components, or limited-scope point solutions, in the marketplace for developing pieces of an end-to-end e-application. These include specialized tools for modeling, business rules, page design, and messaging and code generation. While some of these tools offer good functionality, each typically addresses only one piece of the application development life cycle. Companies have attempted to integrate a number of these solutions in an effort to create a broader development platform for creating e-applications. This solution requires a major commitment to the actual integration, as well as to maintenance, since it puts tremendous reliance on the individual component vendors who offer no guarantees on the evolution of their technology and future integration with other components. Further, the integrated solution is typically tied to a particular technology platform, making it difficult and time-consuming to adapt to new business and technology requirements.
Hand-Coded Software
In e-business, where time-to-market, quality and flexibility are keys to sustained success, hand-coding applications can put an organization at a disadvantage. History has taught us that developing and maintaining code-based applications is not only time and resource-intensive, but also subject to errors- errors in design interpretation, developer interpretation and programming. Using hand-coded development, applications can be slow to come to market. Once it is implemented, a hand-coding application is typically hard-wired to specific business models and technologies. The result is an inflexible system that carries a risk of becoming technologically obsolete and unaligned with changes to the business.
Further compounding the hand-coding response is the lack of skilled programmers. Few, relative to demand, are trained in the latest technologies, and fewer still also possess the business acumen needed to develop and maintain the large number of e-business initiatives under way at most global 2000 organizations.
Attracting, training and retaining a state-of-the-are technical staff are a tall challenge. In addition, most IT shops are familiar with the scenario in which programmers use individual stylistic approaches and nuances in their coding, making it extremely difficult, and, at times nearly impossible, for any other programmer to maintain their code.
Waterfall Development
Traditionally, applications have been custom-built using a waterfall-style approach to development, whereby the IT project team gathers requirements or conducts a needs analysis and then proceeds through stages of design, coding, testing, documentation, training and implementation. This approach has several, well-documented weaknesses. First, the business decision makers are often separated from the development process, so requirements are often misunderstood.
| Development Solution |
Problems for Business |
| Buy vs. Build Evaluations |
- Packaged solutions (buy) are one-size-fits-all and almost always inflexible
- Hand-coding from scratch (build) takes too long and is error prone (high maintenance)
- Neither solution works exclusively
- Both are typically tied to specific technologies
|
| Proprietary, Prepackaged Applications |
- Hand-coding into proprietary technologies, standards and business models
- Building on uncertain foundations
- Inflexible and static
- High risk of technology obsolescence
- Downstream constraints
|
| Integrating Point Solutions and Specialized Components |
- Hard to integrate disparate components; little control of third-party component evolution, which jeopardizes application maintenance
- Proprietary technology constraints
- Hand-coding constraints
- Inflexible – extremely difficult and time-consuming to adapt the components to business or technology changes
|
| Hand-Coded Software Development |
- Difficult to maintain and replicate
- Individual, stylistic programming approaches can be difficult for others to adapt and maintain
- Slow to come to market
- Time- and resource-intensive
- Hard-wires the application to specific business models and technologies
- Inflexible
- High risk of technology obsolescence
- Difficult to attract, retain and maintain skilled programmers
|
| Waterfall Development |
- Business decision-makers are separated from the development process
- Requirements are rarely defined properly; code rarely delivers on requirements
- Delays primary acceptance by users until the end of the project
- Limited client/developer interaction results in required changes at the end of the project, resulting in increased expenses and significant delays in time-to-market
|
| |
Static Applications |
Living Applications |
| Suitable for Application |
Traditional Business |
E-Business |
| Application |
Code |
Living architectural Model |
| Developement Language |
Programming Languages |
Visual modeling and automated construction |
| Buy or Build |
Buy vs. Build |
Buy and continuously build |
| Development Methodology |
Hand-Coding |
Repeatable software engineering process that can increase the predictability and reliability of complex e-application development; drives business and IT collaboration |
| Business Flexibility |
Hard-wired business processes |
Readily adapts to changing business and market |
| Technology Flexibility |
Hard-wired technology; inflexible |
Technology-neutral development; technology-optimized deployment; highly flexible |
|
|