The Software Craftsman book is a great book that can help you to reflects on what does it means to be a professional. Sandro Mancuso is a well known and respected Engineer and the founder of the London Software Craftsmanship community.
What is Software Craftsmanship?
Software craftsmanship is a long journey to mastery.
It’s a mindset where software developers choose to be responsible for their own careers, constantly learning new tools and techniques and constantly bettering themselves.
Software Craftsmanship is all about putting responsibility, professionalism, pragmatism, and pride back into software development.
- Companies that provide time to developers to get better at what they do are much smarter and can become far more efficient. Passionate developers will always favor these companies when choosing who they work for.
- The highest priority is to satisfy the customer through early and continuous delivery of valuable software.
- When we talk about steadily adding value, we are not just talking about adding new features and fixing bugs. This is also about constantly improving the structure of the code, keeping it clean, extendable, testable, and easy to maintain.
- There is no such thing as a senior or junior developer
- Improving the process without improving technical excellence is pointless
- How it is done is as important as getting it done
- To achieve achieve quality we need to provide a great feedback system at all levels
- It is totally unacceptable to have bad quality code affecting business decisions.
- If you don’t like something, change it; if you can’t change it, change the way you think about it.
- Favor clarity over duplication in order to achieve a simple design
- Technical people need to be involved in decision-making process
- Well-crafted software means that, regardless of how old the application is, developers can understand it easily. The side effects are well known and controlled. It has high and reliable test coverage, clear and simple design, and business language well expressed in the code.
- When looking at legacy code, instead of moaning and getting frustrated, we should try to understand it and make it better, constantly applying the Boy Scout rule of making it better than how we found it. Improving and understanding legacy code can be massively rewarding.
- Refactoring without pragmatism can be a dangerous practice. Being professional means to understand trade-offs. Although we want to make the whole system better, we may not need to. There is no point in refactoring a piece of code that hasn’t been changed in years.
- The best person to motivate a developer is another developer. A good developer. A software craftsman.
- Group code reviews are another very interesting way to create a culture of learning
- Sharing your passion, leading by example, being honest and transparent, exhibiting confidence, and teaching what you know are the best ways to gain the trust of people around you.