As programmers, we provide a service to our customers. To create the best possible experience for a customer, we must adhere to our values and beliefs.
7. Craftsmanship Understanding the challenges in writing software, and finding the most effective ways to mitigate or eliminate them.
8. Values & TDD Simplicity Tests enable you to refactor your code relentlessly. Testing first makes you focus only on what is needed. Communication Tests provide objective documentation on current system behavior. Feedback Tests tell you when you break something. Courage Tests setup a framework for you to fail safely. Testing first puts you on solid ground when working out business value with the customer. Respect Tests show respect to your organization by treating the code as the asset that it is.
9. Personal Examples of Craftsmanship (and lack of…) Context Big project, big budget, small company Done Well Iterative delivery approach proved successful for organizational change Done Poorly Integrating the SAP team
10. isCraftsmanship Writing unit tests under pressure Cleaning up when you are “done” Using acceptance tests to help new developers understand the objectives
11. !isCraftsmanship Meeting the “estimate” by all means Not offering solutions to suboptimal designs Convincing yourself or others that a workaround is “OK, for now” Hiring a developer for one month to “get back on track”
12. Future Topics What is the path to craftsmanship by studying just the practices? How do you stand up to the man?