Chapter 5 – Managing Software Organizations
- Need to have an organization-wide agreement on the definition of “completion” and “successful”
- The basic principles of project management
- each project has a plan that is based on a hierarchy of commitments
- a management system resolves the natural conflicts between the projects and between the line and staff organizations
- an oversight and review system audits and tracks progress against the plan
- Commitment Discipline
- commitments are met by committed people
- a commitment is an agreement from a person to do something by sometime (in return for something — ‘consideration’ in legalese Meet you schedule times or find another job…)
- when there are lots of people involved in a project, mutual commitments become essential to prevent workflow bottlenecks
- necessity of commitment discipline increases with size of project
- elements of effective commitment
- person making the commitment does so willingly implication here seems to be that if you are a tester, you should be the one making the test duration estimates or at the very least should have the opportunity to disagree with the ones someone else dreamed up
- the commitment is not made lightly
- there is an agreement between the parties on what must be done, by whom and when
- the commitment is openly and publicly stated
- the person responsible tries to meet the commitment, even if help is needed
- prior to the committed date, if it is clear that it cannot be met, advance notice is given and a new commitment is negotiated
- Brooks: Schedules are missed a day at a time
- Committed organizations meet their commitments both large and small. When organizations are sloppy about their minor commitments, the people sense the lack of concern and the big ones are treated with less care as well
- senior management needs to be personally involved in the commitments of their organization as their direct the culture of those under them
- prior work needed to be done before a commitment is approved
- the work has been defined and agreed to between the developers and their customer don’t forget, a customer does not have to be a paying one; test is a customer of development for example
- a documented project plan has been produced, including a resource estimate, a schedule and a a cost estimate
- a directly involved parties have agreed to this plan in writing avoids the “thats not what I agreed to” conversation when the schedule runs off the rails
- adequate business and technical preparation has been done to ensure that the commitment represents a reasonable risk key word is reasonable; for example, a commitment to an aggressive feature list in a tight schedule for one of the world’s largest financial institutes when you cannot make small internal feature releases on time might not be reasonable
- an independent review has been conducted to ensure that this planning work was done according to the organization’s standards and procedures
- the groups participating in the work have or can acquire the resources required
- The Management System
- general components of any organization’s objectives
- to have a technical or business strategy that aims at such long term goals as growth rate or market position
- to provide quality products that meet customers’ need in a timely and effective way
- to perform the assigned mission competitively and economically
- to improve continually the organization’s ability to handle more challenging work
- since some of the above are in conflict, trade-offs are necessary
- there cause of conflict is management’s period focus (this quarter, this half, this year) vs development whose schedules have no bearing on such notions and could span over a year
- project work is driven by external customer desires with little regard for the organization’s mission or continuing needs
- the organization’s direction is set in it’s strategy (a long term plan — 5 or more years in the future)
- use reviews and a contention system to resolve conflicts
- contention system principles
- all major decisions were reviewed with the involved parties in advance, and the parties are requested to agree
- when time comes for agreement, all dissenting parties are present and asked to state their views
- when there is no disagreement, the senior manager determines if there is knowledgeable agreement, if any disagreeing parties are absent, or if more preparation is necessary (decision is postponed in later two cases)
- a contention system does not foster disagreement, because that already exists. it lets it be leveraged in a constructive manner
- as long as there is an environment in which dissenting views are encouraged and issues are resolved in an objective manner, progress will be made eve when there is serious disagreement
- since the early seeds of most disasters are sensed by the professionals, an effective contention system can provide valuable advance warning
- quarterly reviews should address two things: this past quarter and the next quarter
- lots of discussion during quarterly review reports is an indicator that the project is at risk
- milestones in the review must be unambiguous
- in any organization the people quickly learn which subjects are most important by watching where the senior managers spend their time. since most professionals have much more to do than they can handle, the items senior management is most interested in are done first. the others are deferred and often never done at all
- need also to do reviews at critical phases of the project (like the hand-off from dev to test)
- the final step of any phase review is authorization to proceed with next phase
- principles of a phase review
- before initiation and at predetermined points during the project, detailed technical and management reviews are conducted
- the particular review points are selected based on the following criteria
- whenever major resource commitments are required
- at key technical milestones
- at reasonable calendar intervals
- the review is conducted by the project manager
- all involved line and staff organizations participate
- the meeting is not to resolve issues but to identify them and assign resolution responsibility
- the project manager, with finance and SQA concurrence decide whether
- the phase was successfully completed
- after issue resolution, the phase is to be considered complete
- another review is required
- escalation should be made to senior management
- the review is concluded and senior management notified of final conclusion
- SQA is involved in the phase success decision because they ensure that the processes and principles of the organization have been met during the phase don’t forget, QA is more than just testing
- general components of any organization’s objectives
- Establishing a Project Management System
- if project management is not aware of an actively involved in project issues, no other management system can be fully effective
- while setting up a project management system is pretty straight forward, it is not a trivial task
- steps to setting up a project management systems
- convince senior management the system needs to be implemented
- define the commitment system
- establish the quarterly review system
- establish the phase review system