MSP,SV - Spidi - Indian Institute of Management Bangalore

advertisement
Managing Software Projects
Backdrop
Software today comes in several shapes and sizes. Commercial off-the-shelf (COTS) packages like
Office enable users to carry out desktop tasks such as word processing and spreadsheet manipulation.
Larger packages like SAP facilitate enterprise-level functions such as supply chain management and
HR. Systems software like a mobile phone stack brings a hardware device to life. Finally, custom
software like the IRCTC web site helps establish an interface between the customer and the
enterprise.
Each avatar of software is an outcome of close deliberations by a project team with a motley bunch of
stakeholders -sponsors, subject matter experts, QA groups, end users, and so on. This team is forced
to live inside a “tar pit” of incomplete requirements, premature development, shortened test cycles,
and last minute changes. Consequently, software projects tend to navigate choppy waters during much
of their lifecycle.
Well-published surveys of software implementations highlight a crisis: a good third of the projects are
cancelled midway. Few fingers are pointed at technology shortcomings. Rather, some familiar people
and process issues are the common culprits. Fred Brooks, a software legend, once declared that no
silver bullet can safeguard software projects against the essential monsters that haunt them. Many
decades later, his statement remains uncontested.
The Project Manager
A seasoned project manager (PM) deftly mixes process with people to get the job done. Encouraging
team members to focus on their mission, the PM ensures that their morale is not compromised in the
heat of delivering a system. One hallmark of a good PM is the ability to negotiate with stakeholders
without adversely impacting relationships. Developers are known to crave task variety, and are averse
to routine. Again, good PMs must know how to balance their expectations.
20th century software teams typically implemented projects using the waterfall process. In this
approach, a PM worked with senior clients to identify system requirements. System features were
fleshed out with a prototype, and critical risks were addressed. Post this, development commenced on
a mutually agreed baseline of features, with an expanded team. A change control board was
established to limit requirements creep. Periodic checkpoints offered stakeholders an opportunity to
study the progress.
The Agile Approach
The scenario portrayed may appear adequate. However, teams adhering to the model discovered that
it led to poor resource utilization and caused great client dissatisfaction. Whereas a client could have
benefited from a feature enhancement, the team was loathe to execute late arriving requests, due to the
impact they may have had on the code. Recognizing these concerns, an enlightened group of
professionals came together in 2001 to formulate the Agile Manifesto.
The Agile approach to build software is founded upon principles that underscore continuous customer
collaboration, openness to change, frequent releases, and self-organizing teams that improve their
process on an ongoing basis. Techniques such as extreme programming and Scrum embody the
philosophy of Agile, and are being embraced by teams and organizations worldwide, even on large
efforts.
Managing Software Projects: The Course
This 20-session course is designed for an audience with at least 2-years of acquaintance with the
software industry. The course has two main goals:
To appreciate process neutral aspects of software management, specifically with regards to system
requirements, scope management, and so on. To equip the participant with a working knowledge of
Agile. A hands-on project shall expose teams of participants to the dynamics of an agile effort
Here are some objectives on the people and process dimensions of software projects.









People Process
Facilitate meetings and brainstorms
Participate in a contract negotiation
Provide individual and team feedback
Manage the client relationship
Elicit and capture project requirements
Estimate the effort for a project
Schedule a project using the WBS
Establish quality assurance mechanisms
Make no mistake, this is an intense program on project management. It employs a mix of instructorled discussions, inputs from industry professionals, and participant insights. Exercises on
brainstorming, negotiation and estimation, captured on video for a debrief, shall give participants a
realistic feel for these “routine” activities. Finally, all participants are expected to work in small
groups on a tight-paced project assignment.
For a course on Managing Software Projects to have any substantive effect, a student must prepare for
each session (many will have caselets) and attend class at least 80% of the time. It's a course on
project management, after all!
Schedule
No. / Topic Assigned / reading
1 The World of Software
Brooks, Fred. No Silver Bullet: Essence and Accidents of Software Engineering. IEEE Computer
(1987)
2 What can go wrong?
McConnell, S. Rapid Development. Case on Classic Mistakes
3 Risk management
McConnell, S. Rapid Development. Case on Risk Management
Boehm, B. Software Risk Management: Principles and Practices. IEEE Software (1991)
4 Methodologies
Larman, C. Iterative, evolutionary and agile, in Applying UML and Patterns (2004)
5 Project requirements
Fairley, R. & Wilshire, M. Why the Vasa sank: 10 problems and antidotes for software projects. IEEE
Software (2003)
6 Refining requirements
Ross, P. The Exterminators. IEEE Spectrum (2005)
7 Brainstorm (Interactive exercise)
Doyle, M. and Straus, D. Facilitation from How to make meetings work. Berkley Reprint (1993)
8 The Agile Approach
Schwaber, K. The Scrum Guide
9 User stories
Web links
10 The Agile Workshop (Guest lecture)
Longstreet, D. The Agile Method and other fairy tales
11 Estimation
McConnell, S. Rapid Development. Case on Estimation
12 Planning Poker (Interactive exercise)
Web links
13 Software Costing
Venkatagiri, S: Destination Saptadweep
14 Negotiation analysis
Sebenius, J.K. The hidden challenge of cross-border negotiations. Harvard Business Review (2002)
15 Negotiation (Interactive exercise)
Case handed out in advance
16 Software Testing
Whittaker, J.A. What is software testing? And why is it so hard? IEEE Software (2000)
17 Project Metrics
Kulik, P. A practical approach to software metrics. IT Pro (2000)
18 Question of quality
Fishman, C. They write the right stuff. FastCompany (1996)
19 Peopleware
Web links
20 Presentations Project Presentations
A copy of Steve McConnell’s classic on project management titled Rapid Development1 shall be
made available to each participant. This book contains crisp caselets in a realistic software setting. We
shall be discussing the caselets daily. It is expected that the participants shall jointly work with their
respective project groups on these caselets.
Faculty Profile
Shankar Venkatagiri is a faculty member in the Quantitative Methods & Information Systems area at
Indian Institute of Management Bangalore (IIMB). His interests are in open source software, software
project management and educational technologies.
Shankar began his professional career at Sapient Corporation, Cambridge, where he consulted with
clients in the energy and healthcare sectors. He then developed bandwidth-efficient Internet
applications at Curl Corporation, an MIT-based technology start-up. As a senior consultant with
Reuters Consulting, he worked with brokerage firms and banks in the role of a solutions architect.
At IIMB, Shankar has chaired the long duration PGSEM program, which is targeted at professionals
in the software industry. With over six years of experience in the industry, he has developed a keen
appreciation for the various facets of software management. He has also conducted project
management training at prominent firms like NDS.
An alumnus of IIT Kharagpur, University of Southern California and Georgia Tech, Shankar holds a
doctorate in mathematics and a masters degree in computer science.
1 http://www.amazon.com/Rapid-Development-Taming-Software-Schedules/dp/1556159005
Download