Enterprise is kind of a confusing term;  generally, an enterprise application is a piece of software that a business can use for their internal dealings.

With the Mobile revolution, this software can be tailored for a mobile device and with the different hardware in mobile devices that can be utilized…well, let’s just say there is a lot more possibilities, more in post two.

Combine the possibilities with Rapid Application Development and now enterprise applications can be tailored to smaller businesses with extreme customization.

Lets start with an overview of Rapid Application Development:

Rapid application development (RAD) is a software engineering process that was developed in the mid-1970s by the New York Telephone Co’s Systems Development Center. This method was developed because some applications would take so long to build, the requirements had changed.

Goals:

  •  Decrease the time taken by the development process
  •  Increase user/client satisfaction
  •  Decrease the cost of development

 

The rapid application development process:

 

1. Requirements Planning

  • Meeting of users/clients, managers, and developers to discuss the needs, requirements and constraints of the software that is to be developed
  • This phase is done when the group comes to an agreement and the managers give the command to continue

2. User Design

  • In this phase, the users/clients are able to see a working prototype or model and give input on new requirements or changes they see fit
  • This phase is repeatedly carried until the users/clients agree upon a model that they feel meets their needs and requirements

3. Construction

  •  Development of actual software
  •  Users/clients are able to interact with this phase, giving input on changes they would like to see
  •  Tasks include: programming and application development, coding, unit-integration, system testing

4. Cutover

  • Includes data conversion, testing, implementation into the desired system, and user training
  • Unlike normal methods, this process is much more compressed, making the software available much sooner

This process model is not the only working model. There are several variations of this model, but those that were just stated are the main four phases.

Characteristics of rapid application development:

  • Prototyping – designing a version of the final product (excluding many features) in a short amount of time, in order to give the client a proof of concept as well as be a tool on which to build on the requirements
  • Iterative development – using short development cycles to create versions of the application with more and more functionality
  • Time boxing – if facing a time constraint, this is the act of putting off certain features until later versions in order to release a working version early
  • Hybrid teams – team members of a company using RAD need to have very broad, yet advanced, knowledge in the different areas of application development. The team members must be able to take on several different roles
  • Specialized tools – RAD companies use a variety of advanced technological tools in order to increase the speed of development as much as possible
  • Management – the management must be very involved throughout the development process in order to make sure the deadlines are met

RAD tools:

  • Computer Aided Software Engineering (CASE) – technology that automatically generates code based on Unified Modeling Language (UML) diagrams or other types of design documents. This was one thing that RAD was developed in order to utilize
  • Requirements gathering tools – programs that aid in the gathering of requirements, specifically UML creation/manipulation software
  • Data modeling tools – programs that can automatically generate data, such as a database of bank accounts generator, which can then be manipulated and tested by the application

 

Reasons for using rapid application development:

  • To save development time
  • To limit the effects of change to the system
  • To have a design made very early that is acceptable to the customer and developers

 

Situations in which RAD would be beneficial:

  • Small projects that can be easily managed
  • Projects with small development teams
  • Teams with a lot of experience with the technology being used
  • The reliability of the software is not a critical factor
  • The required technology is not brand new (over a year old)
  • The application will not be integrated into another system (will run standalone)

 

Situations in which RAD would be harmful:

  • High quality performance is desired
  • The product will be distributed over a large market
  • The product is part of a safety critical system

 

 

Pros and Cons

Pros:

  • Rapid application development greatly increases the speed of the development process, decreasing the time in which the customer has to be waiting for the project as well as saving the software company time and money
  • The quality of these applications may be much greater than using other techniques due to the fact that the customer can have quite a bit more input during the entire development process, not just the requirements phase
  • Development is often at a high level of abstraction, making some components easier to port to other applications
  • The customer can see a portion of the product at a very early stage, possibly reducing anxiety and increasing cooperation
  •  Increased user involvement in every stage
  • A standardized look and feel may develop for the software companies applications

Cons:

  • May lack the scalability that applications developed as full applications from the start may possess
  • The amount of features in the application may be decreased or pushed back to a later version due to the time constraints
  • May be less efficient than standard methods (if code isn’t hand-crafted)
  • There may be an increase in errors and defects due to the speed of the development. This would increase the cost and time greatly
  • There may be unwanted features added to an application due to the reuse of components previously created
  • Depends on a small team of individuals that hold a lot of responsibility
  • The team may not be able to agree on certain areas and may have no final authority to make a decision

Nate Joraanstad

Lead iOS Developer

Myriad Devices



Categories


You Might Also Like