- Null Pointer Club
- Posts
- Difference between Best practises and Practices?
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:
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.
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
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.
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.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