Upload
walter-hunter
View
271
Download
12
Tags:
Embed Size (px)
Citation preview
Dr. Ann FruhlingMs. Beth Schmidt
Mr. Alvin Tarrell
Ann Fruhling, PhD ◦ Associate Professor ISQA, UNO, Peter Kiewit
Institute Beth Schmidt
◦ Director, Applications Development, Farm Credit Services of America
Alvin Tarrell, MS MIS◦ PhD student, UNO, Peter Kiewit Institute
2
“Traditional software development methods can take too long, cost too much, or lead to a solution to a requirement that is not in fact what the user really needed. Agile software methods . . . have the ability to evolve quickly to meet users’ real, as opposed to apparent, needs.”
What Is Agile Software Development?Traditional Plan-Driven Software Development
vs. Agile Software DevelopmentAgile Software Development PhilosophiesOverview of Scrum Project Management
MethodsOverview of eXtreme Programming
Farm Credit Services of America
Organizational Readiness and Best PracticesIs Your Organization Ready for Agile Methods?Best Practices in Launching Agile Projects
3
4
1. Importance of individuals and interactions are stressed over processes and tools. People are the most important success factor in software development.
2. Creating working software is more important than comprehensive documentation. Software documentation is important, however information transfer among coders is more effective.
3. Customer collaboration is valued over contract negotiation. Successful software development requires frequent communication and collaboration.
4. Responding to changing circumstances is valued over following a rigid plan. Long-term project plans are not adaptable; short-term plans provide more flexibility in responding to change.
5
Widely used in the commercial sector, agile software development methods can streamline the systems development process and result in more reliable delivery of required functionality in less time.
Scrum is a project management method used by agile software developers.
◦Daily Scrum Meetings: emphasis on short daily meetings with the project team
◦Scrum Sprints: an increment release occurs within a time box known as a “sprint”
◦Time Boxing: the scrum methodology divides requirements into a set of discrete tasks assigned to groups.
Advantages of Using Agile Methods
◦ Improves design process◦ Automates usage tracking◦ Improves timely delivery◦ Embraces unclear requirements
6
Initial Planning & Design
Update Backlog & Reprioritize Tasks
Allocate & Assign Tasks in a Sprint
Scrum Daily Meeting
Daily Build
Should this Project Continue?
Wrap-Up / Closure
Product Delivery
Yes
The SCRUM ProcessSource: Rising and Janoff (2000)
Finished
Coding
Automated Testing
Sprint Release
Developer Select Task
Write Test Paln
The XP process is based on short development cycles characterized by:
◦ Incremental planning, evolutionary design, and an ability to respond to changing business needs.
◦ Productivity, flexibility, teamwork, minimal documentation, and the limited use of technology outside of programming.
XP was originally designed for teams of up to 10 people.
The 12 Principles of XP
1. System metaphor
2. Incremental Planning
3. Small releases
4. Simple design
5. Test-first development
6. Refactoring
7. Paid programming
8. Collective ownership
9. Continuous integration
10. Sustainable pace
11. On-site customer
12. Uniform coding standards
8
Gather/Adjust Scenarios
fail
Write Test PlansAssign
Programming Pairs
Interim or Full Release
Acceptance Testing
Code
Final Delivery Documentation
How did we get there? Pilot Project Engaged Cutter Consortium
• Presented recommendations to IT Steering Committee
• Training and follow-up consulting Reorganized IT – focusing on project
resources Implemented workspace changes Full adoption in 2005
Project Successes: Appraisal system Insurance system Credit process revolution – Connect4 Financial Analysis tools Online Dealer tools
How’s It Going? More business input into the product Unit tests/TDD Old habits are hard to break Testing methodology and learning curve Inconsistency across teams…Agile
Champion Team
The experiences of a range of agile project teams underlined the importance for leaders to examine four fundamental aspects of their organization before embarking on agile transformation:
1. The state of the current organizational culture: Is it ready to embrace change?
2. The current IT infrastructure: Is it ready to invest in access to up-to-date technology and tools?
3. Management and leadership commitment: Is it ready to endorse the move to agile methods?
4. The transitional project selection: Is it ready to begin on a small, achievable project?
13
14
For Initial Startup
Select Agile team members with the specific attributes needed:◦ Can-do attitude◦ Experienced problem solvers◦ Mutual trust◦ Excellent communication and
interpersonal skills◦ Domain-knowledge expertise
For Project Implementation◦ Conduct initial and
incremental planning meetings
◦ Conduct a pilot agile project◦ Consider a la carte
introduction of XP practices
For Ongoing Development◦ Designate an agile champion
team◦ Schedule open time◦ Automate continuous testing◦ Employ a migration control expert◦ Exploit multiple forms of
communication◦ Provide access to the internet to
research solutions◦ Address classified environment
challenges
These best practices were derived from interviews of 11 IT project teams from a range of organizations that had 1 to 4 years of experience in using agile software development practices. These included 7 DOD teams, 3 industry teams, and one university team.
Report Authors:Ann L. Fruhling, Associate Professor
Information Systems and Quantitative Analysis
Peter Kiewit Institute
University of Nebraska at Omaha
[email protected], (402) 554-4968
Alvin E. Tarrell, PhD Student, Information Technology
Peter Kiewit Institute
University of Nebraska at Omaha
[email protected], (402) 850-0581
15
For free copies of the report, visit the IBM Center for the Business of Government website: www.businessofgovernment.org
16
Ann Fruhling, PhD ◦ [email protected]
Beth Schmidt◦ [email protected]
Alvin Tarrell, MS MIS◦ [email protected]