Adaptive software development (ASD) and Dynamic System Development Method (DSDM) are several process models of the Agile method. Where the Agile method is a group of software development methodologies based on the same principles or short-term system development that requires rapid adaptation from the developer to changes in any form. This method was developed because in traditional methodologies there are many things that make the development process unable to succeed. both according to user demands. The concept of the Agile method was coined by Kent Beck and 16 colleagues by stating that the Agile method is a way of building software by doing it and helping others build it at the same time.
Adaptive Software Development (ASD)
Adaptive Software Development (ASD) is a model belonging to the agile approach proposed by Jim Highsmith. ASD emphasizes organizing teams independently, collaborating among individuals, and continuing to learn, both individually and as a team. ASD uses a tool called “time-boxing” – which is an activity that determines a specific amount of time allocated for completing various tasks. When the specified time is completed, the system development will move to the next task, with the hope that most of the critical work has been completed successfully before the end of the entire task.
Adaptive software development work systems:
1. Speculation
• Using adaptive cycle planning. At this stage, the vision and mission of the user for the system to be created, project boundaries and basic requirements are defined to define a series of software increments (software products that are periodically submitted) or that will be carried out in one cycle.
• Using a user mission statement, project constraints such as delivery time.
• After the first cycle, plans are reviewed and adjusted so that the project fits the realities in which the ASD team is working
2. Collaboration
• Includes communication and cooperation between teams but still suppresses individualism. People who are highly motivated to work together are complementary, willing to help, work hard, are skilled in their fields, and communicate problems to produce effective solutions.
• Gather needs with minimized specifications.
3. Learning
At the Learning stage, there are three activities, namely: the customer or end-user providing feedback on the results of incremental delivery, the ASD team reviews the software components to improve and improve the quality of the software that is being made. The building team often feels like they know everything about the project, but that’s not always the case. This process therefore allows them to learn more about the project in 3 ways:
o Focus group: clients and users provide input on the software
o Formal Technique Reviews: The ASD team did a complete review
o Postmortems: ASD team performs introspection on performance and processes.
After the three stages have been completed, the next stage is to launch the product incrementally. What is meant by incremental here is that the product produced is still in the form of software that still needs to be evaluated and given input and if there is an error corrected again.
Dynamic System Development Method (DSDM)
Dynamic System Development Method (DSDM) was developed by a consortium composed of representatives from various vendors and experts in the field of information systems (IS Experts) (Stapleton, 1997). DSDM was born as a response to dissatisfaction with the Rapid Application Development (RAD) methodology with the “quick but dirty” image (Avison & Fitzgerald,
2006). What is critical is that a methodology is not only required to realize a fast development process but must also maintain the quality of the information system being developed.
In DSDM, the weaknesses of RAD which only pay attention to some of the development components have begun to be accommodated. DSDM provides and complements RAD with a framework that controls the process of building and maintaining the system which ensures the success of the iteration process in RAD with tight time constraints and fixed resources. System development does not only use the developer’s point of view but also includes other related parties such as users, managers (owners), and personnel from quality assurance. So that the control and supervision of system development is more objective. This condition also makes DSDM has flexibility in the scalability aspect. DSDM can be used for small to large scale system development.
Process Stages of Dynamic System Development Method (DSDM)
Feasibility Study (Feasibility Study)
At this stage the development team will assess whether the system to be developed is feasible enough to be developed based on the predetermined time and resource constraints. In addition, this stage also includes reviewing whether the DSDM methodology is relevant enough to be used for system development. This stage is carried out as quickly as possible to support the fast delivery of system specifications.
Business Study
At this stage the development team will study the business aspects of the system to be developed. The assessment at this stage is an assessment at a high level. At this stage the business rules that will be applied to the system will be determined. This stage requires a technique of collecting data and information on the specification of system requirements. Interview and observation techniques in traditional methodologies are recommended not to be used, because they tend to take a long time. The recommended technique to use is the JAD (Joint Application Development) workshop. At this stage, it will be determined what main functions will be prioritized to be accommodated in the entire system architecture. In addition, an overview of the development work plan will also be designed. The work plan also includes what strategies will be used in prototyping development. This work plan will undergo refinement during the stages of the development process, along with more and more information on defining system requirements and functional specifications. One other important component that results at this stage is, the definition of the business area. The definition of a business area usually consists of process and data modeling. It should be noted that DSDM is designed to be independent of the process and data modeling technology approach. Both structured and object-oriented approaches can be used in DSDM. The emphasis on this is that when, say, a structured approach is used, the structured approach of process and data modeling must be consistently used. For example, for process modeling, DFD can be used, while for data modeling, ERD can be used.
Functional Model Iteration.
At this stage, information that has been captured during the business study stage will be refinemented. The functional prototype of the system will be generated for evaluation as well. Functional prototypes are what functions the system must accommodate. At the review stage, it will examine how the system should accommodate these functions. The prototype is generated to examine various functional aspects of the system which consists of:
a) Business – How does the system functional fit to the business function that has been determined to be accommodated?
b) Usability – How easy is the system to use?
c) Performance and capacity – Can the system handle a predetermined measure of volume and intensity of transactions?
d) Technique – Regarding the best technique that can be taken to accommodate the functional requirements of this system?
Design And Build Iteration
The stages for designing a prototype that is ready to be sent to the user. At this stage there are at least some system requirements that can be run (accommodated) on the delivered prototype. Gradually, the specification of requirements with priority must have and several specifications of requirements with priority should have will begin to be sent to the user. The initial process at this stage will include the design and development of per-functional areas that have been defined at the functional modeling stage. When the related area can be built then with
soon the prototype is generated and then delivered to the user. However, if it is related or requires other functional areas that have not been defined, a back transition to the functional modeling stage is required to complement the functional requirements of the incomplete areas. In detail, the algorithm design, system interface design, and physical database design will be produced at this stage. All of these designs will quickly be realized in the form of a prototype system. At this stage, testing a prototype that represents the whole system is not the focus of attention, although in some areas it is sometimes necessary to test partially for a particular system design area. In most cases of development, this stage is the stage where for the first time the representation of the system specification as a whole can be used for use.
Implementation
This stage is the last stage of DSDM. At this stage, it includes the delivery of the final product as a result of the implementation of the system as a whole based on the design requirements specifications at the design and build stage. It is at this stage that the overall system will be tested and reviewed for its suitability to the business aspects. In addition, the activity of completing the development documentation and manual for system use is one of the activities carried out at this stage. Ideally, the user is the user who makes the manual. Keep in mind that users here are users who are actively involved in system development, stakeholders who act as users. At the end of this stage a Project Review Document will be produced, the main component of the contents of the document is an assessment related to whether the system development is declared complete because it is considered to have met all the requirements specifications or vice versa still requires a development iteration.
Weakness of DSDM
DSDM is considered weak in terms of programming stages. DSDM does not emphasize in detail the programming aspects. The implication is that there is no control that guarantees programming activities are carried out properly. In fact, it is important to monitor programming activity over tight time frames. At the implementation stage, the program code that is applied is only a series of program code that has just been tested on the prototype. This condition has the potential for failure of the implementation results when applied to the real system.