We're Currently Updating Our Website & Adding Some Cool New Features. We'll be Back Shortly. Thank You For Your Patience. For Any Assistance Contact +91-960-640-0491 (India)

Software Craftsmanship and Empowerment

Popular Post

TAGS

Non proident maiore second third four first six seven ten developer ret Agile Certification, Agile Training, BDD training, Scrum Certification, scrum for developer, Scrum Training, TDD training testing BDD training, BDD training in Bangalore, DevOPs training in Bangalore, Scrum, scrum for developer, Scrum for tester, scrum master, Scrum Training, Scrum Training in Bangalore, TDD training, tdd training in Bangalore Agile, Agile Training, Estimation, Scrum, scrum for developer, Scrum for tester, scrum master, Scrum Training Past Webinar Agile Product Development, Agile Scrum training, Traditional Project Management product backlog Spillover in Scrum sprint planning User story test scrum fg Agile Scrum training, Scrum Certification, scrum master, Scrum Master Training SAFe agile SAFe,Product owner LPM SAFe,PI planning agile-coaching agilemania testing,agilemaina,testing tools ,Build a customer-centric ,product using Scrum to maxi Agile Training CSD training CSM training CSP CSPO Training CST Scrum scrum for developer Scrum for tester scrum master Agile Metrics Agile Scrum training Scrum Master Role Scrum Master Interview Questions scrum master Agile Certification Professional Scrum Trainer professional scrum trainer professional scrum master scaling agile scaling agile scaling RTE SPC SPCT Empowering Teams,SAFe Stream Map Agile Retrospectives Mistakes Project Management PSM,CSM Digital Transformation Agile Testing, Agile Testing Training, ATDD,bdd, Scrum for tester, SpecFlow scrum master, scaling scrum, scaling agile scrum for developer, Large scale scrum software plan, scrum for developer, agile planning scrum for developer, scrum master, planning scrum coaching, agile assessment technical debts, Agile Metrics Agile Team ssm Scaled Agile Product Owner Scrum Training in Bangalore Product Manager Business Owner Resolving Conflict Conflict Resolution Techniques Product Backlog Refinement Sprint Retrospective Sprint Planning Scrum Master Interview Questions Scrum Interview Question Agile Interview Question agile coaching Creative Professional Agile Coaching Managers Safe Scrum Master Agile Governance Self-organizing Teams Agile Persona Mapping Scrum Certification CALMR Role Of Product Owner Agile Scrum Training APM Agile Product Product Management KPIs Business Agility SAFe 6.0 Definition of Done Digital Marketing SAFe Agilist Certification SAFe® Agile Certification Benefits of SAFe SAFe Agilist BDD training BDD training in Bangalore DevOPs training in Bangalore Scrum Training TDD training tdd training in Bangalore WSIF SEO DevOps Sprint JIRA PSM Agile Facilitation Feedback Loop Gold SPCT User Stories Acceptance Criteria TDD Agile Framework Technical Agility Velocity Agile Software Development SAFe vs Scrum SAFe Scrum Master vs just Scrum Master Scrum Vs. Kanban Agile Coach Enterprise Agile Coach Agile Testing Pair Programming Scrum Teams PI planning PERT CPM Delivery Pipeline Project Management Tools Agile Certification BDD training Scrum Certification Value Flow ICAgile Digital Transformation Large scale scrum Measuring Scrum Sucess Organizational Agility Agile Coaches Leadership Management
Agilemania Blog
  • Jerry Rajamoney
  • Apr 10th 2020

