DAR Tool
Problem Statement
There are a gazillion and one web frameworks, platforms, and languages available in the marketplace and it is extremely difficult for companies to make cost effective, timely, and objective evaluations of these technologies. Technology zeal, emotion, subjective perspective, self-interest, marketing hype, and politics have driven a large percentage of these decisions since the inception of the web. The goal of this research is to provide a framework for an objective assessment of current web application technology platforms that is both simple and inexpensive.
We took the results of our research and built a "Web 2.0" tool for your to do your own objective evaluation. The one thing we can't do for you is "weight" the different factors according to your business's need. You may even find that you have additional factors that we did not measure. The challenge with as with other objective tools where you get to determine the weights. It will tell you what ever you want it to. For the sake of giving it a fair shake the authors did the weighting with the context of a brand new company with no existing technology investment and no existing personnel. So the weights we assigned were roughly our valuing the different factors based on an average of the three authors professional experience.
http://www.betterwebapp.com/drupal/?q=dartoollive
The DAR Process
The Decision Analysis and Resolution (DAR) process is a formal method of evaluating key decisions. This ensures a controlled decision process, rather than a reactionary decision process, for critical technology decisions. The DAR process is a support process area for the Software Engineering Institute’s Capability Maturity Model® Integration (CMMI®) level 3 [2].
Application of the DAR process in this framework includes the following steps: define the application profile, identify required and desired objectives, weight the desired objectives, identify possible solutions, ensure solutions meet all of the required objectives, score solutions against the desired objectives, analyze the results, and make a decision.
Define Application Profiles
To evaluate the web application technology platforms, we identified two “real-world” profiles that would likely use these technologies.
Profile 1: Simple Web Application
This application is intended to exemplify the simple functionality that a small office or home office (SOHO) would like to add to their static informational website. Fundamentally, this profile is the first step from a pure static website to an interactive website, which allows a user to fill in form data and submit their contact information.
Profile 2: Three-Tier Database-Driven Web Application
This application is intended to exemplify the standard web application that is common across all sizes of businesses. Examples of some common Three-Tier Database-Driven Web Applications include a social network, shopping cart, blog, wiki, guestbook, or corporate job board. We chose to implement a corporate job board with standard functionality like account creation, login/logout, and the ability to create, edit, and delete job postings. This selection allows comparisons of how each WATP does validation, session management, database CRUD (Create Read Update Delete), security, and paging.
Identify Required and Desired Objectives
Following the DAR process for the analysis of the various platforms, we have defined several required and desired objectives. Each platform must meet all of the required objectives to be considered for further analysis. The platforms will be scored against the desired objectives based on simple measures of their performance.
Required Objectives
- Meets Functional Requirements – The platform should be able to meet all of the end-user requirements for the web application profile.
- Meets Technical Requirements – The platform should meet all technical requirements for the web application profile. This includes requirements such as security, data validation, and database integration.
Desired Objectives
- High Speed of Development – Using the platform, developers should be able to develop web applications quickly, inexpensively, and using as few languages and file formats as possible.
- Low Deployment Cost – The platform should be relatively inexpensive to deploy and operate in a production environment.
- Low Resource Cost – Salaries of developers that specialize in this platform should be relatively low.
- High Availability of Expertise – To reduce risk, a relatively large number of developers should be available to work on this platform.
- High Performance – The performance of the platform should be as high as possible to handle increased user volume and maintain a low infrastructure cost.
- Strong Community – The platform should have a relatively high number of available books, user groups, open source projects, and available online resources.
- Developer Productivity – Using this platform, a developer should have a relatively high level of productivity through available language and tool features.
- Development Tool Cost – The platform should have a relatively low cost of tools required for development.
- Maintainability – The platform should have inherent features that support a reduced maintenance cost.
- Compatibility – The platform should have a relatively high level of compatibility with existing tools.
Weight Desired Objectives
For the sake of demonstrating results, the authors agreed upon weights and assigned them to each of the desired objectives for each profile. Individual measures within the desired objectives were also assigned weights. The weights of the objectives and measures should be adjusted to represent the goals of an individual company or project.
