Upload
samuel90
View
511
Download
1
Tags:
Embed Size (px)
Citation preview
Software project management
Process, people, power tools
14:1
Project Management
“... can be a profession, a job, a role, or an activity.” —Scott Berkun
!e Art of Project Management
former Microso! project manager
Project Management: the tasks
• estimating & negotiating
• organizing & sta!ng
• planning & scheduling
• managing risks
• establishing standards & disciplines
• con"guration management
• measuring & monitoring
• facilitating, motivating, & mediating
Project Management: the context
“!e bad news for so"ware developers is that some of the most fundamental aspects of creating your own security revolve around people skills, political acumen, and all those other ‘so" skills’ that most techies look down on.”
—Christopher Duncan!e Career Programmer: Guerilla Tactics in an Imperfect World
“Remember... if your project dies, no one will ever see how cool your code was.”
Project Management: facilitating, motivating, & mediating
Software Development Teams
types • formal vs. self-organizing
• large vs. small
• virtual vs. immediate
Software Development Teams
Structure & anatomy
• members
• individual needs & experiences
• group norms
• life cycle
• organizational style
Software Development Teams: structure & anatomy
Members
• skill sets
• roles
• personalities
Duncan on types of programmers
the authority knows all things on all subjects, regardless of actual experience
the old-school programmer there was a time on Earth when computer programmers were geeks... organized and well prepared, and tend to think things through thoroughly before implementing a plan of action
the company man a strange genetic hybrid between a Suit and a programmer
the slug my personal inclination with such people involves an open #"h-$oor window but, out of consideration for the health and well being of small, hairless canines everywhere, I’ve learned to just let it go...
the arrogant bit head possessing no social skills that I’ve ever been able to discern...
the terminally educated strong on academia, weak on hitting deadlines
the wild man probably just exists for our own personal entertainment
Software Development Teams: structure & anatomy
Individual needs (“interpersonal underground”)
• "nding a place in the group
• power & leadership issues
• intimacy & trust
• motivation & productivity
Software Development Teams: structure & anatomy
Group norms
e.g. “Everyone comes to meetings prepared”
“We don’t talk about con#icts”
Software Development Teams: structure & anatomy
Organizational style
• democracy
• autocracy
• free agency
• community
Software Development Teams
Managing interpersonal dynamics
• communication levels (a!er Berkun): 1. transmitted 2. received 3. understood 4. accepted/agreed with 5. applied/commited to action problems unilateral: unclarity, dictation, ad hominem et al bilateral: mistakenly assumed shared assumptions
Software Development Teams
Managing interpersonal dynamics
• communication
• con#ict listen
❧ be (and appear) attentive ❧ don’t argue mentally or be impatient ❧ restate/re#ect/reformulate
negotiate ❧ separate the people from the problem ❧ focus on interests rather than positions ❧ generate a variety of options before settling
Software Development Teams
Team maladies/maladaptations
• cosmetic teams
• free riding
• risky shift
Duncan on the corporate food chain
the CEO from his lo!y view, all the details that are critical from your front-line position are lost... he has the power to lay waste to entire departments
Upper management (heads of accounting, manufacturing, human resources, marketing, software development) these critters are known for their aggressive behavior and are always positioning themselves to take over the turf of any other managers
Middle management harmless-looking creatures, attired as they are in their natural “business casual” camo"age... [but] the greatest threat to survival o!en comes from those just above you in the natural order of things
“...advice from one manager is taken more seriously than are recommendations from someone at a lower level who actually produces something... because he is, a!er all, a manager.”
Project Management
Methodologies/processes/practices
• cowboy management
• heavyweight - “Rational...”
• lightweight - “Agile...”
➵ the result of a dialetic
➵ not one-size-!ts-all
Software Project Management: A Unified Framework (Hardcover) by Walker Royce
(22 customer reviews)
“...a cutting-edge take on how to manage today's object-oriented, iterative so!ware development process...”
"le!_hand" (Boulder, CO United States) - See all my reviews
Royce’s text provides a lucid, straightforward explanation from an elitist management perspective of how... a technical management methodology can be used to exclude so!ware engineers from asserting control over the production processes in which they participate.... In this way, the costly freedoms o!en exercised by so!ware developers bent on maintaining an old-style guild or shop attitude in the workplace (o!en disguised as “pride in individual workmanship”) is eliminated. Engineering methodologies replace the personalities and, indeed, even the personhood of the lone so!ware developer....
"e message rings out clearly: so!ware development as a realm of individualized creativity and exploration is now a thing of the past. So!ware companies must impose conformity and Taylor-like authoritarian control. So!ware developers should be made to realize that they are nothing more than cogs in a wheel, and that management is justi#ed in intervening in every aspect of their working life.....
An excellent work!
asmythee (United States) - See all my reviews
From an above review:
“"e message rings out clearly: so!ware development as a realm of individualized creativity and exploration is now a thing of the past. So!ware companies must impose conformity and Taylor-like authoritarian control. So!ware developers should be made to realize that they are nothing more than cogs in a wheel, and that management is justi#ed in intervening in every aspect of their working life.”
As a programmer and project manager, yes, this is the case. And it should be the case. "e roles don’t necessarily mean two di$erent and distinct people always, but programming is a commodity function in large so!ware projects. At least those that wish to be successful.
For example, would you rather %y on a plane whose systems were programmed and managed by a group of so!ware engineers each of whom was free to exercise his or her own "individualized creativity and exploration" or a group that used Royce's work in managing the project?
I’ll be on the latter plane thanks.
P. Heath (Hurst, TX United States) - See all my reviews
"is book is hard to rate because I think the author has done a #ne job of presenting the material. However, I would caution most people from putting it into practice. "e management process outlined is very rigorous, and should be reserved for defense contractors and other organizations that deliver large commercial applications to external clients. For so!ware organizations that deliver applications internal to their company, the process in this book is probably a bit more than is needed....
As it turns out, Royce was involved in the development of the CCPDS-R missile command system: “... a critical missile warning communications system... designed to receive, process and display real-time ballistic missile tactical warning and attack assessment information to the national command authorities.”
Project Management: methodologies/processes/practices
Heavy methodologies
• Capability Maturity Model (CMM)
levels of organizational maturity 1. initial (chaotic, ad hoc, heroic) 2. repeatable (project management, process discipline) 3. de!ned (institutionalized) 4. managed (quanti!ed) 5. optimising (process improvement)
Project Management: methodologies/processes/practices
Heavy methodologies
• Capability Maturity Model (CMM)
• Rational Uni!ed Process• heavy use of UML in full detail
• software tools for producing diagrams & other documents
• proprietary libraries of guidelines, report templates, etc.
• focus on predictive control & extensive prescribed docs
Project Management: methodologies/processes/practices
Light methodologies
• Agile Software DevelopmentThe Manifesto:We are uncovering better ways of developing so!ware by doing it and helping others do it. "rough this work we have come to value:
• Individuals and interactions over processes and tools • Working so!ware over comprehensive documentation• Customer collaboration over contract negotiation• Responding to change over following a plan
Project Management: methodologies/processes/practices
Light methodologies
• Agile Software Development
• Extreme Programming (XP)➢ small releases (short timeboxes)➢ incremental planning; evolutionary design➢ continuous integration; automated tests➢ reliance on direct communication➢ embrace change
Agile Software Development: Extreme Programming
Practices• Simple design - the simplest thing that could possibly work
• Refactor - restructure without changing behavior (DRY)
• Test-driven coding - when it passes the tests, coding is done
• On-site customer - there is no ‘us’ and ‘them’ (there is only us)
• Bullpens - the most e"ective communication is face-to-face
• Pair programming - one drives, one navigates
• Collective ownership - anyone can change anything anytime
Agile Software Development: Extreme Programming
Power tools• Version control
➢ CVS➢ Subversion
Agile Software Development: Extreme Programming
Power tools• Version control
• Unit testing➢ JUnit import junit.framework.*;
public class TestSimple extends TestCase {
public TestSimple(String name) { super(name); }
public void testXmeth() { assertEquals(6.2,xMeth(3,17)); } }
Agile Software Development: Extreme Programming
Power tools• Version control
• Unit testing
• System builds➢ Ant➢ Maven