Economic conditions have changed and enterprises are now taking a fresh look at the methods and tools to effectively build, use and maintain business applications.
Two factors are responsible for that change:
- The recession. The new vulnerability of IT budgets and the consequent strain on IT teams places every company’s line of business at potential risk.
- IT technology platforms have evolved and improved. Today we have a wealth of options when it comes to choosing how we build and deploy business applications.
In particular, the evolution of Rich Internet Applications (RIA), Web 2.0, Cloud computing and Software‐as‐a‐Service (SaaS) now offer new ways for businesses to gain a competitive edge in today’s market.
In‐house and offshore developments on traditional platforms are now recognized as taking too long and costing too much. The challenge facing software developers is how to effectively employ these new technologies to gain a competitive edge.
But business and demographic evolution on one hand, and the recession on the other, put all companies in a unique dilemma:
They need to incorporate these new technologies to compete effectively, but they can’t afford the investment to redevelop or maintain multiple solutions during a transition period.
In addition, attempts to bypass these development constraints through Platform‐as‐a‐Service (PaaS) initiatives are not always ideal and may end up compromising compliance and auditability.
While current PaaS offerings may reduce infrastructure investment needs, they’re mostly targeted at short‐lived solutions (Situational Applications) and are rarely flexible or powerful enough to support the functionality of core business applications. Also, many enterprises are reluctant to have their critical information assets held by a third party somewhere in the Cloud.
The five essentials presented here explain the advantages conveyed by the new breed of end‐to‐end application platforms. These platforms use metadata – pre‐built and pre‐configurable business application engines – to deliver and deploy IT applications.
Following these practical tips should help enterprises improve their ability to deliver solutions that precisely fulfill the needs of business stakeholders – and to do so on‐time and on‐budget.
1. Focus on business functionality rather than coding
Enterprises today are required to deal with increasingly diverse application portfolios and usage types. CIOs are also under pressure to reduce the costs of maintaining the multiple technologies and human resources in their IT environment.
In such an environment of growing IT complexity, IT managers and CIO’s find themselves increasingly wasting time fighting with technology issues instead of focusing on the business goals of their IT projects: Issues such as repetitive tasks that should be automated, and staff complaints about non‐intuitive coding and development tools.
While replacing the existing IT systems could solve the problem, the reality is that reduced IT budgets are constraining innovation at a time when innovations are most needed.
In order to maintain the focus on business functionality then, something more is required. Is technical coding really the best way of developing applications at all?
In the quest to ensure that focus in maintained on business functionality then, enterprises would benefit from platforms that encode raw business functionality into metadata and eliminate technical coding. A metadata driven engine isolates the underlying technology from the application’s business logic, allowing developers to focus on their functional goals rather than technological means.
Using a metadata‐driven approach ensures that IT managers can build and deploy new business applications including highly functional RIA, mobile and SaaS applications, without getting trapped in redeveloping the underlying technology and all it implies for costs and resource requirements.
2. Bring business users into the development process
It’s not easy maintaining the faithful translation of business requirements into an end‐product. While business users may end up complaining they didn’t get what they asked for, CIOs often find themselves dealing with a never ending series of changes to their functional specifications.
Application prototyping is the tried and tested method for ensuring that business demands are met by the application end‐product. However, as budgets get tighter, companies tend to find it easier to cut back on prototyping and QA in order to speed up development and get their applications out of the door.
Application platforms based on a metadata engine can significantly alleviate the prototyping process, make the development cycle more interactive and uncover deficiencies in the application before it goes to full deployment – after which faults become much more expensive to fix. It also means less deficiencies and problems in the code per se.
In addition, as metadata consists of pre‐written complex code, it means that significant and critical parts of the application have already been extensively tested and used.
Fast prototyping enables a better understanding and proofing of requests and concepts. Business users relate better to visual prototypes than algorithms. High fidelity prototypes provide an accurate picture of the application in action – making it easier for developers and users to share and exchange information and perfect their application’s functionality.
When business users and IT teams are able to work together there’s more chance of an application fulfilling the requirements and corporate standards set by the enterprise.
It’s important however, when using a metadata‐driven platform, that the platform has been well tested, including all its pre‐programmed features. By using a proven application platform, new applications gain by inheriting the know‐how of the parent vendor, whatever the experience (or lack of experience) of the development team in question.
3. Standardize skill‐sets wherever possible
Rich internet business applications represent one of the most challenging development processes yet. They involve two clear tiers – a Client tier (taking care of the presentation, interaction logic and some business logic), and a Server tier (taking care of most of the business logic, the data and backend integration). In addition there is a Session tier (the inter‐lying communication layer between the Client and the Server that requires system programming skills).
So, a typical RIA development effort requires gathering and managing a number of different teams to work on the different sides of the application. Multiple teams inevitably mean more chance of bottlenecks and more skilled people‐dependence. More skill‐dependence makes it harder to introduce new developers into a project, and makes losing a long‐time team member more disruptive to overall progress.
Large development teams also make greater work for project leaders trying to ensure that tacit knowledge is shared between the multiple members of each team.
All of these issues can bear down on CIOs and IT managers, forcing them to compromise on the quality, requirements and deadlines of their application project.
Organizations attempting to minimize the dependence on multiple skill sets should therefore consider the type of application platforms that use a single, comprehensive skill‐set for both ends of the application development process – including Client and Server.
Application platforms that are ‘end‐to‐end’ in scope save organizations from having to invest in multiple, specialized teams when developing RIA, SaaS or Full Client applications.
With fewer skill‐sets to manage the enterprise benefits from:
• fewer bottlenecks
• faster development time
• More seamless application functionality
For the enterprise then, this translates into better overall application quality and faster time to market.
4. Ensure you can re‐use existing business logic and functionality
It’s always important that enterprises can carry over previous application investments and existing business logic when modernizing their underlying technology.
Metadata‐based platforms enable developers to modernize their underlying technology while preserving core‐business logic; while even bringing together business logic from multiple platforms into a single new application.
The evolution from Client‐Server based technologies to Web and RIA highlights a problem: Applications developed with hard coded and embedded technical functions cannot be simply migrated to RIA – they require a major rewrite to support the new functionality and richness.
Adopting a metadata platform that can create applications independent of the underlying technologies enables enterprises and ISVs to automatically migrate a Client‐Server application into a RIA, and support multiple deployment modes with minimal cost and effort.
5. Future‐proof your development process by separating it from your underlying platform
What happens when technological changes occur a few years down the line? How do businesses protect their current IT investments and justify new investments?
When an application is developed in hard code, by definition it becomes intertwined and inseparable from the specific technology underlying it. When underlying technologies change, then the application based upon it must be suitably modified in order to continue providing future value to the business.
However, one line of metadata can activate many lines of technical programming code.
All metadata elements are interrelated. So when an organization needs to change business logic they only have to change a few lines of metadata instead of hundreds of lines of code. A metadata‐based platform controls the integrity of the entire application and automates delicate tasks such as program documentation or changes in naming conventions.
Because metadata is by definition independent of the underlying technical programmes and technology, it can exist as a separate entity. So the same metadata can quite easily be used on different platform implementations and technologies whether they are OS/400, Unix, the latest .NET, or even those that will be available ten or fifteen years from now.