Paper Individual Topik-Topik Lanjutan Sistem Informasi “Rapid Application Development” By: Ivan Jonathan 1501183075 06 PLM Abstract The purpose of writing this paper is to show us about detailed informations regarding Rapid Application Development (RAD). In this paper, I will give complete explanation about the definition of Rapid Development, the RAD tools, the advantages it has, the disadvantages it has, each steps in rapid development, the differences between Rapid Development and Agile Development, also with the real life implementation of Rapid Development. The analysis methodology that I used in the writing of this paper consists of Literature Study. In this method, data and information collection is done by searching informations on the internet and also by studying books and journals related to System Development Life Cycle (SDLC) and Rapid Application Development (RAD) written by Steve McConnell. The result achieved is a paper containing all complete informations about Rapid Development also with the real life example of Rapid Development implementation. Conclusion from this paper is to know what are advantages and disadvantages that Rapid Development has. Also with a suggestion about what things the company must focus on and also to reduce and cover Rapid Development’s disadvantages. Keywords: Rapid Application Development (RAD), System Development Life Cycle (SDLC), Information System, RAD Tools, Application, RAD phase, System, Users. Chapter 1 INTRODUCTION 1.1 Background As the world grows every day, the demand of more sophisticated Information Technology (IT) also increases. We cannot deny that in modern days like nowadays, people grow more addicted to technology, they want anything in their life assisted by technology. Of course, there will be benefits and weaknesses from technology used by people. But I will not talk about it in this paper. What I will discuss in this paper is one of the benefits of the technology used by people in the scope of business world. The business world nowadays is at its highest level of competitiveness. Customer demand has skyrocketed over the past few years. These current circumstances have created the need for companies to plan for better management in all aspects involved in them. Having a structured, integrated, fast, reliable system will provide a great flow of information needed throughout the company and enable them to be more effective and efficient in solving daily business practices and problems. Companies need a system build for their own unique needs which will lead them demanding for custom system on a certain level. System development life cycle is one of the common information systems in today’s business industries. System development life cycle is a structured step-by step approach for developing information systems. The activity of SDLC is to determine the budget, gather business requirements, designing models, and writing detailed user documentation. Here the Software developers take places and fulfill companies Information System needs. Software developers make technological advances, create new tools, followed a process improvement plan, utilized benchmarking, etc. Then several problems caught in minds. One of their core problems is they need it fast. Software developers need to pick up their paces in order to fulfilling their customer demands or else they’ll lose customer trust and they’ll not survive the global rivalries. While we’re having problem on how to produce fast enough, we also need to aware and manage our resources. Resources availabity and quality will also determine the scope of the project, what kind of output they’ll get, including the essence of completion. However, SDLC have many different versions of information systems, follow-up with different steps as well. One of the way to produce is to implement a certain type of speedy software development such as waterfall development, agile development, rapid development, etc. When company demand a product, they need it fast, accurate, and effective. So while we need it fast we need it to be not just accurate but also effective. Rapid application development (RAD) is a software development methodology that uses minimal planning in favor of rapid prototyping. The "planning" of software developed using RAD is interleaved with writing the software itself. Rapid Development or Rapid Application Development (RAD) enable the system development advanced faster. Software developers often having hard times on learning effectives practices, while at the same time the practices they choosed to learn probably not the most spot on effective. This paper will lead readers to understand more on 1.2 Scope The scope of this article is : - The explanation of Rapid Development The Rapid Application Development Tools The advantages of using Rapid Development The disadvantages of using Rapid Development The steps of process in Rapid Development Differences between Rapid and Agile Development Example of Rapid Development implementation 1.3 Purpose and Benefit The purpose of this paper: Provide detailed informations on all about Rapid Development. Rapid Development itself holds some unknown or vague value or vibe regarding it’s on how to...., which is best way to..., how can... etc. This paper provide sufficient and deeper knowledge and more understandable explanations on all about Rapid development and also reduce the gray value inside of it. The benefit of this paper: Start new ways of thinking about Rapid Application Development topic. Many false perpectives, wrong informations, and (as stated before) vague values around this topic. After gaining more knowledge regarding Rapid Development, readers could prepare more and create their own silver bullet to their development needs in form of new method on using Rapid Development, how to pick up the pace by using Rapid Development even more, etc 1.4 Methodology The Methodology that is used in the making of this paper: Data Collection Method: In the process of analyzing the Rapid Application Development (RAD), the method that I used is the Data Collection Method. The types of Data Collection Method that is being used: o Literature Study: In this method, data and information collection are done by studying books and journals related to System Development Life Cycle and Rapid Application Development. Books that I used is written by Steve McConnell and journals that were used was found on reliable source on the internet. I learn and understand the existing system making Lifecycle and how Rapid development method works on managing the System Software making lifecycle. 1.5 Writing Systematic The writing systematic within this report consists of 5 chapters, which are: CHAPTER 1 : INTRODUCTION This chapter provides brief explanation regarding the whole content of this paper. It contains 5 sub-chapters: Background: Background defines the problem of why the Rapid Application Development is important. Scope: Explain the scope of topic that will be discussed in this paper Purpose and Benefit: Explain about the purpose and benefits of the creation of this paper. Methodology: The methodology used to analyze the Rapid Application Development also with system that is currently used. Writing Systematic: Explain how the paper is written in brief details CHAPTER 2 : LITERATURE REVIEW This chapter explains the theories that are related to Rapid Application Development collected from many sources. Various associated sources will also be explained. The theories included are: Rapid Development and its approaches, Application, Information, System, Information System, and System Development Life Cycle. The theories are explained in a brief manner, so the reader has the idea what they are. CHAPTER 3 : DISCUSSION This chapter discussed information about 1. The explanation of Rapid Development 2. The Rapid Application Development Tools 3. The advantages of using Rapid Development 4. The disadvantages of using Rapid Development 5. The steps of process in Rapid Development 6. Differences between Rapid & Agile Development 7. Example of Rapid Development Implementation CHAPTER 4 : CONCLUSION & SUGGESTIONS This chapter provides explanations about the conclusion of all discussions from Chapter 3. Also with the suggestions to reduce and cover up weaknesses in Rapid Application Development Chapter 2 LITERATURE REVIEW 2.1 Definition of Rapid Development There are many definition of Rapid Development from several sources, but I will sum up some that provides the best answer. Based from the book written by Satzinger, Jackson, and Burd, 2002, Rapid Development or Rapid Application Development (RAD) is a collection of development approaches, techniques, tools, and technologies, each of which has been proven to shorten development schedules under some conditions. Based on wikipedia, Rapid application development (RAD) is a software development methodology that uses minimal planning in favor of rapid prototyping. The "planning" of software developed using RAD is interleaved with writing the software itself. The lack of extensive pre-planning generally allows software to be written much faster, and makes it easier to change requirements. This means different kind of development approaches, tools, techniques, and anything else can be mixed and matched depending on the project. In most cases RAD often uses one of the following approaches: - Prototyping: Prototyping is an approach for developing a system where developers and user work together in order to develop a system which partially or fully functional, and most likely the system developed within days or weeks. The prototype application will undergo a number of tests as the requirements of the system are changed. Prototyping approach is the most useful when the developers working with a new technology where the capability of the technology are unknown or not fully understood. The prototype can be a throwaway system or fully usable system. A throwaway system can be used to develop the real system by salvaging which part of the function of the throwaway system that meets the requirement. And for the prototype to be a fully usable system, the prototype itself will be gone through number of revision and debugging. - Spiral Development: Another way to quicken the system development. The spiral model is using a risky approach where a software projects is divided into smaller projects where each projects handles one or more major risk until every major risk are being handled.. By risk it defined as a not fully understood requirement or architecture or as a potential problem with the technology or performance of the system. The idea of this approach is to begin the development of the system on a small case where the risks can be identified, developed, and verified before planning and committing to the next iteration. After that, completing each of the iteration brings the projects closer to a fully functional system. Checking after each of the iteration providing a means of controlling the overall risk of the project. Major problems or challenges will most likely surface early in the project and so to provide the potential to reduce the total cost of the project. The disadvantages of the spiral development approach are on its complexity. These types of projects are more complex to manage because many people may be working on a number of different parallel activities. - Extreme Programming (XP): Under Extreme Programming, the system is given to the users in a series of versions called releases. A release maybe developed using several iterations and should be developed and tested within a few weeks or months. Each release is a working system that only includes one or a few functions that is just a part of the whole system. XP includes a number of activities where the user feedback are documented using an object oriented model called the class diagram, and the release is developed over the course of several iterations. A set of acceptance tests for each user story is then developed. Releases that pass the acceptance tests are considered complete. XP provides the continuous testing and integration of different software modules and components while supporting active user involvement. In addition, XP often using team programming where two programmers work on the same workstation. Small team of developers often work in a common room where workstations are positioned in the middle and workspace for each team member is provided around the perimeter. Developers are usually prohibited from working too much or more than 40 hours in a week in order to avoid exhaustions and mistakes that often occurred because of fatigue. 2.2 Definition of Application Based on wikipedia, Application software is all the computer software that causes a computer to perform useful tasks beyond the running of the computer itself. In other words, Application is a software that runs on electronic devices, consisting of a series of procedures and operations to produce a desired output. 2.3 Definition of Information Information refers to an organized set of data that is meaningful or useful to some or specific receiver. (Rainer & Cegielski, 2011). Information is data that have been perfected and organized through processing for intelligence purposes (Whitten, Bentley, & Dittman, 2004). Information has to possess several characteristics: 1. Relevance: the information should be related to the decision to be taken in order to achieve the set goals. 2. Accurate: information should be reliable. 3. 4. Punctual: the information must be received in a timely manner. If the information is not received on time, then that information has less or no meaning at all. Completeness: information should be able to provide a complete picture of an issue or to provide closure. 2.4 Definition of System A system is defined as a collection of interrelated components that function together to achieve an outcome (Satzinger, Jackson, & Burd, 2010). System is a set of components, which implement the requirements for modeling, functions, and interfaces (Mathiassen, Munk-Madsen, Nielsen, & Stage, 2000). The system has three main components, so that the system can function or interact properly: 1. Input: involves the capture and assembly of the various elements that enter the system to be processed. 2. Process: involves processing or transformation that turns inputs into outputs. 3. Output: involves the process of transferring the elements that have been processed through the stages of transformation, resulting in a desired result. 2.5 Definition of Information System Information system is defined as collections of interrelated components that collect, process, store, and provide as output the information needed to complete business tasks (Satzinger, Jackson, & Burd, 2010). Information system is an arrangement of people, data, processes, information presentation, and information technology that interact to collect, process, store, and provide the information output needed to support an organization (Whitten, Bentley, & Dittman, 2004). There are many types of Information Systems: 1. Customer Relationship Management (CRM) System: A system that supports marketing, sales, and service operations. 2. Supply Chain Management (SCM) System: a system that integrates products, product development, acquisition, manufacturing, and management of inventory. 3. Accounting and Financial Management (AFM) System: a system that records accounting information to produce financial statements and other reports used by investors and creditors. 4. Human Resource Management (HRM) System: a system that supports tasks associated with employee work, study, allowances, recruitment and training 5. Manufacturing Management System (MMS): a system that controls internal production processes, which transform raw materials into goods. 6. Knowledge Management System (KMS): a system that supports storage and access to documents from every part of the organization or company. 7. Collaboration Support Systems (CSS): a system that allows the distribution of tasks to individuals and groups geographically. 8. Business Intelligence System (BI): a system that supports strategic planning and executive decision-making. 2.6 Definition of System Development Life Cycle The System Development Life Cycle (SDLC) is a way to plan and implement an information system in an organization. The SDLC has four major phases within this cycle, which are planning and analysis, design, implementation, and maintenance. The four phases identify the scope of the new system. The phases help understand and documents the business needs and processing requirement of the new system (Satzinger, Jackson, and Burd, 2009). The phases also design the solution system in regard to the requirements defined and decisions made during analysis (Satzinger, Jackson, and Burd, 2009). The phases build, test, and install the reliability of the system, and it keeps the system running productively (Satzinger, Jackson, and Burd, 2002). - - - These are the four phases of the SDLC: Planning and Analysis: conducting analysis, proposes alternatives solutions, describe costs and benefits and submit a preliminary plan with recommendations. Defines project goals into defined functions and operation of the intended application. Analyzes end-user information needs. Design: Describes desired features and operations in detail, including screen layouts, business rules, process diagrams, pseudocode and other documentation and coding. Implementation: Brings all the pieces together into a special testing environment, then checks for errors, bugs and interoperability. And the final stage of initial development, where the software is put into production and runs actual business. Maintenance: During the maintenance stage of the SDLC, the system is assessed to ensure it does not become obsolete. This is also where changes are made to initial software. It involves continuous evaluation of the system in terms of its performance. Chapter 3 DISCUSSION 3.1 The explanation of Rapid Development Rapid Development or Rapid Application Development (RAD) is a programming system that enables programmers to quickly build working programs. In general, RAD systems provide a number of tools to help build graphical User interfaces that would normally take a large development effort. Two of the most popular RAD systems for Windows are Visual Basic and Delphi. Historically, RAD systems have tended to emphasize reducing development time, sometimes at the expense of generating efficient executable code. Nowadays, though, many RAD systems produce extremely fast code. Conversely, many traditional programming environments now come with a number of visual tools to aid development. Therefore, the line between RAD systems and other development environments has become blurred. Each one of these tools and methods is fine as far it goes, and each can cotribute to increased development speed. But to provide full benefit, each must be orchestrated as part of a full-fledged strategy. No one of them applies to all cases. And no one of them can measure up to certain other practices that are not commonly thought of as rapid-development practices but that nonetheless have profound development-speed implications. Rapid development is a generic term that means the same thing as “speedy development” or “shorter schedules.” It means developing software faster than do you do now. 3.2 Rapid Application Development Tools There are many types of tools that are used to fully get the benefits of Rapid Application Development, such as: a. Cross-Platform RAD Tools: Accelerator Development Solutions provides end-to-end RAD generation and other productivity frameworks for C# and for cross platform support C. Alpha Five: A rapid development tool for building database driven web and mobile tools based on HTML5. AppFlower: A RAD platform allowing to build Business Applications working on every devices. Code Blocks is a cross-platform C/C++ RAD IDE using wxWidgets; the latest developmental builds have a built-in form designer wxSmith, so it's similar to Embarcadero C++ Builder and Microsoft Visual C++/MFC now. DaDaBIK is a software written in PHP aimed at quickly creating a CRUD (create, read, update, delete) database front-end or a simple database-driven application without coding. The DBMSs currently supported are: MySQL, PostgreSQL and SQLite. b. Cloud-Based RAD Tools: AppFlower is a cloud based platform to develop Business Applications without hand coding. Coghead (is out of business as of 2009) Intalio|Create is a rapid application development platform for enterprise class web and mobile apps. Mendix is an enterprise application platform that facilitates the building, deployment and integration of web and mobile applications. nuBuilder is an open source, browser based database development tool which stores all forms, reports, data and any custom code in MySQL and displays the content dynamically. With a tool available for converting from data, forms and reports from MS Access. c. Desktop RAD Tools: Accelerator for .NET provides end-to-end RAD generation and other productivity frameworks for .NET, including support for MVVM, WCF, and WF. Qt is a cross-platform application and UI framework. It includes a cross-platform class library, integrated development tools and a cross-platform IDE. C++Builder Clarion is a data-centric Advanced Rapid Application Development (ARAD) tool featuring roundtrip code generation that preserves all of your own hand-written code while allowing you to re-generate your application as often as needed. It provides reusable metadata to quickly create "corporate quality" applications to manage business data Code::Blocks Delphi d. Database RAD Tools: AppFlower open source application builder using Propel with a visual designer for Model Add/Edit/View. Base One Foundation Component Library (BFC) is a RAD framework for building .NET applications using SQL Server, Oracle, DB2, Sybase, and MySQL databases. Clarion is a data-centric Advanced Rapid Application Development (ARAD) tool featuring roundtrip code generation that preserves all of your own hand-written code while allowing you to re-generate your application as often as needed. It provides reusable metadata to quickly create "corporate quality" applications to manage business data CodeCharge Studio is a visual rapid application development environment for web-based database driven application development. CodeCharge Studio places emphasis on code generation technology to provide ASP.NET, PHP, JSP, Servlets, ColdFusion and Perl language support. e. Web-Based RAD Tools: Active Agenda's code generator is a RAD development framework using XML specification files and the PHP development language. Alpha Five is a commercial RAD development environment for both client and web-server based database driven applications. This tool is typically classified with commercial packages such as Microsoft Access and FileMaker. Alpha Five has, in the last few years, evolved into becoming a real alternative to PHP, Visual Studio.net and Ruby for building database driven web apps, but in a lot less time because its RAD component approach. AppFlower is a very rapid application development framework for creating enterprise application without the need of coding. Advanced users can extend AppFlower applications using PHP, the Symfony framework and ExtJS. BFC is a RAD framework for both client and server-side development in the .NET environment. CakePHP is a RAD development framework using the PHP development language. Caspio is a platform-as-a-service framework that uses wizards instead of coding for RAD. 3.3 The Advantages of Rapid Development Rapid Development holds many advantages, these are the full explanations: - - Faster Delivery Time: The primary advantage of Rapid Development is a faster development life cycle, and a better turnaround time of the software product. This is achieved by rapid prototyping, and by using automated tools like Computer Aided Software Engineering or CASE tools, that enable the developers to re-use previously generated codes, thus saving the time needed for manual coding. Lower Cost due to Reusing Existing Items: Rapid Development involves the use of existing reusable components, leading to a lower cost of production. Automation results into a lesser number of resources being required for the development of the software. - - - - Lower Maintenance: According to statistics, 65% of the IT budget in a company is spent on the maintenance of already existing systems. Updating these traditionally developed software is usually a very tedious and time-consuming process. Rapid Application allows for software solutions to be built in a way that facilitates better maintenance and upgrading of applications. Better Project Management: In Rapid Development, there is active participation of the management, the development teams, as well as the business owners and end users. As a result, there is a better collaboration between all stakeholders, and hence, a better understanding of the client requirements and expectations. Also, the project receives better visibility and support from the management. Reduced Risks: Because of the iterative approach and prototyping, testing and integration of end user feedback happens at each stage of product development. Hence, the end product has lesser number of changes and defects, thereby minimizing the risks involved in the project. There is little or no testing effort involved. Better Quality: Although the Rapid Development process may imply some compromise in terms of scalability and the range of features in the product, it still leads to a better overall quality of product being delivered. Rapid Development enhances the product quality by meeting the requirements of the customers, and by providing a considerable reduction in the errors due to the use of automation tools and prototyping. Errors and omissions are detected in the early stages of development, thereby preventing any extra effort or cost. 3.4. The Disadvantages of Rapid Development Depends on strong team and individual performances for identifying business requirements. Business Requirements are essential in rapid development project. It affects the business cases, and the next steps. Only system that can be modularized can be built using Rapid Development. So not all system will be fit to use Rapid Development. Requires highly skilled developers/designers. To execute all steps in Rapid Development need developers/designers who have high skill and experience a lot in System Development Projects. Too high dependency on modeling skills. Since the modelling skills are very essential, slight mistake will have great negative effects on the Rapid Development Project Requires high budget. Because of the cost of modeling and automated code generation is very high, implementing rapid development needs a lot of money. So, rapid development cannot be applied to cheaper projects. Product may lose its competitive edge because of insufficient core functionality of the rapid development project and that may exhibit poor overall quality. Programmers of the project are required to work in pairs (which may be difficult for some developers). There is no up-front “detailed design”, which could result in more redesign effort in the long run. The business champion attached to the project full time can potentially become a single point-of-failure for the project and a major source of stress for the team. Need the commitment of both customer and developer to complete a project. Otherwise Rapid Development project will fail 3.5 Steps of Rapid Development 1. Requirements Planning phase – This is the phase where the system requirements are discussed, determined, and it combines elements of the system planning and systems analysis phases of the Systems Development Life Cycle (SDLC). Users, managers, and IT staff members discuss and agree on business needs, project scope, constraints, and system requirements. It ends when the team agrees on the key issues and obtains management authorization to continue. Example: IT departments of company hold a meeting to discuss the company’s new system requirements. After 3 hours of intense discussion, they agree to make the new system web-based and using cloud computing. 2. User design phase – during this phase, selected users interact with the systems analysts in order to develop models and prototypes that represent all system processes, inputs, and outputs. The Rapid Development groups or subgroups typically use a combination of Joint Application Development (JAD) techniques and CASE tools to translate user needs into working models. User Design is a continuous interactive process that allows users to understand, modify, and eventually approve a working model of the system that meets their needs. Example: a group of selected users are invited by the IT department of company to test the new system, they are ordered to give conclusions and suggestions about the system’s benefits and weaknesses. Then the results will be used by the system analysts to fix and improve the system, so that it will give benefits to users. 3. Construction phase – this phase focuses on program and application development task similar to the System Development Life Cycle (SDLC). In Rapid Development, however, users continue to participate and can still suggest changes or improvements as actual screens or reports are developed. Its tasks are programming and application development, coding, unit-integration and system testing. Example: using the data from the user design phase, programmers code and construct the system based on users suggestions, like: the system must have username and password recovery system, etc. 4. Cutover phase – this final phase resembles the final tasks in the System Development Life Cycle (SDLC) implementation phase, including data conversion, testing, changeover to the new system, and user training. Compared with traditional methods, the entire process is compressed. As a result, the new system is built, delivered, and placed in operation much sooner. Example: the old system requires the authorization of all managers in every business process, based on users suggestions that the old system consumes a lot of time, the progammer cut the authorization process from the system, while still maintaining the security of the process by designing the new system to only require authorization from manager who is responsible of the business process. 3.6. Differences between Rapid and Agile Development Below are the differences between Rapid Development and Agile Development: Agile does not allow prototypes – Rapid was based on designing prototypes and then reengineering them into production quality code (or not as was often the case). Agile projects logically break down the solution into features – the Rapid approach did not do this; instead developers would focus on delivering all the features of the application by first doing it badly and then improving on the code base overtime. Agile teams are democratic. This means that the whole team has a say in the architecture of the solution, but the team is still lead by an architect. In contrast, RAD solutions were 3.7 not based around the concept of a common architecture and thus individuals worked in silos. Agile embraces the concept of contract first development required for either Object Orientated or Service Orientated architecture – Rapid did not acknowledge the realities of designing to interfaces, partially because it preceded the widespread use of these techniques. Agile development team members are independent and self managing. In contrast, Rapid teams are managed by a project manager.. Agile engineering practices (such as test driven development, and continuous integration) are stringent and thorough, ensuring that problems in the design or the code base are highlighted and fixed as quickly as possible, and that the team has the confidence to change the code base without breaking the product. None of these concepts were used in Rapid projects. Agile teams are based around disciplined individuals that remain continually focused on delivering real software. Rapid teams lack discipline, simply because there was no structure to either the process, architecture or engineering practices Agile teams focus on team communication and designing as a group. Rapid teams tend to work as individuals, resulting in unmaintainable and poorly designed code. Agile teams only demonstrate completed work. Rapid teams tend to demonstrate screen mockups, or prototypes, which lead the product owner to question why they now need to wait another six months for the completed product.. Agile teams are inclusive of testers and analysts and user experience specialists. Rapid teams did not traditionally include non technical team members, they also need testers (usually users) to test the system and give the feedback. Example of Rapid Application Development Implementation 3.7.1 Proposed System - VIP Subsystem (Example 1) 3.7.1.1 Overview The VIP subsystem will be designed to provide personalization functionality of the JAMES system. Essentially, the VIP system is intended to maintain a record of the user's personalized preferences and data which may be applied or accessed in any JAMES enhanced vehicle. The settings that the users can manipulate fit into two categories. First, the user can adjust settings on physical devices within the car such as seat position, mirror position, radio channel presets, dashboard light intensity, fuel economy, and climate control. The second group of settings are those which do not have a real-world component. This group will include the database portions of the currently implemented phone book, address book, and related applications as well as extensions to other configurable objects. The VIP system behavior will be almost entirely automatic, leaving its activity transparent to the user. This will lend a continuity to the feel of user's driving experience across all JAMES enhanced vehicles. 3.7.1.2 Functional Requirements The functional requirements of the VIP Subsystem system are to store and retrieve data in an efficient, and flexible manner. In order to accomplish this, the VIP system, upon insertion of the JavaCard, will query the vehicle to get a list of objects installed on the system. Once this list of objects, everything from radio presets to seat position, is returned, the VIP system will attempt to find the best match between what settings are currently saved, and what settings the car requires. After the user has restored his old settings, and makes any new adjustments, the saving of settings will be done without any knowledge by the user. If the user wants to manually save and restore his settings, he will be able. 3.7.2 User Interface and Human Factors - Maintenance Subsystem (Example 2) This system will be used by two main groups of people: First it can be used by an authorized representative of the owner of the car which could be the driver, friend of the driver, fleet manager or someone else. Second, it can be used by the mechanic or some other representative of the garage, such as a manager. For simplicity, in the rest of this document driver will refer to the driver or any authorized representative of the driver, while mechanic will refer to any authorized representative of the garage. The central database, as used in this document is physically several databases, including several legacy servers. These servers will be distributed across separate sites on the Inter/IntraNet. It will be used for long term storage of the maintenance history and possibly other information. See the System Design Document for additional information on databases. The assistant will exist on several different locations. There will be a home assistant for the owner to use at home, an assistant on the vehicle for the driver to use, as well as an assistant in the dealer's garage for him to use. For the owner/driver, the assistant should be simple and easy-to-learn. This is especially important for the home assistant, as users will have only occasional interaction with them. The mechanic will have more frequent interaction with the assistant, so the interface in the dealer garage should enable mechanics to enter transactions quickly and easily. In both cases, users should be protected from making significant errors, as these records are maintained for the life of the car. In terms of hardware, the driver will need a computer and a card reader in his home to download the maintenance applet and view the maintenance history. Software will be needed to interface with the card reader. The mechanic will also need a similar computer and card reader in the garage. In the vehicle, the maintenance system expects access to a touchsensitive screen that can display our assistant and receive input from the driver. A final design goal for the user interface is to achieve the same elegant simplicity of interaction for which Mercedes-Benz vehicles are known. The interface should not appear complicated, nor require extensive explanation. Chapter 4 CONCLUSION & SUGGESTION 4.1 Conclusion The conclusion is that rapid development has faster delivery rate because rapid development allows prototypes which enable the team to discover that there is something wrong in the system in a rather early stage which reduces cost and and increase efficiency. Also, reduced risks makes this method more desirable. because it needs highly experienced programmers to make this method , it has a high budget range. The “Lower Maintenance” aspect of the method gives it another plus not to mention the Better Quality of the software is another plus .But overall, this method is cost and time efficient and has low failure rate since the risks are reduced and ideal for large projects. 4.2 Suggestion The suggestion for the Rapid Application Development is to reduce the dependence on strong team and individual performances. Because there are inexperienced programmers that want to learn and needs guidance about the way how this method works. And I also suggest the company to train the junior programmers so they can take the place of senior programmers in time of needed. The company must also give proper understanding about the importance of the project to the customers, because the role of customers in testing the system and give both positive and negative feedback is crucial. Bibliography Evans, S. (2006, April 18). Simon Evans' Blog:10 Reasons why Agile is not Rapid Application Development (RAD). Retrieved 2014, from EMC consulting: http://consultingblogs.emc.com/simonevans/archive/2006/04/18/10-Reasons-why-Agile-is-notRapid-Application-Development-_2800_RAD_2900_.aspx Marchewka, J. T. (2002). Information Technology Project Management: Providing Measurable Organizational Value. Ontario: John Wiley & Sons Canada, Ltd. McConnell, S. (1996). Rapid Development - Taming Wild Software Schedules. Washington: Microsoft press. Satzinger, J. W. (2010). Systems Analysis and Design in a Changing World. Independence: Course technology. http://undergraduate.csse.uwa.edu.au/units/CITS3200/project/RAD%20Examples.htm Satzinger, J. W., Jackson, R. B., & Burd, S. D. (2002). Systems Analysis and Design in a Changing World. Independence: Course Technology. Whitten, J. L., Bentley, L. D., & Dittman, K. (2004). Systems Analysis and Design Methods. McGraw-Hill. Wikipedia. (2014, February 6). Rapid Application Development. Retrieved 2014, from Wikipedia: http://en.wikipedia.org/wiki/Rapid_application_development . Writer’s Biography Name : Ivan Jonathan Place & Date of Birth : Jakarta, May 25, 1993 Gender : Male Address : Jl.Pejagalan Raya no.65, Jakarta Barat Telephone Num. : 083808500778 E-mail : ivanjonathan93@yahoo.com Education History & Course - 1999 -2005 2005-2008 2008-2011 2011-present : SD Tri Ratna, Jakarta : SMP Tri Ratna, Jakarta : SMA Tri Ratna, Jakarta : Bina Nusantara University, Jakarta