Adaptive Software Development Methodologies
Adaptive software development methodologies include software methodologies that uses iterative approaches to deliver small and functional software Iteration packages by utilizing the development team’s abilities (Adaptivesys.com, 2013). This methodologies are aimed at developing software within a short period of time by breaking down the large systems into modules. Therefore this approach focuses on development of large and complex systems through iterative steps to produce these system’s prototype (UKEssays, 2016). The adaptive methodologies help in reducing the long and complicated processes involved during software development when traditional methodologies are used (collabnet, 2018). There are a number of methodologies under adaptive system developments as discussed below.
This is an adaptive system development methodology that provides a project framework that provides the capability to manage and control incremental projects of any kind. This is one of the most popular adaptive methodologies due to its quality productivity and simplicity as well as its ability to wrap up various engineering practices supported by other adaptive methodologies (Johnson, 2010). With the use of scrum methodology during software development, both the development team and the system owner works closely together in determining the system requirements as well as its functionalities. This methodology breaks down a complex system into 30days sprints or iterations where each sprint is began after the functionality has been set. During each sprint, there are several meetings held in a day between the development team and the management in determining what will be done in the following day (TatvaSoft, 2015). These short meetings are referred to as scrum hence the rise of scrum methodology. A diagrammatic representation of scrum methodology is as shown below.
The following are some of the advantages of using scrum methodology during system development:
During development process the decisions made include all the development team which consist of the developers and the system owners hence promoting team work.
This methodology reduces the number of paper work or business requirements documentation due to direct involvement of the system owner during the development process.
With this software methodology it is easy to see the results of the development process due to frequent updates made by the development team on a daily basis hence making it a lightly controlled methodology.
Scrum methodology also makes it easy to measure the individual productivity of each team member due to everyday meetings carried out between the development team and the product owner.
Apart from the advantages of scrum methodology explained above, it also has some drawbacks which include:
Scrum Methodology
With scrum methodology it is hard to estimate the project time as well as the cost to be incurred since some sprints may take long than usual hence causing delays.
This system development methodology is not suitable for large systems but rather it is suitable for small and fast systems.
The methodology also requires experienced team members only in order to be able to complete the project within the defined timeframe.
This is an adaptive system development methodology that is based on the defined business requirements and the development of the user interface of the intended system. This methodology involves the users of the system, the clients and the developers through a series of off-site meetings to discuss the development of the system into its successful completion (Okoli and Carillo, 2012). These collaborative meetings are referred to as JAD sessions. The JAD sessions mainly focuses on the business requirements of the intended system rather than the technical information hence making this adaptive system methodology suitable for any kind of the system. Also considering that this methodology is user-centered, it therefore means that the developer works towards providing a software system that satisfies the need of the clients hence solving the business problems.
With this software development methodology, large amount of the information can be gathered and consolidated simultaneously hence reducing the development period.
By allowing all the participants that is the end users, clients and the developers to be part of the development team, makes it easy to get an immediate feedback about the progress of the system developments. This also makes it easy to solve any arising issue faster without delays during the development period.
This methodology produces very high quality software systems within a short period of time due to direct relationship with the clients and the developers.
This methodology requires a great commitment from the project owners since it requires great effort and time to attend all the JAD sessions during the development period.
Due to significant planning and schedule preparation by the development team, it makes JAD methodology a time consuming software development methodology.
The implementation of this methodology for software development requires highly skilled and experienced person for an effective and successful implementation of the project.
This is a rapid software development methodology. This software development methodology is applied to software system being developed under very unstable environment. This methodology is very flexible especially during the modelling process (Rizwan Jameel Qureshi and Hussain, 2008). It also reduces the cost of gathering software requirements although due to requirement changes at a later stage the cost might be high.
JAD Methodology
XP methodology is guided by four main values which are communication, simplicity, response and courage. It is from these XP values that various practices followed during the implementation of XP projects are derived. These practices therefore include: making plans, conducting small releases, metaphor, having simpler design, refactoring, doing software testing, using pair programming, having a collective role ownership, providing continuous software integration, having 40-hour week time frame, having an on-site customer, and finally meeting coding standards (Umsl.edu, 2018). Basically this software methodology is applicable to a smaller number of well-related team of a maximum of 10 members.
This methodology ensures that the developers are fully committed to the plans and time frames defined for the development of the intended software system. This makes it possible to come with a quality software system that solves the business problems of the client.
XP methodology also emphasizes on having the clients involved on every step of the intended software development period. This makes it possible to get an immediate feedback from the customer as well as making fast update to the system as per the user requirements.
Being consistent with other software methodologies makes developers to be able to develop quality software by adapting and borrowing important aspect from the other system that could help improve the intended software.
In case there is no commitment from both the client and the developer’s side, then this methodology will be deemed ineffective and unable to produce the intended system.
It is hard to do an estimate of time and cost due to lack of information on the requirements and scope of the entire project at the start of the project.
Based on the evaluation of the above adaptive software methodologies, it is therefore recommended that School Supplies Pty Ltd adopts XP methodology for their BTS system development. This method will provide a close relationship between Rebecca and the development team and since Rebecca has a wide experience on how BTS system works, she would be of great help to the development team. This methodology will make it possible for the developers to borrow a number of helpful things from the company’s employees based on the current and previous online ordering systems that they might have interacted with. XP methodology will also ensure that the company’s feedback is obtained immediately and that the developers are able to update or integrate the users BTS requirements as soon as they receive the feedback from Rebecca and the team (Wolak, 2018). Also the ability of this methodology to adapt other software methodologies will make it possible and easy for the company to integrate the payment system and the stock control system in future irrespective of which methodology was used to develop them. Finally, this methodology is cheaper compared to the others hence making it an ideal BTS system development methodology for the company due to lower costs of development.
XP Methodology
There are a number of human computer interfaces design approaches that could be used to design the new online BTS ordering system for your school. These approaches will ensure that the user interfaces for the BTS system are easy to understand and interact with as well as creating an intuitive user experience for all the system users. There are four human computer interfaces design approaches that can be used for the development of the new system (CARROLL, 2018). They include:
This is an HCI design approach that looks at developing a system with user interfaces which supports the end users by considering their brain and sensory abilities to remember when interacting with the system. This HCL design approach therefore employs the following as part of its design process.
Metaphors, when used correctly they can act as the most effective mode of communication to the system users. Metaphors can be used to represent a number of functionalities in the proposed BTS system such as edit, delete, school, books, and orders, among others (Bloomington, 2018). The use of icons therefore will depend on the on the familiarity of the users to them as this will help the end users to be able to know what actions they can perform irrespective of what form the data takes. For instance, instead of writing “ADD NEW SCHOOL” on the BTS system, an icon of a positive sign and a school icon can be used. These metaphors will enable the system users to understand and learn how to use the new proposed system quickly.
This cognitive design will put into consideration the ability of the user to remain attentive, perceived mental ability to complete a task and the environment in which the system will be used (Usabilityfirst, 2018). This therefore means that instead of combining tasks such as creating book pack and the delivery type on the same form, each of these two are done separately one after the other in order not to confuse the system users hence avoiding errors that could arise as a result of entering the wrong information. Also considering the nature of the work and the high orders experienced for the BTS, the separating tasks will make it easy for the users to remember and provide the right information within a short period of time hence making it easy for users such as Rebecca to perform their tasks effectively.
This is another HCI design approach that will be employed for the design of the new proposed BTS system. This design approach aims at producing system designs that possesses human-like features for example, the system should be able to prompt the user with the right response after the user has performed a given activated e.g “You have successfully added the new school to the system” or “Sorry the order you are looking for does not exist.”. Such human-like qualities will make the system user feel closer to the system hence making it easy to understand and use (Usabilityfirst, 2018). Anthropomorphic HCI design approach therefore will be based on the following two aspects.
Selection of Methodology
Users Affordability
This is the design that is based on actions that systems users are perceived to do using objects. These objects include the mouse, drop-down menu, icon, buttons, scrollbars, icons and sliding buttons (Usabilityfirst, 2018). These system objects will make it easy for the users to interact with the new BTS system. The objects will therefore provide a number of objects in which the user will chose from when they want to perform a certain task.
System Constraints
The new system design will apply the use of constraints that will limit the system user’s actions. The system will allow that each user to perform tasks which correspond to their defined roles. This will make it easy to control and manage the BTS system as well ensure that the system is secured from any unauthorized actions performed by an unauthorized users.
In conclusion, the two HCI design approaches will be able to provide a quality BTS system that is user-friendly and easy to use. The design has considered both the parents (clients) abilities as well as the company’s employee’s ability to work with the new proposed system. Hence once the system is complete, there will be more supportive features such as the icons and the system responses that are easy to understand and use. The chosen HCI design approaches will also give the system a quality look and feel aspect that is more appealing to the eyes as well as simplifying the system’s usability.
From the use case above, the parent will first have to login into the system, then add student details including the year group. The parent will then create a book pack for the student before placing the order and then select the book pack delivery mode and finally making the payment for the order. Upon successful order placement the system will send an email to the parent concerning the details of the already placed order. On the other hand the BTS system administrator will be able to register a school and then provides the school with the login code. The school will then be able to log into the system using the provided login code. Upon successful login, the school will be able to provide the year groups and create book packs for each year group before placing an order. Also with the system, the administrator will be able to view and generate records of the previous orders and compare them with the bank statement for accountability.
References
Adaptivesys.com (2013). Application Development | Adaptive Systems. [online] Adaptivesys.com. Available at: https://www.adaptivesys.com/index.php/appdev/ [Accessed 26 Sep. 2018].
Bloomington, I. (2018). Human Computer Interaction Design: Informatics: Degrees & Certificates: Graduate: Home: Indiana University. [online] Sice.indiana.edu. Available at: https://www.sice.indiana.edu/graduate/degrees/informatics/hcid/index.html [Accessed 26 Sep. 2018].
CARROLL, J. (2018). Human Computer Interaction – brief intro. [online] The Interaction Design Foundation. Available at: https://www.interaction-design.org/literature/book/the-encyclopedia-of-human-computer-interaction-2nd-ed/human-computer-interaction-brief-intro [Accessed 26 Sep. 2018].
collabnet (2018). What Is Agile Methodology?. [online] Resources.collab.net. Available at: https://resources.collab.net/agile-101/agile-methodologies [Accessed 26 Sep. 2018].
Johnson, D. (2010). Waterfall or Agile? Differences between predictive and adaptive software methodologies. [online] SearchSoftwareQuality. Available at: https://searchsoftwarequality.techtarget.com/tip/Waterfall-or-Agile-Differences-between-predictive-and-adaptive-software-methodologies [Accessed 26 Sep. 2018].
Okoli, C. and Carillo, K. (2012). The best of adaptive and predictive methodologies: open source software development, a balance between agility and discipline. International Journal of Information Technology and Management, 11(1/2), p.153.
Rizwan Jameel Qureshi, M. and Hussain, S. (2008). An adaptive software development process model. Advances in Engineering Software, 39(8), pp.654-658.
slidesharecdn (2018). [online] Image.slidesharecdn.com. Available at: https://image.slidesharecdn.com/onlinerealestatemanagementsystem-140519034148-phpapp01/95/online-real-estate-management-system-13-638.jpg?cb=1441793476 [Accessed 26 Sep. 2018].
TatvaSoft (2015). Top 12 Software Development Methodologies & its Advantages / Disadvantages | TatvaSoft. [online] Tatvasoft.com. Available at: https://www.tatvasoft.com/blog/top-12-software-development-methodologies-and-its-advantages-disadvantages/ [Accessed 26 Sep. 2018].
tutorialspoint (2018). UML – Class Diagram. [online] www.tutorialspoint.com. Available at: https://www.tutorialspoint.com/uml/uml_class_diagram.htm [Accessed 26 Sep. 2018].
UKEssays (2016). Looking At Adaptive Software Development Information Technology Essay. [online] UKEssays. Available at: https://www.ukessays.com/essays/information-technology/looking-at-adaptive-software-development-information-technology-essay.php [Accessed 26 Sep. 2018].
Umsl.edu (2018). Agile Methodologies. [online] Umsl.edu. Available at: https://umsl.edu/~sauterv/analysis/6840_f09_papers/Nat/Agile.html [Accessed 26 Sep. 2018].
Usabilityfirst (2018). Usability First – Methods – HCI Design Approaches | Usability First. [online] Usabilityfirst.com. Available at: https://www.usabilityfirst.com/usability-methods/hci-design-approaches/index.html [Accessed 26 Sep. 2018].
Wolak, R. (2018). DISS 725 – System Development: Research Paper 1. SDLC on a Diet. [online] Florida: codecourse.sourceforge.net, pp.2-10. Available at: https://codecourse.sourceforge.net/materials/System-Development-Life-Cycle.html [Accessed 26 Sep. 2018].