issues in rapid application development
DESCRIPTION
Describes the issues in Rapid Application DevelopmentTRANSCRIPT
General Characteristics
• Usage of Specialized Support Tools– Visual Development Tools• E.g. RAD Studio XE6
– Application Programming Interfaces (API)• E.g. STL in C++, Java API
– Version Control Tools• E.g. CVS, RCS, PRCS
– Content Management Systems (CMS)• E.g. OpenCms, Joomla, Drupal
General Characteristics
• Usage of Specialized Support Tools…– Pure Simulations• E.g. ASCEND, FreeMat
– Multiple Programming Languages• E.g. Emacs
– Teamwork• E.g. MagicDraw
– Team Scheduling• E.g. schedueit
General Characteristics
• Time Boxing– Development is done iteratively– Each iteration is done in a time box of fixed
duration– Secondary requirements may be ignored in order
to stay on schedule
General Characteristics
• Iteratively Evolutionary Prototyping– Joint Application Development Meeting (JADM)• Generating a rough list of requirements
– Iterative throughout the process• Developers build/refine prototype• Designers review the prototype• Customers tryout the prototype
– Focus group meeting• At some stage exploratory prototypes may evolve into
operational prototypes
Strategy in RAD
• Get rid of classic mistakes• Application of development fundamentals• Proper management of risks to avoid roll
backs• Focus on schedule oriented practices
Dimensions of Speed
• People• Process• Product• Technology
People
• People play the most important role on software productivity and software quality
• The issues are motivation, teamwork, staff selection and training
• Ways to maximize human potential– Staff selection for team projects• Top talent, Job matching, Career progression, Team
balance
– Team organization and motivation
Process
• Process consists of both technical and management methodologies
• A well planned process can help:– Rework avoidance– Quality assurance– Risk management– Customer orientation– Resource targeting
Product
• Development time depends on product size and product characteristics
• Product size– This is the major contributor to the development
time
• Product characteristics– A product with ambiguous goals will take longer
to develop than a product with well defined goals
Technology
• Use of effective tools can enhance the development time
• Choice of effective tools and management of risks are the basic aspects of rapid development
General Constraints of RAD
• The acceptance criterion of deliverables: – “Fit for business”
• All constituencies which can impact requirements must be informed to the development team throughout the process
• Informal deliverables should be accepted by customers and developers– Paper prototypes, Notes of requirements,
Minimum documentation
When RAD works?
• The application is standalone• Heavy use of APIs• Constrained project scope• Performance is not critical• Reliability is not critical• System can be divided into independent
modules• The technology is well established
When RAD fails?
• The application must communicate with existing program
• Minimum resource consumption is required• The system cannot be modularized• Technical risks are high due to the use of
BLEEDING EDGE technology• Higher level of reliability is required
Advantages of RAD
• Early visibility due to prototyping• Greater flexibility due to the developers
involvement in management• Higher user involvement• Reduction of manual coding–Wizards, Code generators, Code reuse
• Fewer defects– Due to the use of third party building blocks
Advantages of RAD…
• Reduction of cost– “Time is money”, Code reuse
• Shorter development cycles– Focus on schedule than economy and quality
• Standard look and feel– APIs and reusable components provide
consistency
Disadvantages of RAD
• Tools can be expensive• Hard to measure the progress– No milestones as in classic way
• Non optimized code• Many defects are possible• Third party components may not provide
required functionality or add unnecessary functionality
Customer Oriented Development
• Not every solution developed is good for customers
• Customer Oriented Development has a big impact on development speed
• Nature of customers vary from project to project
Customer’s Importance to RAD
• User involvement is the number one reason for a successful project– Standish group, 1994
• Easy access to end users is one of the critical factors in RAD projects–Millington and Stapleton, 1995
• Good relation with customers– Improve actual development speed– Improve perceived development speed
Customer Oriented Practices
• Customer oriented practices provide the best way for customer satisfaction
• Categories for RAD purposes– Planning– Requirement– Design– Construction
Criteria for Tool Acquisition
• Estimated gain• Vendor stability• Quality• Maturity• Training time• Applicability• Compatibility
Thank you!