First, a question Given same salary and kind of work, which company will you work for? Maruti - Suzuki Ferrari 2
Manifesto Software Craftsmen are raising the bar of professional software development by practicing it and helping others learn the craft. Not only working software, but also well-crafted software Not only responding to change, but also steadily adding value Not only individuals and interactions, but also a community of professionals Not only customer collaboration, but also productive partnerships In pursuit of items on the left we found items on the right to be indispensable . 3
In Simple Terms Engineering means there are processes and steps if followed will always lead to a standard product Software is more seen as a craft rather than engineering. So people learn it uniquely and produce different products still achieving similar results 4
Process Oriented The types of meetings the teams should have, The roles people should play, Ways in which to capture requirements, How to measure work velocity, How to work in an iterative way, How to plan and divide work How to demonstrate progress and get business feedback Building the right thing 5
Technology Oriented They normally prescribe technical practices and techniques. E.g. Test-Driven Development, pair programming, continuous integration, and simple design. Technical-oriented disciplines help teams to focus on the quality of the software Building the thing right. 6
What went wrong Partial Transformation E.g. Did not embrace agile fully Bad Coaches So many forms of agile Technical Practices Pairing wastes time, UTCs does not help that much Bad Processes Code review after the whole feature is done 7
Attitude Your career Keeping up to date Code a lot Follow, pair and socialize Work life balance Saying No 8
Time We will do it some other time Add it to tech debt story I am very busy To add test cases, feature is super important Someone else will test it We have a QA team to make sure it works I need time to write unit tests The time I was allocated, I can only write code 9
Practices Test First or earliest Automate, automate, automate XP, Pairing End of feature code reviews are not sufficient Refactoring Boy Scout Rule Accept thing whole heartedly Either you are agile or not, there is not partial agile Be pragmatic 10
Drive changes Participate in Recruitment Hire Craftsman Culture of Learning Continuous learning Spreading Knowledge Create communities Drive T echnical Changes Create awareness, take responsibility, weed out skepticism Lead by Example 11