Designing Systems for Competitive Advantage
- Understand the customer
- Be with the customer
- Know everything
- Design from first principles
- Design for flexibility
- Design for new features while maintaining maximum backward compatibility
- User training costs money and time
- Validate the design
- Just do it!
It is possible to spend years studying and refining requirements. Some people make a career out of it. There are projects where excessive system requirements is necessary. Most projects do not involve landing a man on the moon or
Have the right amount of requirements down.
- Have an acceptance plan
- Have as few people involved as possible
Experience and ability count. Design is best done by a single person or a small team. For initial designs, I have found
2 person teams to be most effective. One that really knows the customer, can anticipate their needs and gauge their reaction
to possibilities. The other person really knows the technical possibilities occurring from system design.
- Do it fast.
Life is unpredictable. Projects get cancelled, budgets axed, people transferred. Once you have the green signal, design
and deliver the first version of the system as soon as possible.
- Make the schedule for each individual activity tight. When people have lax
schedules they tend to relax till the schedule becomes tight again. Keep a
global safety margin for the project and keep it a secret.
- You cannot plan a Research project. Before laying down a schedule
make sure all elements that require research have been accomplished.
- Have the best talent for project design. Design is the most important part
of the project and has long term implications. Best talent is often costs
more money but works out much cheaper for the project as a whole. Once the
design phase is over you can switch over to cheaper, run of the mill talent
with reviews and help from your A team.