Difference between Best practises and Practices?

3 Book recommendations

The Difference Between "Best Practices" and "Practices"

I argue that the term "best practice" is less important than simply "practices" when it comes to software engineering. What is considered a best practice at one company may fail at another due to differences in context. Instead, I prefer to call them "software engineering practices" - tried-and-tested approaches that help with various dimensions of the software development process.

Common Software Engineering Practices

I provide an overview of common practices across four areas:Planning:

  • Written planning processes like RFCs, design docs, ADRs

  • Standardized approaches to architectural diagrams

Development:

  • Automated dev environment setup

  • Prototyping

  • Code reviews (pre-commit or post-commit)

  • Automated code formatting and linting

  • Project templates and code generation

  • Automated preview environments

  • Cross-platform development frameworks

  • Continuous integration and deployment (CI/CD)

  • Project management methodologies like Scrum, Kanban, SAFe

Testing:

  • Automated testing (unit, integration, end-to-end, performance, load)

  • Test-driven development (TDD)

  • Testing environments and testing in production

  • Load testing and performance benchmarking

  • Generating realistic test data

Shipping & Maintenance:

  • Feature flags and experimentation

  • Staged rollouts / progressive delivery

  • Monitoring, alerting and logging

  • Debugging production issues

  • Documentation and runbook templates

  • Database migration practices

Questions to Ask Before Adopting a New Practice

Before introducing a new engineering practice, I recommend asking two key questions:

  1. What is the problem we are trying to solve? Be clear about the current issues and their impact. Common problems include developers spending too much time on certain tasks, quality issues, slow execution, too much context switching, or difficulty performing certain actions.

  2. What would be the effect if we adopted this practice? Every new practice impacts how people and teams work. Do a "pre-mortem" to anticipate potential issues, consult case studies from other companies, and talk to people with direct experience using the practice to get a balanced view of the pros and cons.

The key takeaway is to be intentional about adopting new practices. Clearly identify the problem to be solved and carefully consider the potential impact before making changes. Blindly copying practices that worked elsewhere often backfires without proper evaluation of the context.

These cannabis gummies keep selling out in 2023

  • Mood is an online dispensary that has invented a “joint within a gummy” that’s extremely potent yet federally-legal.

  • Just 1 of their rapid onset THC gummies can get you feeling right within 5 minutes!

3 Books you should read to be a great developer

  1. Clean Code by Robert C. Martin (Uncle Bob)

    This book is a must-read for writing high-quality, maintainable code. It teaches you how to write clean, readable, and expressive code that is easy to understand and modify. The principles in this book have had a huge impact on my own coding style and made me a better developer.

  2. Code Complete by Steve McConnell
    Widely considered one of the best practical guides to programming, this comprehensive book covers all aspects of the software development process. It's packed with best practices and valuable insights that will make you a more effective programmer. I refer back to this book often and always learn something new.

  3. The Pragmatic Programmer by David Thomas and Andrew Hunt
    This classic book is a wealth of practical advice for becoming a better programmer. It covers essential topics like coding best practices, testing, debugging, and managing your career. The book's philosophy of continuous improvement and taking responsibility for your work really resonated with me as a developer.

I highly recommend reading all three of these influential books. They have made me a more well-rounded engineer and leveled up my coding skills immensely. Even if you're an experienced developer, you'll find valuable insights in these pages. Happy reading!

Reply

or to participate.