30
Software project management Process, people, power tools 14:1

Software project management Process, people, power tools

Embed Size (px)

Citation preview

Page 1: Software project management Process, people, power tools

Software project management

Process, people, power tools

14:1

Page 2: Software project management Process, people, power tools

Project Management

“... can be a profession, a job, a role, or an activity.” —Scott Berkun

!e Art of Project Management

former Microso! project manager

Page 3: Software project management Process, people, power tools

Project Management: the tasks

• estimating & negotiating

• organizing & sta!ng

• planning & scheduling

• managing risks

• establishing standards & disciplines

• con"guration management

• measuring & monitoring

• facilitating, motivating, & mediating

Page 4: Software project management Process, people, power tools

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.”

Page 5: Software project management Process, people, power tools

Project Management: facilitating, motivating, & mediating

Software Development Teams

types • formal vs. self-organizing

• large vs. small

• virtual vs. immediate

Page 6: Software project management Process, people, power tools

Software Development Teams

Structure & anatomy

• members

• individual needs & experiences

• group norms

• life cycle

• organizational style

Page 7: Software project management Process, people, power tools

Software Development Teams: structure & anatomy

Members

• skill sets

• roles

• personalities

Page 8: Software project management Process, people, power tools

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

Page 9: Software project management Process, people, power tools

Software Development Teams: structure & anatomy

Individual needs (“interpersonal underground”)

• "nding a place in the group

• power & leadership issues

• intimacy & trust

• motivation & productivity

Page 10: Software project management Process, people, power tools

Software Development Teams: structure & anatomy

Group norms

e.g. “Everyone comes to meetings prepared”

“We don’t talk about con#icts”

Page 11: Software project management Process, people, power tools

Software Development Teams: structure & anatomy

Organizational style

• democracy

• autocracy

• free agency

• community

Page 12: Software project management Process, people, power tools

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

Page 13: Software project management Process, people, power tools

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

Page 14: Software project management Process, people, power tools

Software Development Teams

Team maladies/maladaptations

• cosmetic teams

• free riding

• risky shift

Page 15: Software project management Process, people, power tools

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.”

Page 16: Software project management Process, people, power tools

Project Management

Methodologies/processes/practices

• cowboy management

• heavyweight - “Rational...”

• lightweight - “Agile...”

➵ the result of a dialetic

➵ not one-size-!ts-all

Page 18: Software project management Process, people, power tools

"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!

Page 19: Software project management Process, people, power tools

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.

Page 20: Software project management Process, people, power tools

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.”

Page 21: Software project management Process, people, power tools
Page 22: Software project management Process, people, power tools

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)

Page 23: Software project management Process, people, power tools

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

Page 24: Software project management Process, people, power tools
Page 25: Software project management Process, people, power tools

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

Page 26: Software project management Process, people, power tools

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

Page 27: Software project management Process, people, power tools

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

Page 28: Software project management Process, people, power tools

Agile Software Development: Extreme Programming

Power tools• Version control

➢ CVS➢ Subversion

Page 29: Software project management Process, people, power tools

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)); } }

Page 30: Software project management Process, people, power tools

Agile Software Development: Extreme Programming

Power tools• Version control

• Unit testing

• System builds➢ Ant➢ Maven