Skip to content

The Perpetual Struggle of Best Practices

Published: at 04:50 PM

A pragmatic definition.

Purpose

The sole purpose of this publication is to inform, appeal, gain the attention of you as a reader, and motivate you to contemplate over the question: What is a Best Practice?

Index

Introduction

Best Practices encompass a set of methodologies, principles and guidelines used to improve the quality, efficiency and maintainability of the software engineering process.

By adhering to them, teams of engineers can achieve a streamlined development process and are able to deliver reliable and scalable software solutions, while minimizing risks, errors and technical debt.

5W1H

What

Simply expressed: Best Practices are a set of fundamental methodologies to achieve high quality software.

Why

Best Practices are used for the following main reasons:

Who

Best Practices are used by everyone involved in the engineering lifecycle of software, specifically:

When

Best Practices shine when building mission-critical, large-scale, long-term, high-volume, value-drive software programs/applications.

Where

Best Practices are used during the entire software engineering lifecycle, specifically:

How

The implementation of Best Practices involves the adoption of specific methodologies, tools and principles in the following key software engineering phases:

Pros & Cons

Pros

Cons

Conclusion

Balancing Best Practices with pragmatic decision-making is crucial to maximize their benefits while minimizing potential downsides.

Cost-Benefit Aspect

Cost considerations can influence how Best Practices are applied and prioritized.

Most best practices reduce long-term costs by improving key processes within a team. For example:

Overall, a group of engineers must balance the cost of adopting and implementing a Best Practice with the benefits it brings, to ensure that the outcome is both high-quality and viable. A few examples:

What makes a practice a Best Practice?

A practice can be considered a Best Practice when a few key criteria are fully met:

  1. Well proven results
    It has consistently led to positive results across project and applications, and it is supported by tangible data, studies or even research which demonstrate its effectiveness.
  2. High adoption rate
    It is broadly adopted across the industry or academia, becoming part of core standards, ie: Agile, DevOps etc.
  3. High efficiency
    It helps achieve goals more efficiently by optimizing the use of resources, ie: time, people, money etc
  4. High scalability
    It is easily scalable, so that it can be successfully applied to small or large contexts.
  5. High quality
    It contributes to higher standards of quality, ie: code, products, processes etc.
  6. Risk minimization
    It helps reduce risks of errors and failures, thus resulting to more predictable and reliable outcomes.
  7. Continuous feedback, learning and improvement
    It can be evolved based on new technologies, feedback, reviews and more, thus remaining relevant and effective over time.

Ok, but which Best Practices are the best for me, my project or my team?

Choosing the most suitable Best Practices for your case is not always straightforward.

When multiple meet your needs, you should evaluate and prioritize them based on several factors:

  1. Alignment with Goals
    Choose the Best Practices that align the most with your project deliverables and goals. Prioritize your most important requirements (whether it is performance, security etc) and go for the Best Practices that favour them the most.
  2. Resource Availability
    Assess the cost for your team to adopt a specific set of Best Practices. Go for the Best Practices that strike the best balance between the benefits they bring and the time, effort, maintenance they require.
  3. Team Consensus
    Always involve your team and your colleagues when deciding about the adoption of specific Best Practices. Gather their feedback and based on that reach a collective agreement.
  4. Trade-offs
    Weight key trade-offs against your project’s needs, ie: short term cost vs. long term benefits, less flexibility vs. more reliability, etc.
  5. Risks
    Check for the most probable risks in your project, and choose the Best Practices that minimize them the most, ie: vulnerabilities, technical debt, etc.
  6. Size and Scope
    Always keep in mind the size, complexity and scope of your project. Choose the Best Practices that are better suited for the quantitative qualities of your project.
  7. Scalability
    Consider the Best Practices that can scale easily along with your project’s growth and team size, both in the short term and the long term.
  8. Product and User Impact
    Check which Best Practices contribute the most to the overall quality of your final deliverable, thus providing a better experience and outcome for your users.