In this post to his site Christian Mackeprang shares what he calls "Newton’s 3 Laws of Software Craftsmanship" - some guidelines to follow in your development to help make things a bit more sane.
Are there unbreakable laws ruling the process of software development? I asked myself this question while reflecting on a recent project, and the answer leads to many conclusions, some already known and some more revealing.
Scientific laws reflect reality and cannot be broken. They have strong implications onto how we build things. For instance, there is no point in building a car with vertical propulsion once you’ve observed that the law of gravity will prevent your car from drifting into space anyway. But software lives in the logical world. Does it really follow any laws?
He shares his three laws and provides a bit of background for each:
- "Under fixed circumstances, every solution will behave the same way, unless it has been modified."
- "The impact of a technical decision is directly proportional to the size of the project and to how much of it is affected."
- "Every technical decision comes with an implied tradeoff."
He also includes a "how to be mindful" section for each of the laws, giving you both practical and mental tips to help you follow it.