The Mythical Man Month: Essays on Software Engineering - qu-reeds/qu-reeds.github.io GitHub Wiki
[via a review on GoodReads]
-
Estimating software project completion time is really hard. (Requirements change, software is intangible and it has to fit with idiosyncrasies of human systems)
-
Aristocracy in managing projects is better. There should be one final decision maker. Metaphor is a surgical team.
-
Cost of coordination and communication within large teams is often ignored. This causes poor estimation.
-
If a project is delayed - rescheduling or reducing scope is recommended. Adding manpower will result in further delay.
-
Avoid cramming features in the second system (reminded me of Vista)
-
Written specification is very important. It should describe everything that the user can see about the product.
-
Algorithm can be predicted from the data tables.
-
Small number of documents become the pivots of product management (Objectives, Specifications, Schedule, Budget)
-
Quantify change by using version numbers
-
More bugs are found as the number of users increases
-
Things are always their best at the beginning
-
Repairs (software) increase entropy
-
"Sustained concentration reduces thinking time"
-
Milestone should be concrete, specific measurable events. Pay strict attention to even the slightest delays, Projects get delayed one day at a time.
-
Hard part of building software is: specification, design, & testing
-
Creative activity has three steps:
- Formulation of conceptual construct
- Implementation in real media
- Interativity with users in real uses
-
"Conceptual integrity of the prodcut as percerived by user is the most important factor in ease of use"
-
Use keyboard shortcuts to design for power users and novices
-
"People with more time take more time"