is3320 developing and using management information systems lecture 20: project management rob...
TRANSCRIPT
IS3320 Developing and Using Management Information SystemsLecture 20: Project Management
Rob Gleasure
IS3320
Today’s lecture The software development lifecycle Waterfall approach Agile approach eXtreme Programming (XP)
The SDLC
The SDLC describes the activities performed at each stage of a software development project.
This involves six steps
1. Requirements Gathering and Analysis
2. Design
3. Development/Implementation
4. Testing
5. Implementation
6. Maintenance
Why use the SDLC
It provides a standard generic framework that can be re-used and adjusted across multiple projects
SDLC + project parameters Plan
Project parameters will include: Scope, Budget, Duration
This let’s us negotiate details with clients, spot problems early, regulate development, etc.
The Waterfall Approach
The classic model of development is the waterfall model introduced by Royce in 1970
Each phase is completed before the next begins
Idea of handover between phases, i.e. ‘waterfall’
Upstream changes may occur but only to address some emerging issues (you don’t aim for this to happen)
The Waterfall Approach
Taken from http://thenuzan.blogspot.ie/2014/09/sdlc.html
Outputs of the Waterfall Approach
Taken from Technology Specialist at Cognizant Technology Solutions, R. Angelin
Agile Approach
To combat the high failure rates and growing dissatisfaction with software development approaches, in 2001 the ‘Agile Manifesto’ was introduced
Agility is argued as a philosophy, not just a set of practices Adaptation is preferred to prediction Iteration is preferred to linearity Working code is preferred to documentation
The 12 Principles of Agility
1. Customer satisfaction by rapid delivery of useful software
2. Welcome changing requirements, even late in 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
6. Face-to-face conversation is the best form of communication (co-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
10. Simplicity—the art of maximizing the amount of work not done—is essential
11. Self-organizing teams
12. Regular adaptation to changing circumstances
Agility View of SDLC
Taken from http://zambzee.com/home/?page_id=190
Types of Agile Approach
There are many different types of agile methodologies, e.g. eXtreme Programming (XP) Scrum Dynamic Systems Development Method (DSDM) Rational Unified Process (RUP)
Of these, scrum and XP are arguably most common
eXtreme Programming (XP)
Used successfully and routinely at companies like Bayerische Landesbank, Credit Swiss Life, DaimlerChrysler, First Union National Bank, Ford Motor Company and UBS.
Built on core values of Communication Simplicity Feedback Courage Respect
Planning in XP
Business people decide about Scope Priority Composition of releases Date of releases
Technical people decide about Estimates Consequences Process Detailed Scheduling
Planning in XP
Daily standup meetings are used to manage this 15 minutes max No sitting Same time and place each day Everyone quickly runs through what they did yesterday, what
they will do today, and anything slowing them down
Designing, Coding, and Testing in XP Minimal design, especially early
Single repository for code, everyone commits their code every day
All code has unit tests
More tests created as soon as a bug is found
Code must pass all tests before it can be released
People in XP
Seat together
Whole team approach
Informative workspace
Energized Work
Pair Programming
Team Continuity
Advantages of Waterfall
Simple way to negotiate tasks and milestones with various parties
Provides structure
Milestones are well understood
Identifies issues early
Good for management
Lets quality or regulatory metrics be set in stone early on
Advantages of Agile
Reflects iterative nature of exploratory development
Ability to following changing requirements means more chance of useful output
Does not require estimation of tasks that may are poorly understood
Little administrative overhead
Value realised early – client is almost guaranteed to get something…
When to Use Waterfall
Requirements are well known and product is clearly defined
Technology is mature
New version of an existing product
Migrating an existing product to a new platform
Where implementation can’t be broken down
When to Use Agile
Everything else…
Even heavily regulated environments are adapting to use agile by following exploratory sprints with a ‘hardening sprint’
Want to read more?
The Project Management Institute http://www.pmi.org/default.aspx
Beck, K. (2004). Extreme Programming Explained: Embrace Change, Addison-Wesley
The agile manifesto http://agilemanifesto.org/