DPC2019: Software Management Lessons from the 1960s - Larry Garfield

Discover timeless software management lessons from the 1960s with Larry Garfield, including iterative design and incremental personnel additions.

Key takeaways
  • Record a conference talk by Larry Garfield, which highlights lessons learned from software management in the 1960s.
  • Design top-down but implement iteratively; waterfall design did not work then, and it doesn’t work now.
  • Add people to a project at the same time can lead to conflict, so adding people in increments can help minimize this problem.
  • When trying to decide if a system needs to evolve, ask whether it makes sense to modify the code vs. throwing the code away.
  • Reuse and iteration in software development can reduce the likelihood of errors and make it more scalable.
  • Brooks (1964) said that adding complexity to a program by adding code will require the same time and money, but reusing components will not be more time-consuming.
  • Systems that work on different conceptual models do not interact well and therefore require distinct programming languages to communicate efficiently.
  • System integrity is key in software design.
  • A clear concept of the desired end system will save time, as less coding will be necessary for implementation.
  • Small, maintainable and modifiable systems require a great deal of upfront thinking and planning to get it right.
  • For any system of over 20 to 30 people working on it simultaneously, it is recommended to have many people work together in an agile manner.
  • Open source principles and collaboration will help in terms of code development and improvement, reusability, scalability, and better debugging.
  • People tend to spend most of their time in a very few places.