When was the last time you write a code which is not protected with unit test / no refactoring? When was the last time you end up fixing a bug reported in a legacy codebase which is full of bad code? When was the last time you see a class with more than 100 lines of code? Sounds similar? What can we do about this? Why is this bad code there first of all? Is that anything that can be done on this? How many times did you allow the code to be shipped with bugs (read as with known bugs list) to the production environment? How an ethical/professional can allow this to happen? If you look around in other functions of working/department/domain/industry is this is allowed all the time? Did you ever notice some of the other industry craftsman-like an artist, carpenter, tailor, weaver, potter, musician, etc working way or behaviour? How much they are tolerant to defect? Where is the craftsmanship (in software) gone? Why are we, in software acknowledged buggy products as part of life and work? Is this is not the right time to raise our bar? If this makes sense welcome to the world of Software Craftsmanship!

What is Software craftsmanship?

what-is-software-craftsmanship Software craftsmanship is an approach to software development that emphasizes the coding skills of the software developers themselves. It is a response by software developers to the perceived ills of the mainstream software industry, including the prioritization of financial concerns over developer accountability. History: Software craftsmanship is not new. Started way back in 1992, the importance of the same got momentum after Pete McBreen's book “Software Craftsmanship” in 2001 got published. It suggested that software developers need not see themselves as part of the engineering tradition and that a different metaphor would be more suitable. In August 2008, keynote at Agile 2008, Bob Martin proposed a fifth value for the Agile Manifesto, namely "Craftsmanship over Crap". He later changed his proposal to "Craftsmanship over Execution". After that a series of the conference around the world keep the clock ticking. More detail of the same can be viewed here. Manifesto: December 2008, group of aspiring software craftsman got together to and tried to solve some problems they are facing came up with a statement of things they believe in and crafted another manifesto the software craftsmanship manifesto (http://manifesto.softwarecraftsmanship.org/) As aspiring Software Craftsmen, we are raising the bar of professional software development by Practicing it and helping others learn the craft. Through this work we have come to value: 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 That is, in pursuit of the items on the left we have found the items on the right to be indispensable.

Why do we need a software craftsman?

why-do-we-need-a-software-craftsman
  • The best processes in the world will not save a project from failure if the people involved do not have the necessary skills to execute the process; conversely, really good developers can make any process work” – Pete McBreen, Software Craftsmanship: The New Imperative
  • Because crappy code amplifies the risk of failure – even for agile projects
  • ”Get It Done” vs. ”Get It Right”
  • A Software Craftsman will choose “Get It Right” because he has the skills to do so
  • Not only will he “Dot It Right”, but he will also do it for the right reason

Characterization of a Software Craftsman

  • He will “Do It Right” – also under pressure
  • He takes responsibility
  • He takes pride in his work. Both the end product and the process towards it
  • He signs his work
  • Software Craftsmanship is all about putting responsibility and pride back into the software development process. As Hunt and Thomas (The Pragmatic Programmer) state, we need to start ‘signing our work’ again, just as other craftsmen do” – Pete McBreen, Software Craftsmanship: The New Imperative
  • He is a continuous learner. When he doesn’t work, he spends his time studying, to find new methods and tools can refine him as a Software Craftsman
  • He writes code
  • He practices deliberately and understands the difference between practice and work. He practices in order to be prepared for work
  • He has the right attitude towards Software Development
  • He contributes to the community
Agile & Scrum Assessments

How to become a Software Craftsman by following some discipline [Best practices]?

  • Test-Driven Development [TDD]
  • Continuous Integration
  • Pairing
  • Pride and attitude that QA should find nothing
  • Refactoring
  • Iterate always with shorter time boxing to get multiple feedbacks
  • Tips from The Pragmatic Programmer
    • Care about your craft
    •  Think about your work
  • Practices lot of industry-accepted engineering practices
  • Automate as much as possible
  • Start learning
  • Take responsibility for your professional career and apply what you’ve learned
  • Slow down to go fast
