ICS 121: The Larger Product and Larger Team
Overview
- The "larger product"
- The "larger team"
- Elements of the "larger product" > External deliverables
- External deliverables: Example TurboTax
- Elements of the "larger product" > Internal deliverables
- Why is TurboTax a good example
- Members of the "larger team"
- What to realize about the "larger team"
The "larger product"
- Software products are not just code
- Internal deliverables
- Proposals, plans, status reports, postmortem
- Requirements, design, technical docs, etc.
- External deliverables
- Software, manuals, on-line help, data, installer, etc.
- Services: Technical support, operations, sales support
- More detail is given below
The "larger team"
- There are many people involved in developing software products
- Developers, Engineering management, QA
- DBA, Release engineering, Topic experts (e.g., security)
- Other engineering groups: electronic, electical, mechanical, network, etc.
- Technical writers, UI designers, Domain experts
- Product management, Marketing, Sales, Legal
- Technical support, Operations engineers
- Partners, Contractors, Venders, Key customers
- More detail is given below
Elements of the "larger product" > External deliverables
- Software
- Software system
- On-line help and manuals
- Data
- Services
- Technical support
- Electronic upgrades
- Operations, ASP hosting
- Pre-sales support
- Training and consulting
- Customization and integration
External deliverables: Example TurboTax
Elements of the "larger product" > Internal deliverables
- Internal deliverables
- Proposals: Describe potential project, outline its value
- Plans: Estimate time and cost to build
- Status reports: Keep management and other stakeholders informed
of progress. Prompts the revision of the plan.
- Postmortem: Highlights what could be learned from this project
to make the next project better
- Requirements: Detailed statement of what product will do.
Basis for testing.
- Design: Detailed outline of how the product will work. Basis
for implementation.
- Test plan: Detailed outline of how the product will be tested.
- Implementation notes: Guide to understanding the
implementation. Explain some details of how it works.
- Release checklist: Exercise to see if a process milestone is
been satisfied (e.g., is the product really ready to ship?)
- Internal release notes: Summary of changes in this release.
Why is TurboTax a good example
- Product line with many products and frequent releases
- Significant complexity to all deliverables
- Both client-side and server side
- Both new code and integration (e.g., IRS e-file)
- Significant evidence of many different revenue streams from core assets
- Popular product that anyone can see for more details
Members of the "larger team"
- Developers: Does design, code, test. Involved in many aspects.
- Engineering management: manages development schedule, interfaces to rest of organization.
- Change control board: Manages risk of changes made to shipping product
- SPI: Organization-wide advisers on software process improvement
- Reuse board: Manages organization-wide library of reusable components
- Test engineer: tests the product, supports development
- DBA: Specialist in database design and operations
- Release engineering: manages collaborative development tools, executes process steps to package and ship product
- Topic experts (e.g., security): Designs and/or implements specific aspects of product
- Other engineering groups: Design and build non-software aspects of product
- Technical writers: Writes user documents, helps with technical documents
- UI designers: Studies usage, specifies UI, designs and mocks-up screens and interactions
Members of the "larger team"
- Domain experts: Knows the business domain well, helps with (tacit) requirements
- Marketing: Decides what will make the product marketable
- Product management: Owns requirements, supports sales force
- Sales: works with customers to make sales, helps gather requirements
- Sales engineer: Provides technical support to sales force and potential customers
- Legal: protects the legal interests of the organization
- Technical support: helps users use the product
- Operations engineers: Administers ASP (server-side) components
- Manufacturing: Actually burns/presses CDs, prints manuals, etc.
- Partners: Other companies that help build, sell, or integrate
- Vendors: Companies that make and support the tools developers use
- Key customers: provide requirements, fund ongoing development
What to realize about the "larger team"
- Not all people are dedicated to one project, many groups are
"service organizations"
- Software development involves a lot of communications
- Many detailed issues and decisions
- People with different backgrounds, and different locations,
different times, different organizations and levels of trust
- Repetitive communications need the guidance of process, tools,
templates
- Your role in the larger team (illustration)
- As a developer, prepare yourself for interactions with
others
- As a software engineer you must understand the big picture and
manage interactions
- As a software engineer, there are many roles for you to
choose
sample use case templateexample test plan templateProject plan template