Adaptive system Development
Adaptive System Development (ASD) is one of the design principle that is used when software systems are being created. The major principle in ASD has focused in creating rapid and evolving software systems. This is an advance of rapid application development. ASD has replaced the traditional waterfall phases with series which are repeating such as speculate, collaborate and the learn cycles. ASD is like a cycle in the manner that it is a model which is evolutional with some of the phases which are named to be reflecting in unpredictability of the systems which are complex. Some of the major phases has been shown in the diagram below as explained above.
The development adaptive has replaced the determinism with emergence as it has gone beyond the lifecycle mere changes in a style that is deeper in management. The major idea in ASD has focused on the results but not entirely on the results (tutorialspoint, 2017). The results are identified as the feature of the applications. Major focus in Adaptive System Development is based on the computer code. In the ASD like in other development methods the software is planned out before hand and in the case of Adaptive software development the developers who have the basic idea in their minds can start working on it. All the agile methodologies are adaptive in nature as the ASD approach always changes in the whole project by optimizing the design the overall solutions (Mohammed, 2018). The main aim of the methodology is developing the software within a very short time or period where the problem is broken down from large systems to smaller systems referred to as the modules. Modulation is the process of breaking a bigger problems in to smaller problems that can be easily solved thus reducing complexity.
The ASD approach has focused on developing systems which are complex through the use of iterative steps which are used for producing the prototype of the system. This methodology of ASD has helped to reduce the processes which are long and complicated which are involved during the development of the software in the traditional methodologies (Subudix, 2013). There are many methodologies that falls under Adaptive Software Developments as discussed below.
Extreme Programming. (XP)
Extreme programming is one of the widely applied and most agile methodology applied globally. It was formally created by an inventor known as Kent Beck. The major reason for its creation was to improve the development of software project in 4 major ways namely.
- Courage
- Simplicity
- Communication
- Feedback
Extreme has introduced other 12 best practices which has made the Extreme Programming programmers to courageously be able to respond to the changes in the tech and the requirements and specifications stated. The figure below is used to illustrate the 12 major practices of the extreme programming fir in to the field of exploration, when doing some planning, initiations to be released and lastly is the implementation as well as the phases of death in the lifecycle development.
Extreme programming has given a lot of emphasis on the customer and client’s priorities kind of a story which has represented the requirements of the business for each and every system released. The approach of Extreme Programming has involved the releases of small functionalities or features in the system where the developers write a test for the functionality of the system even before writing the actual and specific code. When the customer is involved during the inception of the project in cases where client acceptance testing of the system is done before the release of code during production will ensure that customers or clients will buy the software. Extreme Programming has also emphasized strongly on the team and collaborative development. When it is approached in this manner, the knowledge can be transferred from the developers to customers which rhymes with the approach of RAD (Richter, 2018).
Extreme programming is a procedure used for software development that is created and designed in manner in which it has improved the quality of the software as well as the capabilities of adapting to the ever changing requirements and needs of the end-users of the specific software. The feature of agile and that of XP are similar. The following are some of the pros and cos extreme programming.
Pros of Extreme Programming
- The idea here is based on the fact the simplicity power has totally leveraged the biggest advantage. This is majored to the way the developers have taken their time on iterations of small and resembling the pieces of software’s as if one is completing a jigsaw puzzle. The approach has created software that are known to be working very fast and which has no defects. In the XP methodology the detection of bugs is guaranteed especially when there is some testing done regularly in during the stage of development.
- In this case the basis is on the requirements remaining static and the means used traditionally are advised. Extreme programming has accommodated the requirement changes as it gets in and store the user stories and data from the word go (start) and also giving constant feedbacks during the stages of iterations(kukusami, 2018).
- Cost Saving. Extreme Programming has helped in trimming all the activities which are unproductive for ensuring that they reduce the frustration and cost. In this case of XP there is avoidance of needless paperwork in order to allow the developers in concentrating with coding instead of wasting time. The facts has helped in reducing the cost as the customer’s involvement in giving feedbacks during development stages.
- Employee Satisfaction. Due to the fact that Extreme Programming has reduced the importance of individuals during the development process it has helped in increasing the retention of employees and thus bringing in satisfaction amongst them. This type of programming has been all about on the basis of value-driven approach where it has set fixed schedules of work without necessary concentrating on the overtime.
Cos of Extreme Programming.
- This software is so tough in the manner that the technical part if to convince the developers and programmers in doing it will be very hard. The reason behind that is because it requires a lot of devotion from customers as well as high class discipline from the overall team involved during the implementation.
- Extreme Programming relies on very many factors. In real sense this is simply the minimalist process as it lacks vigor by numbering the practices involved in the given process. The failure of going wrong is very high and thus causing a high risk endeavor.
- Code centric. The Extreme programming methodology is known to be code centric other than being design centric. It has relied too much on coding other than designing thus making it so difficulty. This has proved to be very tiring especially in cases where larger software projects are involved(Tester, 2017).
SCRUM Methodology
Scrum was mainly applied in the year 1990s by known philosophers named Ken Shwaber and Mike Beedle. It is therefore defined or explained as an agile that iterates and increments the developing methods by assuming the changes and the chaos that exists through the entire project software lifecycle by attempting to solve all the problems. Scrum is designed in the manner that they can add energy, do some focusing, clarity improved and the transparency mastered by the project teams developing the software. Scrum has allowed the team in operating in close proximities for fostering the evolution of the system rapidly.
In Scrum work is arranged and structured in work cycles which are referred to as the Sprints, the work iterations can have a duration of three to four weeks. In each and every sprint the teams must pull from list of all prioritized customers’ requirements which is referred to as the user stories, for enabling the features to be developed first and so that they can value the customer. At the end of each and every sprint the potential shipped product can be delivered very easily. Scrum has naturally focused on entire organization by construction of successful products. In cases where there are no major changes within a period of 30 days the major and assigned for the development can be able to build a useful, and demonstrable functionality of the specified product. Scrum can be implemented at the initial stage of the project or even at the middle of the particular project or even in cases where the development of the product effort that is in major trouble.
Pros of Scrum Methodology
- Scrum methodology has enabled projects in situations where the requirements of the business documentation are very hard in identifying and quantifying for the software to be developed successfully.
- It is very fast in moving as the developments cutting edges are quickly coded and even tested on this method as any mistake may make it easily rectified.
- It does save time and also money. The rules and procedure set are meant and designed for controlling speed up process of the development. The managers in scrum must coordinate the teams so that each one of them as far as one is involved they can thus perform simultaneously, which will enable the final project to take shapes on several fronts.
- There is very little margin for error. The procedure and rules set at an early stage helps in narrowing the margin of errors especially on the basis of the schematization work. The team must select the right people for the job to be delivered. In this case the deliver measurable outcomes can be evaluated at any given time by the project supervisors or also by the major client(Ingenia, 2017).
- It is also easy for team member to manage. This has been enabled through very large projects being separated in to smaller manageable sections that will allow the development to be reviewed with a pinpoint accuracy and the efforts being highlighted in the cases of efforts and failures of each and every team. When there is a development of the mobile app, there will be concept of assigning the experts who will be dedicated to particular tasks. In this case on can have a Scrum master who will be used in coordinating the team.(Harrison, 2017)
Cos of Scrum Methodology
- The scrum methodology is known to be one of the leading scope creep causes as unless there is a set date of conclusion of the project, the stakeholders of the project will be tempted to keep on and on demanding that the functionalities which are new to be delivered.
- In many cases especially in Scrum Methodology if a task will not be well defined then it is not easy to accurate or approximate the cost and the duration of the project. In this case the spread can be spread over different sprints(Mountaingoat, 2016).
- Lack of commitment in the team may make the project to neither fail nor even complete.
- Another cos of scrum methodology is that it works very well with small teams but not large teams for the development of small and those projects which are moving very fast.
- In situations where a team member may opt to leave during the development stage then it may affect adversely the entire and overall project.
- Lastly, the project quality manager will be very hard when implementing and quantifying unless all the team for testing are all able to perform regression by testing after each and very sprint.
Scrum methodology have changed the way businesses do their work (Koronois, 2003). This is because it has helped in keeping everybody involved and informed on the progress on their daily meeting, thus making the team to be focused on their specific tasks. Lastly but not least is that the best methodology to get things done on the ASD is Scrum. The reason behind that is because Scrum is not just known for it being a methodology but it is also a framework that has been able to mold as well as all the required actual projects where it is being used (Leois, 2013).
Joint Application Development
This is an ASD methodology that has been applied on the basis of the requirements of businesses that has been defined and developed on the intended system user interface. JAD methodology always involve all the system users, the customers/clients and all the developers through the series of events especially the offsite meetings for discussing the developments of the system to become very successful when completed. The collaborative meetings which are done regularly are called Joint Application Development (JAD) sessions. Joint Application Development (JAD) sessions always focus on the requirements of the business of the system intended other than the technical info thus making the adaptive methodologies suitable for type of system (Steve, 2017). When one consider JAD then the concept of user-centered comes in as itself is user-centered and therefore meaning that the developer can now work towards provision of the solution (System Software) that will satisfy fully the needs of the customers and clients and thus solving the existing problems in the business.
Pros of Joint Application Development (JAD)
- Joint Application Development may allow one in resolving all the difficulties more simply and can produce better results. It’s also good to know that it is error-free software.
- The joint collaboration amongst the companied and the clients and customers has lowered all the major risks.
- Joint Application Development has reduced the cost and the needed time when developing the project
- If the requirements are well defined then there is expectation of improving the system quality
- The progress maybe faster in Joint Application development due to the closeness in communication
- Joint Application development has encouraged the team to continue pushing each other to work very fast and always deliver on time.
Cos of Joint Application Development (JAD)
- When there are major and different opinions within the team it may be difficult to align all the goals and objectives set at the initial stage. This will lead to them being unable to maintain the focus(Mariosek, 2018).
- Lastly but not least is that dependence on the project size, Joint Application development may require some significant time commitment which may be hard to get and interpret(Mrsic, 2016).
Recommended ASD Methodology.
On the basis of the evaluation of all the ASD methodologies discussed above, it will be wise to recommend the school supplies of Pty Limited adopting the XP methodology for the BTS system development. The Extreme Programming Methodology will be used in providing close relationship between the team assigned for development and Rebecca. The benefit will arise in that Rebecca wide experience in how BTS works will be of great help to the team developing the proposed team by BTS. The methodology have made it possible for all the workers in the development field in borrowing help from most employees in the organization which are on the basis of the current and the previous online ordering systems that might have been used for interaction with.
Extreme programming will be ensuring that feedback from the company will is immediately obtained and that all the major developers are all able to update and integrating with the end-users requirements the moment they receive Rebecca and development team feedback. The capability of the methodology in adapting to other software methodologies has made it possible and very much easy to integrate the payment system and the SSS (Stock Control System) in the coming future irrespective of the methodology to be used for the development. In conclusion, Extreme methodology is very cheaper as compared to the methodologies of Adaptive Software developments. This cost saving and time benefits has made it to be an ideal and best option to be used as the BTS system development methodology.
Memo
To: Gerry lane and the Management.
From:
Date: October 2, 2018
Subject: HCI for Online Back to School Ordering System.
There are many human computer interfaces design that can be applied in the BTS system. The design chosen will ensure that the system of BTS is easy to understand and much more interacting with the users and creation of an intuitive user experience for all the users of the system. Some of the approaches has been discussed briefly below.
- Anthropomorphic approach. This approach is aimed at producing system designs that will be possessing features which look they are imitating human likes e.g. a good example is where the system can prompt the users with the responses which are right after all the users has performed any activity given. This type of approach is based on two aspects. The first aspect is the Users affordability that has been on the basis of how the users of system are perceived to be interacting with the systems. The other aspect is that of System constraints where the design is based applying the concept of using constraints that can limit the actions of the system user(Deshpand, 2008). The system has allowed the user to perform each tasks that matches or corresponds with the roles defined.
- Cognitive human Computer interface design. This approach is aimed at developing the system user interfaces that will be able to support the end-users in consideration of their brain and sensors capabilities in remembering when and when not to interact with the systems(Anon., 2012). This type of approach is based on the employment of the following aspects as part of its implementation. Some of these are such as the use of metaphors and the use of End-Users attention and the work model (Zurich, 2014).
In conclusion if the two human computer interfaces designs are put in to implementation by BTS system then the user will view and review the system as user friendly and very easy to use. This is because both the clients where in this case are the parents are considered.
Best Regards,
Use case Description
On the basis of the use case diagram above the student parent will have to start by login in to the system and then add the details of their children (Student) which must include the year group. After login and doing the additional of details then the parent will have to create book pack for all their students even before they place any order and thus enabling them the books mode in terms of the pack delivery by making the order payment. When they are done making the order the system is designed that it will automatically send an email to the particular parent doing the operations indicating all the details with regards to the placed order.
On the side of back end side the system administrator of BTS system will be able to register the school and thus offering login provisions to the school. With the given login code now the school can be able to login in to the system. When the school login, then they will be able to provide the year groups and thus creating book packs for each group before they place any order in specific. The system administrator of BTS will be able to view and do generation of all the records of all orders previously done and thus comparing them with the statement from the banks for the sake of accountability.
Conclusion
The concept that has been brought about by the understanding of advanced software development ASD has rotated towards understanding the capabilities of the methodologies and the associated weaknesses. Some of the briefly discussed major approaches and methodologies of Adaptive Software Development (ASD) are such as the Extreme Programming methodology, Joint Application Development methodology and SCRUM methodology. The best option to be applied by BTS will be Extreme Programming as it has been known for adopting easily to other software methodologies and it’s cheap. In conclusion if BTS applies the recommendation given above then they will be able to have a good system that is user friendly and much more competent in the manner that it will be easy to use.
List of References
Adell, L., 2013. Benefits & Pitfalls of using Scrum software development methodology. [Online] Available at: https://www.belatrixsf.com//benefits-pitfalls-of-using-scrum-software-development-methodology/ [Accessed 2 October 2018].
Alexandrou, M., 2018. Joint Application Development (JAD) Methodology. [Online] Available at: https://infolific.com/technology/methodologies/joint-application-development/ [Accessed 02 October 2018].
Anon., 2012. Proceedings of the 1988 IEEE International Conference on Systems, Man, and Cybernetics. Design of a cognitive human-computer interface, 3(2), pp. 17-23.
Deshpand, P., 2008. An adaptive software development process model.. Applying Agile Principles for Distributed Software Development , 8(2), pp. 56-65.
Golla, S., 2013. What is adaptive software development?. [Online] Available at: https://www.quora.com/What-is-adaptive-software-development [Accessed 01 September 2018].
Harris, E., 2017. The Pros and Cons of Scrum Methodology to Improve Processes. [Online] Available at: https://blog.triaster.co.uk/blog/the-pros-and-cons-of-scrum-methodology-to-improve-processes [Accessed 2 October 2018].
Ingenia, N., 2017. The Pros and Cons of Scrum Methodology on a Nearshore Level. [Online] Available at: https://www.nearshoreamericas.com/pros-and-cons-of-scrum-methodology/
[Accessed 02 October 2018].
Koronois, V., 2003. A software development approach waiting for its time?.7 th Pacific Asia Conference on Information Systems. Agile methodologies and the emergence of the agile organization, 10(13), pp. 1344-1358.
Kukhnavets, P., 2018. Advantages and disadvantages of Extreme Programming (XP). [Online]
Available at: https://hygger.io/blog/disadvantages-and-advantages-of-extreme-programming/
[Accessed 2 OCtober 2018].
Mohammed, S., 2018. Adaptive Software Development (ASD) - An Agile Process. [Online]
Available at: https://www.linkedin.com/pulse/adaptive-software-development-asd-agile-process-shahab-mohammed
[Accessed 2 October 2018].
Mountaingoat, S., 2016. Scrum Overview for Agile Software Development. [Online]
Available at: https://www.mountaingoatsoftware.com/agile/scrum/resources/overview'
[Accessed 02 October 2018].
Mrsic, M., 2017. Joint Application Development (JAD). [Online]
Available at: https://activecollab.com/blog/project-management/joint-application-development
[Accessed 02 October 2018].
Richter, L., 2018. Advantages of Extreme Programming. [Online]
Available at: https://www.brighthubpm.com/methods-strategies/87839-advantages-of-extreme-programming/
[Accessed 2 October 2018].
Stephen, O., 2017. Joint Application Development: Definition, Phases & Methodology. [Online]
Available at: https://study.com/academy/lesson/joint-application-development-definition-phases-methodology.html
[Accessed 02 October 2018].
Tester, T., 2017. What are the extreme programming advantages and disadvantages?. [Online]
Available at: https://talentedtester.com/extreme-programming-advantages-disadvantages/
[Accessed 2 October 2018].
tutorialspoint, 2017. Phases of ASD Life Cycle. Adaptive Software Development - Lifecycle, 3(1), pp. 12-17.
Zurich, E., 2014. HCI. Human-Computer Interaction: Cognition and Usability, 4(17), pp. 12-27.