Scrum, Extreme Programming (XP), and Adaptive Software Development (ASD) are the three adaptive methodologies that could be used by Free Feet Socks Limited (FFST). Scrum is a popular method used to perform things on agile methodology. Apart from Scrum being a methodology, it is also a framework developed as needed by the organization using it. Extreme Programming (XP) on the other hand is a development methodology of agile software which aims to improve software responsiveness and quality to changing client needs. Lastly is the adaptive software development (ASD) methodology which is a new system in agile software development. ASD aim is development of products that are complex, systems that are large and repetitive development with same prototyping. (Jas?ko & Marinkovic?, 2016)
Scrum is a framework of agile for accomplishing innovative projects. Scrum performs well for complex, innovative or new work product development scope. As such, FFSL can use this methodology to expand further activities like selling underwear and home goods such as scented candles. The framework of Scrum is simple. The owner of the product generates a wish list that is prioritized known as product backlog. During sprint planning the staffs dealing with the system picks a small portion in the descending order of that wish list, a sprint backlog, and determines how implementation of those pieces will be done. FFSL team will have specific amount of time for a sprint to accomplish the work normally 2-4 weeks but arrange daily meetings to analyze the progress of the work. FFSL scrum master will keep the team focused on the objective. Upon completion of the sprint, the work done should be ready to be handed over to the client, kept on storage shelf, or shown to a stakeholder. Finalization of the sprint is done through it reviews and retrospective. The team then selects another portion of the backlog and starts the operations again. The cycle is repeated until the arrival of deadline is reached, budget depletion is reached or adequate items in the product backlog are completed. (Hall, 2014)
Advantages of Agile Scrum
Agile scrum will help FFSL to save money and time. It will help the organization to successfully develop the project especially where the documentation of business needs is difficult to quantify. Using this methodology fast codes and testing is easily done since mistake are easily corrected. Clear visibility of the development of the project is achieved as this technique stress on regular updates of the work progress through frequent meetings. It is also needs constant response from the user. It is easy to adapt with the changes since it involves short sprint and continuous feedback. Team members’ productivity and issues identification is enhanced through daily meetings. And it minimizes the cost of process and management of the project thus resulting to cheaper and faster output. (Satzinger, Jackson & Burd, 2008)
Disadvantages of Agile Scrum
The stakeholders of project management might demand for delivery of new functionality if an exact end date is not set. Estimation of cost may not be correct if duties are not well defined. The project may fail if the team lacks commitment. It requires short projects as it functions well with few staffs. All teams need to be involved till the accomplishment of the project otherwise it may fail. Test team are required to carry out regression testing after every sprint otherwise the quality manager of the project will find it hard to quantify and implement it. (El & Alnoukari, 2012).
Extreme Programming (XP)
XP first insists on business output and then takes an incremental. FFSL is focused on developing and implementing application of customer management. Customers such as retail store are required to fill an application before being supplied with products of FFSL. As such FFSL will use XP to build the product by constant testing and reviews of this new implementation. (Kaschek, 2008). This methodology strongly supports regular releases in short cycles of development and focus on improving productivity and checkpoints introduction at which new client’s requirements can be owned. XP quickens and simplifies new software development process enhancing the launching of new product faster. (Qasaimeh & Abran, 2011). It also brings about effectiveness in the code process and offer maximum value to customers. In addition, it enhances strong involvement of the customer into the process of software development, good interactions among the teams and development of iterative cycles. it enhances customer collaboration on negotiation of contracts, and change responses on the plan. It is based on respect, simplicity, courage, communication and feedback values. XP brings the team together in the existence of easy practices, with adequate responses that help them see their current situation and use the practices to their special condition. (Sutherland, 2016)
Advantages of Extreme Programming
This methodology will help FFSL save time and costs for the realization of the project. It removes unproductive operations. XP also minimizes risks involved in programming or threats related to the failure of the project. (Lee, 2012) It is a simple methodology that developer uses to generate simple programs that can be improved anytime. Processes involved in XP are accountable and reliable. It contains continuous responses that help to make changes as early as possible. XP helps increase employee retention and satisfaction. (Bennedsen, Caspersen & Ko?lling, 2008)
Disadvantages of Extreme Programming
Some experts say that XP aims on code more than the structure. This is a problem since good structure is essential for applications of software. A good design aids in selling the organization in the software market. In addition, XP lacks a good defect documentation which may cause occurrence of same bugs in future. XP also fails to measure quality assurance of the code which may bring defects in the initial code. (Moran, 2014).
Adaptive Software Development (ASD) Methodology
ASD methodology develops large systems and complex products. RAD (Rapid Application Development) is used to produce a good system and product. It involves developing recurrence and constructing prototype. FFSL can use this methodology to see how the application process will operate. RAD consists of two strategies; it requests the manager to put focus on the product and it offers techniques and tools for promotion of teams’ self-organization and the need for large scale. (Cantone & Marchesi, 2014)
Characteristics of adaptive development; it is mission-driven for instance FFSL will use this methodology to ensure it mission for retail store applications is implemented, run monthly sales and report and obtain information in every sales visit. (Cobb, 2015). This methodology is component-based, it is iterative, in ensures enough time is taken to make decisions on the project, it is change tolerant, and it is risk-driven. ASD involves three concepts; the agent, that is the group members and other stakeholders, environments; development, executive and technology, emergence; development of the product such as the underwear and home goods that FFSL is planning to introduce. (Madeyski, 2010).
ASD consist of 3 cycles for development of large systems;
Speculation; FFSL requires a few days or weeks to plan on the system they need to meet their goals, the project team to be involved, and the customers’ advices and guide like requirements of the systems, objectives and scope. (Moran, 2015)
Collaboration; FFSL needs team members that are motivated, willing to help, hardworking, ever present in the field and enhance communication to generate efficient solutions. Team members should work together in order to meet their objectives. (Haag & Cummings, 2008).
Learning; team developers should always be ready to receive knowledge on new expertise of the system. (Hazzan & Dubinsky, 2014).
The Process of ASD
When FFSL developers want to show specific parts of the project used by sessions of JAD (Joint Application Development) the customers will be used to discuss the system of the project. Processes of ASD help users and customers provide comment to the software, perform appropriate procedure review and carry out postmortems. (Vogel & Giese, 2013).
Advantages of ASD
It facilitates discussion to ensure there is agreement with the plans made to develop the system. From the discussions carried out, more ideas can be obtained from customers or anyone dealing with project. Demonstrations are performed to ensure that the objective is met. It involves iterative cycles that enhance good quality work. (Mirandola, Gorton & Hofmeister, 2009)
Disadvantages of ASD
It consists of many workers who can cause problems in the project planning and ideas conflict among them. It is a time consuming methodology since it involves discussion till a common point is agreed. (Eckstein, 2013)
Every methodology has its advantage and disadvantage. As such, it depends on the agreement of the work team involved for the methodology that is appropriate to aid in meeting the goals and objectives through the system to be developed. In developing the system time, planning and suitable technique is of great importance.
If FFSL needs a quality system that involves all the stakeholders it will require to utilize scrum methodology. This is because it helps everyone to be informed on the progress through the daily meetings. This will help in the management of expectations. However, if FFSL needs a quick system then the best methodology to use is the Extreme programming where it works on quick responses.
I have noticed that over the time we have been using the software system currently in place, it has been really taking time to navigate through the system. In essence we can say that the software has a complicated user interface. For this reason, a new user interface will be developed so as to aid and ease the interaction between you and the system. This will increase satisfaction and efficiency and thus increase your satisfaction. To achieve this, we will need your input on how you would want the interaction window to look like. It is important if it is you to state the general outlook of the interface both for the customer interface and back end interface which will be used by the review team. The interface will be aid the retail stores to easily navigate through the system and fill in their details. Also the back end interface for that matter the admin interface should be very simple to use when rating and either approving or rejecting a particular retail store. We concentrate on developing the an HCI system that will not affect the functionality of the software currently in place but rather to increase the efficiency of the software. (Rogers, Preece & Sharp, 2015).
One of the approaches that will be used to attain a user friendly interface is by use of user-centric design (UCD). This approach puts users’ requirements above any other aspects for instance technical factors. The key distinguishing feature among the competing applications is the user interface. Before implementing the user interface, we will continuously try to understand the needed experience of the user in terms of competency ad tasks. Our area of more concertation is the systematic user research, graphic design and interaction design. Continuous user testing will also be carried out order to ensure that the development team is coming up with an accepted final product. This enhances the development of an interface that meets the objectives in a manner that user acceptance, learning ability and adoption is optimal. It is also important to note that, a software without a good UI is expected to affect the company’s brand name. the priority of the development team is to ensure that best HCI practices are used in order to develop a simple and friendly interface. (MacKenzie, 2012).
When a software is out in the market, it is perceived not only as a product, but even as a brand. A customized software with a less user friendly approach is bound to influence your brand name directly. Hence, our priority is to make the UI as simple as possible using the best HCI practices to meet this objective.
User acceptance is a very important aspect in this development. The theory of reasoned action makes a definition of the relationships among attitudes, behaviors, beliefs, intentions ad norms for instance rejection or acceptance of a particular technology is based on the outcome of an intention which is influenced by attitudes and beliefs on the particular objective. Theory acceptance model however concentrates on the reasons why a user accepts or rejects a system and how to enhance their acceptance. This theory will help us understand the external factors that affect user acceptance, the actual use of the system and their relation. This theory further asserts that the user accepts or rejects a system based on how the system will increase his / her performance at work. However, the user may understand how well the system will be of help but its complexity ruins that intended purpose. Every little detail about how a user will interact the system really matters because that’s what will lead to them accepting it or rejecting it. (Naik & Tripathy, 2011).
The development team will therefore, consider all the user requirements during the development of the user interface. It is through these requirements and other internal and external factors that come with it. This system will be used by the main customers of the company, that is, the retail stores and the review team to enhance their interaction online. A good interface can be achieved by utilizing the user centric design which focuses on user opinions to improve satisfaction. The theories above especially the theory of acceptance modelling clearly states that a system no matter how good and sophisticated it is, but without a good interface then is doomed to fail. Therefore, it is important to make sure that at every stage of development the users get involved. This will result in producing an all-round accepted system, both by the customers and the company stake holders
FFSL Design Class Diagram for Customer and Sales
The customer registers, then looks for an order, creates a new order, waits for approval, if approved proceeds to finalized transactions, else decline
The admin reviews the order, approves or rejects, gives feedback to customer.
Jas?ko, O., & Marinkovic?, S. (2016). Reshaping the Future Through Sustainable Business Development and Entrepreneurship: Symposium proceedings. Belgrade: Faculty of organizational sciences.
Hall, G. M. L. (2014). Adaptive Code Via C?: Agile Coding with Design Patterns and Solid Principles. Upper Saddle River: Microsoft Press [Imprint.
Satzinger, J. W., Jackson, R. B., & Burd, S. D. (2008). Systems analysis and design in a changing world. Cambridge Mass: Course Technology.
Smith, G. (2016). Agile marketing: The incomplete guide. [Bristol] : Bunny Picnic
El, S. A. A. R., & Alnoukari, M. (2012). Business intelligence and agile methodologies for knowledge-based organizations: Cross-disciplinary applications. Hershey, PA: Business Science Reference.
Sutherland, J. (2016). Scrum - The Art of Doing Twice the Work in Half the Time: Book summary.
Bennedsen, J., Caspersen, M. E., & Ko?lling, M. (2008). Reflections on the teaching of programming: Methods and implementations. Berlin: Springer.
Moran, A. (2014). Agile risk management. Cham : Springer
Cantone, G., & Marchesi, M. (2014). Agile Processes in Software Engineering and Extreme Programming [recurso electrónico]: 15th International Conference, Rome, Italy, Proceedings.
Madeyski, L. (2010). Test-driven development: An empirical evaluation of agile practice. Heidelberg: Springer-Verlag.
Moran, A. (2015). Managing Agile: Strategy, implementation, organisation and people. Cham : Springer
Haag, S., & Cummings, M. (2008). Information systems essentials. Boston: McGraw-Hill/Irwin.
Vogel, T., & Giese, H. (2013). Model-driven engineering of adaptation engines for self-adaptive software: Executable runtime megamodels. Potsdam: Univ.-Verl.
Mirandola, R., Gorton, I., & Hofmeister, C. (2009). Architectures for adaptive software systems: 5th International Conference on the Quality of Software Architectures, QOSA 2009, East Stroudsburg, Pa, USA: proceedings. Berlin: Springer-Verlag.
Eckstein, J. (2013). Agile software development in the large: Diving into the deep. New York, New York : Dorset House Publishing
Kaschek, R. H. (2008). Information systems and e-business technologies: 2nd International United Information Systems Conference, UNISCON 2008, Klagenfurt, Austria, April 22-25, 2008 : proceedings. Berlin: Springer
Cobb, C. G. (2015). The project manager's guide to mastering agile: Principles and practices for an adaptive approach. Hoboken, New Jersey Wiley
Hazzan, O., & Dubinsky, Y. (2014). Agile anywhere: Essays on agile projects and beyond. Cham : Springer
Lee, R. C. (2012) "The Success Factors of Running Scrum: A Qualitative Perspective," Journal of Software Engineering and Applications, Vol. 5 No. 6, pp. 367-374. doi: 10.4236/jsea.2012.56043.
Qasaimeh M. and Abran A. (2011) "Extending Extreme Programming User Stories to Meet ISO 9001 Formality Requirements," Journal of Software Engineering and Applications, Vol. 4 No. 11, pp. 626-638. doi: 10.4236/jsea.2011.411074.
Rogers, Y., Preece, J., & Sharp, H. (2015). Interaction design: Beyond human-computer interaction. Chichester: Wiley.
MacKenzie, I. S. (2012). Human-computer interaction. Burlington: Elsevier Science.
Naik, S., & Tripathy, P. (2011). Software Testing and Quality Assurance: Theory and Practice. New York, NY: John Wiley & Sons.