Model driven development. Waterfall or spiral?
Long term planning or agile development?
Staged release or continuous incremental?
Bottom up or top down?
"Waterfall" process: Requirements specification, design, implementation, integration,
installation, maintenance. Fully funded. Versus "agile" process: not much planning,
immediate implementation, stakeholder role in process. Incrementally funded.
Project Management
Capability Maturity Model. Has steps like: domain analysis,
conversion of requirements into software elements, prototyping,
formal specification with "use cases."
Reduce the risk. Establish timelines; staff up accordingly.
Monitor progress; catch slipping schedules early.
Identify blockages and work-around them.
Simplify designs, compromise on features, or rotate personel as necessary.
Maintain communication throughout the organization, and between
stake-holders and implementers.
Design and Architecture
Seek experienced architects.
Good architecture will result in software that is reliable,
robust, extensible, and maintainable. The code will be arranged
to be modular and reusable. Encourage the use of design patterns,
and provide a framework for use.
Welcome domain expertise, not just for the internals of the
software but also regarding the functionality and user interface.
Implementation
Matching talent to the task.
Provide the requested software tools and development environments.
Change Control
What gets deployed, and when?
Risk management. Quality control -- verification and validation.
Acceptance tests.
Product Support
Product life cycle: Introduction to market, growth and maturity.
User experience. Documentation.
Help desk. Issue tracking. Bug fixes, product enhancments.
Customer satisfaction. Maintenance contracts and revenue stream.
Licensing.