This report discusses agile and iterative methodologies such as Scrum, Unified Process, Extreme Programming, and Crystal. It also covers User Centered Design and Human Computer Interaction and their implications on CRM application development.
Contribute Materials
Your contribution can guide someone’s learning journey. Share your
documents today.
Report on agile and iterative methodologies 1.0 Introduction Iterative development is a software development approach in which a sequence of phases in which a particular activity is performed in the development process (Rosenblat, 2013). Phases include requirements analysis, design, implementation, and testing. Each phase can be repeated as many times as is reasonably possible. The users are involved only at the start of the project but are not further involved until the final project is delivered. Agile development involves the users from start to finish. A prototype is built each time and delivered to the users for testing, whereby improvements are incrementally introduced to it (Satzinger, Jackson & Burd, 2016). The project is finished and final system delivered to the users. At this point, no possible improvements can further be made until probably in the future of theproduct’slifecycle.Theaspectofiterationisalsopresentinagiledevelopmentas improvisations keep being made. Agile development follows twelve guidelines from the agile manifesto (Satzinger, Jackson & Burd, 2016). which are:- Customer satisfaction by continuous and early delivery of a software product Welcome changing requirements even in late stages of development Deliver working software as frequently as is possible within a time frame of 2 weeks or 2 months Users and developers work collaboratively throughout the project Project is built around motivated individuals, giving them the environment and support necessary The most efficient method of communication is face-to-face. Working software is the primary measure of progress Agile processes promote sustainable processes whereby the sponsors, developers and users maintain a constant pace. Continuous attention to good design and technical excellence Simplicity Self organizing teams for the best architecture, requirements and design
Secure Best Marks with AI Grader
Need help grading? Try our AI Grader for instant feedback on your assignments.
Regular intervals of team reflection on how to become effective and tuning and adjusting behavior accordingly 1.1 Scrum Scrumisanagilebased,iterativeandincrementaldevelopmentmethodwherebythe development process is sliced into time boxes called “sprints”, which can be 30 days or less (Rubin, 2012). Progress is tracked and re-planned in short meetings called daily scrums. In summary, scrum involves a set of roles, artifacts and meetings. Roles include the product owner, scrum master, and the team. A team usually consists of three to nine people. Advantages i.)Decisions are based on real world situations and not speculations ii.)The product is in an integrated and tested at all times, making it potentially deliverable iii.)Scrum processes enables organizations to adjust smoothly to changing requirements iv.)Scrum increases the quality of deliverables v.)Scrum gives the team control of project schedule and state Disadvantages i.)It is not as effective as it should be when team members are geographically dispersed ii.)Collaboration is a bit difficult where team members have highly specialized skills iii.)External dependencies such as third party software can lead to delays and sprint failures. iv.)Sprints are not suitable for legacy systems with strict quality control, for example medical devices 1.2 Unified process The unified process is an agile based iterative and incremental development method with emphasis on use cases, system architecture, and risk management (Coleman, 2016). It involves four main phases which are:-
i.)Inception- involves feasibility study, preparation of cost and schedule estimates and the decision to build or buy ii.)Elaboration-involvescapturingsystemrequirements,addressingriskfactorsand validating and establishing system architecture iii.)Conception- the development of the system iv.)Transition – deployment of the final system to the users and receiving feedback. Advantages i.)Users can easily understand the system plan since it based on their actions ii.)It is easy for developers to understand the business when they implement use cases iii.)There is early risk management and mitigation iv.)Change is more manageable Disadvantages i.)Use cases sometimes do not provide complete definition of requirements ii.)The end users are not directly involved iii.)Reuse is difficult 1.3 Extreme programming Extreme programming is an agile based development framework which attempts to reduce the cost of changes in requirements by having multiple short development cycles and therefore earliestpossibledelivery.Itsfocusisonadaptability(Kniberg,2015).Itsvaluesinclude simplicity,communication,feedback,courage,respect.Commonpracticesinextreme programming include:- Pair programming-code is developed by developers working in pairs Refactoring- improvisation of the system without changing functionality
Continuous integration-new code is integrated and the system built anew each time a task is completed Ownership- everyone owns code and can change it any time to improve the system Simple design- the system design is kept as simple as is possible Roles include tracker (manager), developer, customer, and coach. Advantages i.)Mistakes are detected at the time of typing rather than in testing ii.)Problems are solved faster iii.)Code length is shorter iv.)Design is better Disadvantages i.)Extreme programming lacks defect documentation which may lead to defect reoccurrence in the future ii.)It does not measure code quality assurance iii.)It is not a good option if developers are geographically separated 1.4 Crystal Crystal is a collection of agile development approaches and focuses primarily on people and the interactions among them during the development process (Coleman, 2016). It is based on the concept of a gemstone, which has faces (Rubin, 2012). Each face (development approach) has standards, techniques, roles and tools unique to it. The faces include crystal clear, crystal orange, crystal orange web, crystal red, crystal maroon, crystal diamond and crystal sapphire. The different colours denote the approach weight, which ranges from light and not critical to heavy and critical. In the crystal methodology, a project is likely to succeed if it has the following properties- Frequent delivery Reflective improvement
Paraphrase This Document
Need a fresh take? Get an instant paraphrase of this document with our AI Paraphraser
Close/osmotic communication Personal safety Focus Easy access to expert users Technical environment with automated tests, configuration management, and frequent integration Advantages i.)Communication is easy as developers are in the same room ii.)Information flows quickly through the team iii.)Teammembersspeakfreelywithoutbeingridiculedgivingroomforideasand improvements iv.)The expert users answer questions and suggest solutions or improvements v.)It can be adjusted as per team size and project type. vi.)It supports fixed price contracts vii.)It can be used along with other methodologies Disadvantages i.)Planning and development doesn’t depend on requirements ii.)The development team cannot move from one face to another in mid project iii.)It may not necessarily work for distributed teams 2.0 Recommendation It is recommended that the CRM application be developed using the unified process approach. This is because it emphasizes on the system architecture and risk management. For a large enterprise wide system like the CRM application these are key factors which must be considered. Memo User Centered Design and Human Computer Interaction
The User centered design (UCD) process lays down the phases throughout a system’s design and development cyclewhile focusing on who will be using the system (Endsley, 2016). It involves users from start to finish and is iterative. Essentially, the design depends on an understanding of the users, tasks and environments. The phases of UCD include:- i.)Specifying the context of use- This involves identification of the people who are going to use the system, what they will use it for and under what conditions that will happen ii.)Specification of requirements- Business needs and user requirements are established iii.)Creation of design solutions- This is the building of a complete design from requirements iv.)Design evaluation- Involves the usability and quality testing of the system Benefits of UCD include properly and thoroughly defined user requirements and hence usability and elimination of costs related to reworks. Human computer interaction is a discipline that studies the way humans interact with computers. In the recent decades, it has broadened from being a purely computer science discipline to an aggregation of the disciplines of computer science, human factors engineering and cognitive science (Booth, 2016). It has also moved from dealing with only desktop computer programs to the web and mobile devices. The main philosophy behind HCI is that an interaction between a human and a computer should resemble human-to-human communication as much as possible (Palanque, Paterno, 2012). HCI overlaps with UCD to provide the ultimate user experience (UX) for a computer system. Implications of UCD principles on the CRM application The CRM application should be fairly easy to learn for the users. This is achieved through consistency of the user interface whereby the behavior ofcommon interface elements is as consistent as possible. The CRM application’s design should be centered on users and their tasks in order to improve usability.It should also use an intuitive and natural dialogue which follows the sequence of a corresponding task.
The users should be able to focus more on performing their tasks rather than wasting mental energy in operating the computer. The CRM application should reduce errors through techniques such as data validation and guiding the user in the right direction during the performance of tasks. The application should have adequate navigation mechanisms so that users know where they are in the system at any given time. This can be achieved through the use of tools such as navigation maps and history of areas visited. Plan for a UCD-informed HCI for the CRM application The CRM application will adhere to user centred design principles as the following plan depicts. i.)The CRM application will be designed for users and their tasks. The business needs will also be thoroughly established. ii.)The user interface will be designed to minimize the learning curve of the users by making interface elements with common behavior as consistent as possible and by not designing new and unfamiliar interfaces. iii.)A fairly simple and natural dialogue will be achieved by providing only necessary information and by displaying messages in plain English. iv.)Instructions for the system will be made visible or clearly retrievable where it is needed. This will help the users focus on task rather than operation. v.)The application will be designed and developed in such a way that adequate feedback will be given to the users when executing it so that they will know about their progress and status of the task they are performing. vi.)The application will be designed to have adequate navigation tools such as navigation maps and history of places visited. vii.)The application will be designed to give the user as much control as is possible by providing information in a sequence which is convenient in performing a task.
Secure Best Marks with AI Grader
Need help grading? Try our AI Grader for instant feedback on your assignments.
viii.)Information will be presented clear and consistent manner across the CRM application’s various windows. The users will also not be burdened by providing excess information. ix.)The application will be designed to reduce errors by validating data early at entry points and by guiding the users in the right direction while executing tasks. x.)The application will be designed to be as self explanatory as possible to eliminate the need for excessive documentation. Recommendation The development team should employ UCD and HCI principles to develop the CRM application as this will help in user acceptance and eliminate the need of rigorous training. At the end of the day, this will save the organization time and money. It will also maximize profits by helping the organization to quickly turn their focus on business needs and not technical issues.
Events table for CRM EventEvent type TriggerSourceActivity/use case System response/out put Destination Retailstore wantsto becomea customer externalCustomer application Retail store Make application Application details Head office Headoffice addsanew customer internalCustomer application CustomerReviewand record application Updated customer list Head office Retailstore wants to place order externalCustomer’s order Retail store Place orderOrder detailsHead office Salesperson takes an order internalSales visitSales person Takeorder from customer Salesvisit list Head office Salesperson passesan internalCustomer order Sales person Pass an order to head office Updated sales visit list Head office
orderhead office Headoffice checkssales report internalLast day of the month Head office Runsales report Monthly sales report Head office Domain model class diagram
Paraphrase This Document
Need a fresh take? Get an instant paraphrase of this document with our AI Paraphraser
Main flow Sales representative makes sales visit to customer in a geographical area The sales representative receives an order from a registered customer from a sales area. Make a call to head office to pass the order with its full details. The order is recorded by head office Process order Dispatch order to the customer. Exceptions If sales visit is unsuccessful then identify customer as potential customer References Booth, P. (2014).An Introduction to Human-Computer Interaction (Psychology Revivals).
Secure Best Marks with AI Grader
Need help grading? Try our AI Grader for instant feedback on your assignments.
Psychology Press. Coleman, G. (2016).Agile Software Development. Software Quality Professional, 19(1). Endsley, M. R. (2016).Designing for situation awareness: An approach to user-centered design. CRC press. Kitchen, J., & Corcoran, S. (2015).User Centered Design. Kniberg, H. (2015). Scrum and XP from the Trenches. Lulu. com. Palanque, P., & Paternò, F. (Eds.). (2012).Formal methods in Human-computer interaction. Springer Science & Business Media. Rosenblatt, H. J. (2013). Systems analysis and design. Cengage Learning. Rubin, K. S. (2012). Essential Scrum: A practical guide to the most popular Agile process. Addison-Wesley. Satzinger, J. W., Jackson, R. B., & Burd, S. D. (2012).Introduction to systems analysis and design: An agile, iterative approach.Course Technology, Cengage Learning. Shneiderman, B., Plaisant, C., Cohen, M., Jacobs, S., Elmqvist, N., & Diakopoulos, N. (2016). Designing the user interface: strategies for effective human-computer interaction. Pearson.