Disagreement: Software craftsmanship is all about pride in work, teamwork, mentorship, proving skills, practising. Yet there is some disagreement
  • Not everyone agrees
  • The manifesto is tame. Manifesto – a statement of belief, a call to arms, feisty, opinionated and brash
  • A manifesto is an attack on software engineering and scientific research. The manifesto is giving permission to a new generation to ignore all lessons learned from software engineering
  • Language matters – choosing inappropriate metaphors like a craftsman, apprentice, journeyman increases the gap between engineering and business.
  • Software craftsmen should be egoless, humble with focus on the outcome rather than code of the process
Thanks to: All the authors and passionate software people. software-craftsmanship
Agilemania Blog

Jerry Rajamoney

Jerry is one of the top 5 in the Agile community to have achieved the dual credential of Professional Coach (PCC) & Certified Enterprise Coach (CEC).

Sign up for Agilemania Newsletter

Stay updated with the latest Agile & Scrum trends.

Popular Post

TAGS

Non proident maiore second third four first six seven ten developer ret Agile Certification, Agile Training, BDD training, Scrum Certification, scrum for developer, Scrum Training, TDD training testing BDD training, BDD training in Bangalore, DevOPs training in Bangalore, Scrum, scrum for developer, Scrum for tester, scrum master, Scrum Training, Scrum Training in Bangalore, TDD training, tdd training in Bangalore Agile, Agile Training, Estimation, Scrum, scrum for developer, Scrum for tester, scrum master, Scrum Training Past Webinar Agile Product Development, Agile Scrum training, Traditional Project Management product backlog Spillover in Scrum sprint planning User story test scrum fg Agile Scrum training, Scrum Certification, scrum master, Scrum Master Training SAFe agile SAFe,Product owner LPM SAFe,PI planning agile-coaching agilemania testing,agilemaina,testing tools ,Build a customer-centric ,product using Scrum to maxi Agile Training CSD training CSM training CSP CSPO Training CST Scrum scrum for developer Scrum for tester scrum master Agile Metrics Agile Scrum training Scrum Master Role Scrum Master Interview Questions scrum master Agile Certification Professional Scrum Trainer professional scrum trainer professional scrum master scaling agile scaling agile scaling RTE SPC SPCT Empowering Teams,SAFe Stream Map Agile Retrospectives Mistakes Project Management PSM,CSM Digital Transformation Agile Testing, Agile Testing Training, ATDD,bdd, Scrum for tester, SpecFlow scrum master, scaling scrum, scaling agile scrum for developer, Large scale scrum software plan, scrum for developer, agile planning scrum for developer, scrum master, planning scrum coaching, agile assessment technical debts, Agile Metrics Agile Team ssm Scaled Agile Product Owner Scrum Training in Bangalore Product Manager Business Owner Resolving Conflict Conflict Resolution Techniques Product Backlog Refinement Sprint Retrospective Sprint Planning Scrum Master Interview Questions Scrum Interview Question Agile Interview Question agile coaching Creative Professional Agile Coaching Managers Safe Scrum Master Agile Governance Self-organizing Teams Agile Persona Mapping Scrum Certification CALMR Role Of Product Owner Agile Scrum Training APM Agile Product Product Management KPIs Business Agility SAFe 6.0 Definition of Done Digital Marketing SAFe Agilist Certification SAFe® Agile Certification Benefits of SAFe SAFe Agilist BDD training BDD training in Bangalore DevOPs training in Bangalore Scrum Training TDD training tdd training in Bangalore WSIF SEO DevOps Sprint JIRA PSM Agile Facilitation Feedback Loop Gold SPCT User Stories Acceptance Criteria TDD Agile Framework Technical Agility Velocity Agile Software Development SAFe vs Scrum SAFe Scrum Master vs just Scrum Master Scrum Vs. Kanban Agile Coach Enterprise Agile Coach Agile Testing Pair Programming Scrum Teams PI planning PERT CPM Delivery Pipeline Project Management Tools Agile Certification BDD training Scrum Certification Value Flow ICAgile Digital Transformation Large scale scrum Measuring Scrum Sucess Organizational Agility Agile Coaches Leadership Management