We take content rights seriously. If you suspect this is your content, claim it here.
Available Formats
Download as PPTX, PDF, TXT or read online on Scribd
You are on page 1/ 23
System Development Methods
CT00046-3-2
Agile Methodologies Topic & Structure of the Lesson
Understanding Agile Methodologies
Agile Principles
Module Code & Module Title Slide Title SLIDE 2
Slide 2 Slide 3 (of 17)
Learning Outcomes
By the end of this lecture, you should be able to :
1. Identify and explain the underlying principles of Agile methodologies. 2. List popular methodologies adopting Agile Principles. 3. Describe the advantages and disadvantages of Agile Methodologies.
Module Code & Module Title Slide Title SLIDE 3
Slide 3 Slide 4 (of 17)
Key Terms you must be able to use
If you have mastered this topic, you should be able to
use the following terms correctly in your assignment and exam: Agile Methodologies Agile Principles
Module Code & Module Title Slide Title SLIDE 4
Slide 4 Slide 5 (of 19)
Modern Information System (IS)
Methodologies
Developed in the mid 80’s to 90’s
Focus on fast delivery of software and customer satisfaction. – Compare with the Traditional Methodologies focus on product excellence and documentation. Flexible stages Most Methodologies adopt Agile Principles. Example of modern methodologies: RAD XP Scrum Module Code & Module Title Slide Title SLIDE 5 Slide 5 Agile Methodologies
Agile Methodologies are a set of Modern IS
Methodologies which shares some of the Agile Principles. Agile Principles are defined in ‘The Agile Manifesto’, developed by software developers in 2001 ( https://agilemanifesto.org/): Value responding to change over following a plan. Value individuals and interactions over processes and tools. Value working software over comprehensive documentation. Value customer collaboration over contract negotiation. Agility (in a software development sense) means: Being flexible. Module Code & Module Title Slide Title SLIDE 6 Slide 6 Agile Methodologies (Cont.)
Stresses intense team-based effort.
Some Agile methodologies adopt both iterative and incremental approaches which means: Breaks development process down into cycles or iterations that add functionality. Each iteration is designed, build, and tested in an ongoing process. Attempts to reduce major risks by incremental steps in short time intervals. Also, agile methodologies attempt to develop a system incrementally, by building a series of prototypes and constantly adjusting them to user requirements. As the agile process continues, developers revise, extend, and merge earlier versions into the An final agile product. approach emphasizes continuous feedback, and each incremental step is affected by what was learned in the prior steps. Module Code & Module Title Slide Title SLIDE 7 Slide 7 The Agile Manifesto is based on twelve principles Customer satisfaction by early and continuous delivery of valuable 1 software
2 Welcome changing requirements, even in late development
3 Working software is delivered frequently (weeks rather than months) 4 Close, daily cooperation between business-people and developers 5 Projects are built around motivated individuals, who should be trusted Face-to-face conversation is the best form of communication (co- 6 location)
7 Working software is the principal measure of progress
8 Sustainable development, able to maintain a constant pace 9 Continuous attention to technical excellence and good design 1 Simplicity - the art of maximizing the amount of work not done—is essential 0 Best architectures, requirements, and designs emerge from self- 1 organizing teams 1 Regularly, the team reflects on how to become more effective, and 1 adjusts accordingly 2 Module Code & Module Title Slide Title SLIDE 8 Slide 8 Agile Principles
1)Customer satisfaction by early and
continuous delivery of valuable software The analysis by MIT Sloan Management Review (Alan, 2001) found several practices that contribute to the final system quality. This includes ‘the less functional the initial delivery, the higher the quality in the final delivery’. Besides, ‘the more frequent the deliveries, the higher the final quality’. Agile practice strives to deliver a rudimentary system within the first few week of the start of the project. Then, continue to deliver systems of increasing functionality every two weeks. Users may choose to put these system into production if it is functional enough, or to review existing one and report on changes they want made.
Module Code & Module Title Slide Title SLIDE 9
Slide 9 Agile Principles (Continue)
2) Welcome changing requirements, even in late
development Agile participants are not afraid of change. They view changes to the requirements as good things, as the team take this as learning phase to understand more about what it will take to satisfy the market. Team keeps the structure of its software flexible so that when requirements change, the impact to the system is minimal.
3) Working software is delivered frequently (weeks
rather than months) Working software will be delivered early (after the first few weeks) and often (every few weeks thereafter), instead of delivering bundles of documents or plans. The main goal is to delivery product that satisfies the user’s Module Code & Module Title Slide Title SLIDE 10 Slide 10 Agile Principles (Continue)
4)Close, daily cooperation between business-people and
developers Significant and frequent interaction between business users, developers, and stakeholders is required. A software project must be continuously guided. 5)Projects are built around motivated individuals, who should be trusted Provide required environment and support what project team members need and trust them to get the job done. In an agile project, people are the most crucial factor of success, besides other factors i.e., process, environment, management, etc. – which are subject to change if they are having an adverse effect upon the people. For example, if the office environment or the process steps are obstacles to the team, then these must be changed. Slide Title Module Code & Module Title SLIDE 11 Slide 11 Agile Principles (Continue)
6)Face-to-face conversation is the best form of
communication (co-location) Face-to-face conversation is the primary mode of communication. An agile project team does not demand written specifications, plans, or designs. Team members may create them if they perceive an immediate and significant need, but they are not the default. The default is conversation. 7)Working software is the principal measure of progress Agile projects measure their progress by measuring the amount of software that is meeting the user’s need. They don’t measure their progress in terms of phase that they are in or by the quantity of documentation that has been produced. Module Code & Module Title Slide Title SLIDE 12 Slide 12 Agile Principles (Continue)
8) Sustainable development, able to maintain a constant
pace An agile project team does not take off at full speed and try to maintain that speed for duration. Rather, they run at a fast, but sustainable, pace. Team works at a rate that allows them to maintain the highest quality standards for the duration of the project. 9)Continuous attention to technical excellence and good design High quality is the key to high speed. The way to go fast is to keep the software as clean and robust as possible. Thus, all agile team members are committed to producing only the highest quality code they can. 10)Simplicity—the art of maximizing the amount of work not done—is essential An agile project team take the simplest path that is consistent with their goals, they focus on the desired Module Code & Module Title Slide Title SLIDE 13 Slide 13 Agile Principles (Continue)
11)Best architectures, requirements, and designs
emerge from self-organizing teams An agile team is a self-organizing team. Responsibilities are not handed to individual team members, it is communicated to the team, and the team determines the best way to fulfill them. Agile team members work together on all aspects of the project. The team shares responsibilities, and each team member has influence over them. 12)Regularly, the team reflects on how to become more effective, and adjusts accordingly An agile team continually adjusts its organization, rules, conventions, relationships, etc. They know that its environment is continuously changing, and they must change with that environment to remain agile. Module Code & Module Title Slide Title SLIDE 14 Slide 14 Agile Principles (summarized version)
Customer Satisfaction Teamwork
By fast and frequent By Face-to-face delivery of products. communication with all people involved. Welcome changing requirements, even late in Motivate and trust development. developers. Agile Principles (summarized version) Fast Development High Product Quality Break bigger system into small and manageable Maintain good design and components. simplicity. Close monitoring of Adopt to latest technologies. development. Module Code & Module Title Slide Title SLIDE 15 Slide 15 Popular IS Methodologies Adopting Agile Principles
Extreme Programming (XP).
For advance / heavy coding projects SCRUM A ‘team-work’ based methodology Rapid Application Development (RAD) Used for small and fast projects Dynamic Systems Development Method (DSDM). Agile Improvement on RAD, focus on rapid prototyping based on users’ feedback. Feature Driven Development (FDD). For long-term projects that frequently change and add features in regular, predictable iterations
Module Code & Module Title Slide Title SLIDE 16
Slide 16 Popular IS Methodologies Adopting Agile Principles (Cont.)
Lean software development.
Focuses on identifying and eliminating waste, while improving the software quality continuously. Dialogue-Driven Development (aka d3). Put users’ interaction and communication as the highest priority in a successful project. Kanban Methods Agile Allows you to get a whole picture of a project by visualizing the workload and the development progress.
• Most of the above Methodologies share
most (or all) of the Agile Principles. Module Code & Module Title Slide Title SLIDE 17 Slide 17 Advantages of Agile Methodologies
Customer satisfaction with frequent
delivery of the working product. Gives customers/users ‘power’ to change their minds anytime and send new requirements. Gives more ‘control’ to core developers to make decisions Emphasize the use of the latest design and technologies Encourage close communication and teamwork.
Module Code & Module Title Slide Title SLIDE 18
Slide 18 Disadvantages of Agile Methodologies
Users/customers not available at all times.
Developer - difficult to determine final cost and development time as requirements keep changing Developer – difficult to plan and deliver workable products frequently. Experts' developers and CASE Tools are expensive Often lack comprehensive documentation
Module Code & Module Title Slide Title SLIDE 19
Slide 19 Summary The Agile Methodologies are a set of Modern IS Methodologies that shares some of the Agile Principles. Agility in a software development sense means being flexible, being in control, and being able to adapt to changing environments. The Agile principles focus on customer satisfaction, fast development, teamwork, and high product quality. Popular methodologies that share some Agile principles include XP, RAD, FDD, DSDM, Lean, D3, and Kanban. In Agile methodologies, developers might face difficulties to determine the final cost, development time, and delivering workable products frequently as requirements keep changing.
Module Code & Module Title Slide Title SLIDE 20
Slide 20 Question & Answer
Module Code & Module Title Slide Title SLIDE 21
Slide 21 Next Session
• Process Oriented Methodologies
Module Code & Module Title Slide Title SLIDE 22
Slide 22 References
Tilley, S. (2019). Systems Analysis and Design
12th Edition. Cengage Learning. ISBN-13: 978- 0357117811. ISBN-10: 0357117816 Pressman, R., & Maxim, B. (2019). Software Engineering: A Practitioner's Approach 9th Edition. McGraw Hill. ISBN-13: 978-1259872976. ISBN-10: 1259872971 Dennis, A., Wixom, B,. & Roth, R.M. (2021). Systems Analysis and Design 8th Edition. Wiley. ISBN: 978-1-119-80378-2