5 laws and principles that can be applied to software engineering
- Development
- Equipe Editorial
Software engineering involves developing software solutions, from planning to final delivery to the client. For this delivery to be successful and, above all, high-quality, a sound strategy is required.
With that in mind, let’s explore some fundamental laws and principles that can represent true driving forces behind software engineering decisions and planning.
1. Conway's Law
What the law says – Conway’s Law describes the connection between the communication structure of organizations and the systems they design. It’s named after computer programmer Melvin Conway, who introduced the idea in 1967.
How it applies – If communication between teams in the organization is difficult, communication between layers of the software will likely also be difficult, which will result in a poor user experience.
2. Brooks' Law
What the law says – Brooks’s Law is an observation about software project management that states that adding new developers to a project that is behind schedule contributes to making it even later. It was coined by Fred Brooks in 1975.
How it applies – New developers will first have to understand and comprehend the entire system, its architecture and design, before they can start producing any useful code, which would delay the delivery of the project.
3. Pareto Principle
What the principle says – The Pareto Principle states that, in many projects, 80% of the results derive from 20% of the causes. In short, a small proportion of the causes have a disproportionately large effect on the results. This principle was developed by economist Vilfredo Pareto in 1896.
How it applies – You can use the 80/20 rule to prioritize tasks that need to be completed during the workday. The goal is to complete the 20% of all the tasks on your list that will result in 80% of the possible impact that day. Therefore, to make the greatest impact, identify the most important tasks for your team and focus on them during the workday.
4. Linus's law
What the law says – The law, formulated by hacker Eric S. Raymond, says that with many collaborators, any problem in a system can be detected and fixed.
How it applies – Linus’s Law broadens our understanding of how we should approach challenges in software development. It teaches that, instead of looking for someone to blame, we should focus on collective collaboration to solve bugs that may arise during the process.
5. Murphy's Law
What the law says – Murphy’s Law is based on premises that explain everyday events from a pessimistic perspective, that is, the expectation of negative outcomes from various events. It was created by American engineer Edward A. Murphy in 1949.
How it applies – Although known as a pessimistic law, Murphy’s Law reminds us to always be prepared for the unexpected. With planning, testing, and contingency plans, you’ll be better prepared to handle whatever comes your way.