SlideShare a Scribd company logo
PuneSoftware
Craftsmanship
Promoting professionalism and
craftsmanship among software
professionals
The Plan For Today
• Introduction
• Software craftsmanship
• A few good practices
• Round-table sharing
• A coding exercise
• Is good code subjective?
• Retrospective and closing notes
2
The organizers
We are former
colleagues drawn
together by the shared
belief in software
craftsmanship
3
The
Manifesto
http://manifesto.softwarecraftsmanship.org/
Why?
Need of the hour:
Professionalism &
Craftsmanship
5
Professionalism
What does it mean for software
professionals?
How often do we discuss it?
Are we held accountable for it?
6
Therac-25
7https://en.wikipedia.org/wiki/Therac-25
Therac-25
8https://en.wikipedia.org/wiki/Therac-25
Ariane 5
9https://blog.bugsnag.com/bug-day-ariane-5-disaster/
Ariane 5
10https://blog.bugsnag.com/bug-day-ariane-5-disaster/
Code of
Ethics
11https://www.computer.org/web/education/code-of-ethics
Code of
Ethics
12https://www.computer.org/web/education/code-of-ethics
The world we live in
13
Today, software has a large role
in shaping human life
experiences
Medicine, government, industry,
commerce, entertainment, etc
Good software = good
outcomes for human beings*
Inversely, bad software = bad
outcomes for human beings
A challenging time for Indian IT
(protectionism, competition,
automation)
A lot of entry-level jobs will
vanish without reinventing
ourselves in multiple fronts
Software quality including
maintainability is becoming a
centrepiece in business
strategies
Responding to changes ahead
of competition requires the
ability to make quick software
changes
Higher lifetime profit (software
is typically maintained for 10
years according to studies)
Reliability and efficiency are
needed to build a solid
reputation that enables more
business
Our world
needs
software
craftsmen
14
Efficient – Build and deliver great solutions
when they are needed within budget
Reliable – great quality all the time!
Integrity – protect the users and
customers, do the right thing!
Knowledgeable – capable of building cutting-
edge solutions that give a competitive edge to
employers and customers
Afew
goodpractices
15
Leave the
code better
than how
you found it
16
Maintain your
surroundings
17
Always
maintain
the code!
18
http://wiki.c2.com/?FixBrokenWindows
Make it easy to
do the right
thing and hard
to do the
wrong thing!
https://twitter.com/GoLeanSixSigma/status/952328692386025472
We’re going to do something
very interesting with what
we’ve learned today.
For now, let’s sip over it
20
A day in developer’s
life.
21
Let’s look at a code base
and demo of a sample
app
https://github.com/hemantpande/PuneCraftsmanshipCommunity
22
Simple use case
Objective: Customers need to maintain a minimum balance in
their accounts.
Use case: When the money is withdrawn from the account and
the remaining balance is less than the permissible limit, then
the system should issue a guideline to the customer to
maintain the minimum balance, so that they can avoid
penalties.
23
Before you implement this use case
Keep in mind all the principles we have
discussed today.
Good code is subjective!
Ever heard this before?
What do YOU think? 24
Cyclomatic
complexity
25
• Developed by Thomas J. McCabe, Sr. in
1976
• A metric used to indicate the complexity
of a program
• A measure of the number of linearly
independent paths through a program
• The simple way to calculate cyclomatic
complexity for a method
• Count of branches (IF, WHILE, DO, ) +
count of CASE statements + 1
• As a thumb rule, favor low over high
complexity
• Easier to understand
• Easier to test
• Easier to maintain
Calculate the complexity
26
Calculate the complexity
27
Calculate the
complexity
28
GoodcodeisNOTsubjective!
29
Ourvision
Build a rock-solid group of
motivated software craftsmen
who will raise the bar
continuously for our
profession!
30
Our mission
31
Learn & practice
Professionalism for
software professionals
Software craftsmanship
Technical excellence
Develop change agents
Knowing what is good is
one thing; convincing
others is a totally
game!
Capability to drive
improvements based on
data
• Cost of maintainability
(lack of)
• Measurement of
maintainability
• Agility (responding to
change, automated
Support adoption
Facilitate awareness and
Q&A sessions for
organizations and teams
Define and establish
reusable awareness and
training material
Facilitate large-scale
events, conferences, &
competitions
Inspirational talks, code
retreats, meetup for
student and
(example – what
Technogise does)
32
Future community themes
ThankYou
Do the right thing and do it
right!
- PuneSoftwareCraftsmanship
- Jim Joseph
- Hemant Pande
- Dattatray Kale

More Related Content

What's hot

Agile_SDLC_Node.js@Paypal_ppt
Agile_SDLC_Node.js@Paypal_pptAgile_SDLC_Node.js@Paypal_ppt
Agile_SDLC_Node.js@Paypal_ppt
Hitesh Kumar
 
Webinar: Demonstrating Business Value for DevOps & Continuous Delivery
Webinar: Demonstrating Business Value for DevOps & Continuous DeliveryWebinar: Demonstrating Business Value for DevOps & Continuous Delivery
Webinar: Demonstrating Business Value for DevOps & Continuous Delivery
XebiaLabs
 

What's hot (20)

Agile_SDLC_Node.js@Paypal_ppt
Agile_SDLC_Node.js@Paypal_pptAgile_SDLC_Node.js@Paypal_ppt
Agile_SDLC_Node.js@Paypal_ppt
 
The Unlikely Couple, DevOps and Security. Can it work?
The Unlikely Couple, DevOps and Security. Can it work?The Unlikely Couple, DevOps and Security. Can it work?
The Unlikely Couple, DevOps and Security. Can it work?
 
Outpost24 webinar - The economics of penetration testing in the new threat la...
Outpost24 webinar - The economics of penetration testing in the new threat la...Outpost24 webinar - The economics of penetration testing in the new threat la...
Outpost24 webinar - The economics of penetration testing in the new threat la...
 
QASymphony and TestPlant: Bringing Together Best-in-Class Test Management and...
QASymphony and TestPlant: Bringing Together Best-in-Class Test Management and...QASymphony and TestPlant: Bringing Together Best-in-Class Test Management and...
QASymphony and TestPlant: Bringing Together Best-in-Class Test Management and...
 
How to Better Manage Technical Debt While Innovating on DevOps
How to Better Manage Technical Debt While Innovating on DevOpsHow to Better Manage Technical Debt While Innovating on DevOps
How to Better Manage Technical Debt While Innovating on DevOps
 
Intel CHD Case Study by Ronen Ezra
Intel CHD Case Study by Ronen EzraIntel CHD Case Study by Ronen Ezra
Intel CHD Case Study by Ronen Ezra
 
Agile Fundamentals
Agile FundamentalsAgile Fundamentals
Agile Fundamentals
 
Continuous Delivery Overview
Continuous Delivery OverviewContinuous Delivery Overview
Continuous Delivery Overview
 
Learn fast to build fast, Le Monde case study by Ismaël Hery - Lean IT Summit...
Learn fast to build fast, Le Monde case study by Ismaël Hery - Lean IT Summit...Learn fast to build fast, Le Monde case study by Ismaël Hery - Lean IT Summit...
Learn fast to build fast, Le Monde case study by Ismaël Hery - Lean IT Summit...
 
Webinar: Development with Agile, Waterfall and Agile-Waterfall Hybrid
Webinar: Development with Agile, Waterfall and Agile-Waterfall HybridWebinar: Development with Agile, Waterfall and Agile-Waterfall Hybrid
Webinar: Development with Agile, Waterfall and Agile-Waterfall Hybrid
 
ITIL® Release, Control and Validation
ITIL® Release, Control and ValidationITIL® Release, Control and Validation
ITIL® Release, Control and Validation
 
Keynote: Inflectra Company Vision - InflectraCon 2019
Keynote: Inflectra Company Vision - InflectraCon 2019Keynote: Inflectra Company Vision - InflectraCon 2019
Keynote: Inflectra Company Vision - InflectraCon 2019
 
A Blueprint for a Successful DevOps Metamorphosis
A Blueprint for a Successful DevOps MetamorphosisA Blueprint for a Successful DevOps Metamorphosis
A Blueprint for a Successful DevOps Metamorphosis
 
Metrics To Support An Agile Transformation
Metrics To Support An Agile TransformationMetrics To Support An Agile Transformation
Metrics To Support An Agile Transformation
 
DevOps2018 Singapore Eliminating the dev versus ops mentality
DevOps2018 Singapore Eliminating the dev versus ops mentalityDevOps2018 Singapore Eliminating the dev versus ops mentality
DevOps2018 Singapore Eliminating the dev versus ops mentality
 
TUI Nordic: Ensuring great user experience for 80 million site visitors
TUI Nordic: Ensuring great user experience for 80 million site visitorsTUI Nordic: Ensuring great user experience for 80 million site visitors
TUI Nordic: Ensuring great user experience for 80 million site visitors
 
Applying both Agile and Waterfall in one project
Applying both Agile and Waterfall in one projectApplying both Agile and Waterfall in one project
Applying both Agile and Waterfall in one project
 
Software Development with Agile Waterfall Hybrid Method
Software Development with Agile Waterfall Hybrid MethodSoftware Development with Agile Waterfall Hybrid Method
Software Development with Agile Waterfall Hybrid Method
 
Webinar: Demonstrating Business Value for DevOps & Continuous Delivery
Webinar: Demonstrating Business Value for DevOps & Continuous DeliveryWebinar: Demonstrating Business Value for DevOps & Continuous Delivery
Webinar: Demonstrating Business Value for DevOps & Continuous Delivery
 
DevOps is dead! Long Live PanOps! - Shahar Kedar, BigPanda - DevOpsDays Tel A...
DevOps is dead! Long Live PanOps! - Shahar Kedar, BigPanda - DevOpsDays Tel A...DevOps is dead! Long Live PanOps! - Shahar Kedar, BigPanda - DevOpsDays Tel A...
DevOps is dead! Long Live PanOps! - Shahar Kedar, BigPanda - DevOpsDays Tel A...
 

Similar to Growing as a software craftsperson (part 1) From Pune Software Craftsmanship.

Software Project management
Software Project managementSoftware Project management
Software Project management
sameer farooq
 
App Modernization with .NET Core: How Travelers Insurance is Going Cloud-Native
App Modernization with .NET Core: How Travelers Insurance is Going Cloud-NativeApp Modernization with .NET Core: How Travelers Insurance is Going Cloud-Native
App Modernization with .NET Core: How Travelers Insurance is Going Cloud-Native
VMware Tanzu
 
ICLR 2020 Recap
ICLR 2020 RecapICLR 2020 Recap
ICLR 2020 Recap
Sri Ambati
 
SE_Module1new.ppt
SE_Module1new.pptSE_Module1new.ppt
SE_Module1new.ppt
ADARSHN40
 

Similar to Growing as a software craftsperson (part 1) From Pune Software Craftsmanship. (20)

Growing as a software craftsperson (part 2) From Pune Software Craftsmanship
Growing as a software craftsperson (part 2) From Pune Software CraftsmanshipGrowing as a software craftsperson (part 2) From Pune Software Craftsmanship
Growing as a software craftsperson (part 2) From Pune Software Craftsmanship
 
Automation and Technical Debt
Automation and Technical DebtAutomation and Technical Debt
Automation and Technical Debt
 
Developing apps faster
Developing apps fasterDeveloping apps faster
Developing apps faster
 
The NRB Group mainframe day 2021 - DevOps on Z - Jerome Klimm - Benoit Ebner
The NRB Group mainframe day 2021 - DevOps on Z - Jerome Klimm - Benoit EbnerThe NRB Group mainframe day 2021 - DevOps on Z - Jerome Klimm - Benoit Ebner
The NRB Group mainframe day 2021 - DevOps on Z - Jerome Klimm - Benoit Ebner
 
Deep Dive into Software Estimation - Texavi Tech Bootcamp on How to be a good...
Deep Dive into Software Estimation - Texavi Tech Bootcamp on How to be a good...Deep Dive into Software Estimation - Texavi Tech Bootcamp on How to be a good...
Deep Dive into Software Estimation - Texavi Tech Bootcamp on How to be a good...
 
Software Project management
Software Project managementSoftware Project management
Software Project management
 
Improve existing code with confidence, supported by unit tests
Improve existing code with confidence, supported by unit testsImprove existing code with confidence, supported by unit tests
Improve existing code with confidence, supported by unit tests
 
Agile Governance for Hybrid Programs
Agile Governance for Hybrid ProgramsAgile Governance for Hybrid Programs
Agile Governance for Hybrid Programs
 
App Modernization with .NET Core: How Travelers Insurance is Going Cloud-Native
App Modernization with .NET Core: How Travelers Insurance is Going Cloud-NativeApp Modernization with .NET Core: How Travelers Insurance is Going Cloud-Native
App Modernization with .NET Core: How Travelers Insurance is Going Cloud-Native
 
Agile and Continuous Delivery for Audits and Exams - DC Continuous Delivery M...
Agile and Continuous Delivery for Audits and Exams - DC Continuous Delivery M...Agile and Continuous Delivery for Audits and Exams - DC Continuous Delivery M...
Agile and Continuous Delivery for Audits and Exams - DC Continuous Delivery M...
 
Practical model management in the age of Data science and ML
Practical model management in the age of Data science and MLPractical model management in the age of Data science and ML
Practical model management in the age of Data science and ML
 
ICLR 2020 Recap
ICLR 2020 RecapICLR 2020 Recap
ICLR 2020 Recap
 
(SPOT205) 5 Lessons for Managing Massive IT Transformation Projects
(SPOT205) 5 Lessons for Managing Massive IT Transformation Projects(SPOT205) 5 Lessons for Managing Massive IT Transformation Projects
(SPOT205) 5 Lessons for Managing Massive IT Transformation Projects
 
Anti patterns part 2
Anti patterns part 2Anti patterns part 2
Anti patterns part 2
 
So Now You’re a UiPath Developer – What’s Next?” What Role do You Play as Dev...
So Now You’re a UiPath Developer – What’s Next?” What Role do You Play as Dev...So Now You’re a UiPath Developer – What’s Next?” What Role do You Play as Dev...
So Now You’re a UiPath Developer – What’s Next?” What Role do You Play as Dev...
 
Production-Ready Kubernetes: It's Not About Technology
Production-Ready Kubernetes: It's Not About TechnologyProduction-Ready Kubernetes: It's Not About Technology
Production-Ready Kubernetes: It's Not About Technology
 
OOSE UNIT-1.pdf
OOSE UNIT-1.pdfOOSE UNIT-1.pdf
OOSE UNIT-1.pdf
 
Technical debt management strategies
Technical debt management strategiesTechnical debt management strategies
Technical debt management strategies
 
SE_Module1new.ppt
SE_Module1new.pptSE_Module1new.ppt
SE_Module1new.ppt
 
Continuous Deployment To The Cloud With Spring Cloud Pipelines @WarsawCloudNa...
Continuous Deployment To The Cloud With Spring Cloud Pipelines @WarsawCloudNa...Continuous Deployment To The Cloud With Spring Cloud Pipelines @WarsawCloudNa...
Continuous Deployment To The Cloud With Spring Cloud Pipelines @WarsawCloudNa...
 

Recently uploaded

Future Visions: Predictions to Guide and Time Tech Innovation, Peter Udo Diehl
Future Visions: Predictions to Guide and Time Tech Innovation, Peter Udo DiehlFuture Visions: Predictions to Guide and Time Tech Innovation, Peter Udo Diehl
Future Visions: Predictions to Guide and Time Tech Innovation, Peter Udo Diehl
Peter Udo Diehl
 
Search and Society: Reimagining Information Access for Radical Futures
Search and Society: Reimagining Information Access for Radical FuturesSearch and Society: Reimagining Information Access for Radical Futures
Search and Society: Reimagining Information Access for Radical Futures
Bhaskar Mitra
 

Recently uploaded (20)

Unpacking Value Delivery - Agile Oxford Meetup - May 2024.pptx
Unpacking Value Delivery - Agile Oxford Meetup - May 2024.pptxUnpacking Value Delivery - Agile Oxford Meetup - May 2024.pptx
Unpacking Value Delivery - Agile Oxford Meetup - May 2024.pptx
 
Key Trends Shaping the Future of Infrastructure.pdf
Key Trends Shaping the Future of Infrastructure.pdfKey Trends Shaping the Future of Infrastructure.pdf
Key Trends Shaping the Future of Infrastructure.pdf
 
AI revolution and Salesforce, Jiří Karpíšek
AI revolution and Salesforce, Jiří KarpíšekAI revolution and Salesforce, Jiří Karpíšek
AI revolution and Salesforce, Jiří Karpíšek
 
10 Differences between Sales Cloud and CPQ, Blanka Doktorová
10 Differences between Sales Cloud and CPQ, Blanka Doktorová10 Differences between Sales Cloud and CPQ, Blanka Doktorová
10 Differences between Sales Cloud and CPQ, Blanka Doktorová
 
IESVE for Early Stage Design and Planning
IESVE for Early Stage Design and PlanningIESVE for Early Stage Design and Planning
IESVE for Early Stage Design and Planning
 
From Daily Decisions to Bottom Line: Connecting Product Work to Revenue by VP...
From Daily Decisions to Bottom Line: Connecting Product Work to Revenue by VP...From Daily Decisions to Bottom Line: Connecting Product Work to Revenue by VP...
From Daily Decisions to Bottom Line: Connecting Product Work to Revenue by VP...
 
Future Visions: Predictions to Guide and Time Tech Innovation, Peter Udo Diehl
Future Visions: Predictions to Guide and Time Tech Innovation, Peter Udo DiehlFuture Visions: Predictions to Guide and Time Tech Innovation, Peter Udo Diehl
Future Visions: Predictions to Guide and Time Tech Innovation, Peter Udo Diehl
 
Behind the Scenes From the Manager's Chair: Decoding the Secrets of Successfu...
Behind the Scenes From the Manager's Chair: Decoding the Secrets of Successfu...Behind the Scenes From the Manager's Chair: Decoding the Secrets of Successfu...
Behind the Scenes From the Manager's Chair: Decoding the Secrets of Successfu...
 
How world-class product teams are winning in the AI era by CEO and Founder, P...
How world-class product teams are winning in the AI era by CEO and Founder, P...How world-class product teams are winning in the AI era by CEO and Founder, P...
How world-class product teams are winning in the AI era by CEO and Founder, P...
 
WSO2CONMay2024OpenSourceConferenceDebrief.pptx
WSO2CONMay2024OpenSourceConferenceDebrief.pptxWSO2CONMay2024OpenSourceConferenceDebrief.pptx
WSO2CONMay2024OpenSourceConferenceDebrief.pptx
 
Agentic RAG What it is its types applications and implementation.pdf
Agentic RAG What it is its types applications and implementation.pdfAgentic RAG What it is its types applications and implementation.pdf
Agentic RAG What it is its types applications and implementation.pdf
 
Exploring UiPath Orchestrator API: updates and limits in 2024 🚀
Exploring UiPath Orchestrator API: updates and limits in 2024 🚀Exploring UiPath Orchestrator API: updates and limits in 2024 🚀
Exploring UiPath Orchestrator API: updates and limits in 2024 🚀
 
ODC, Data Fabric and Architecture User Group
ODC, Data Fabric and Architecture User GroupODC, Data Fabric and Architecture User Group
ODC, Data Fabric and Architecture User Group
 
The architecture of Generative AI for enterprises.pdf
The architecture of Generative AI for enterprises.pdfThe architecture of Generative AI for enterprises.pdf
The architecture of Generative AI for enterprises.pdf
 
Integrating Telephony Systems with Salesforce: Insights and Considerations, B...
Integrating Telephony Systems with Salesforce: Insights and Considerations, B...Integrating Telephony Systems with Salesforce: Insights and Considerations, B...
Integrating Telephony Systems with Salesforce: Insights and Considerations, B...
 
What's New in Teams Calling, Meetings and Devices April 2024
What's New in Teams Calling, Meetings and Devices April 2024What's New in Teams Calling, Meetings and Devices April 2024
What's New in Teams Calling, Meetings and Devices April 2024
 
Knowledge engineering: from people to machines and back
Knowledge engineering: from people to machines and backKnowledge engineering: from people to machines and back
Knowledge engineering: from people to machines and back
 
Search and Society: Reimagining Information Access for Radical Futures
Search and Society: Reimagining Information Access for Radical FuturesSearch and Society: Reimagining Information Access for Radical Futures
Search and Society: Reimagining Information Access for Radical Futures
 
Powerful Start- the Key to Project Success, Barbara Laskowska
Powerful Start- the Key to Project Success, Barbara LaskowskaPowerful Start- the Key to Project Success, Barbara Laskowska
Powerful Start- the Key to Project Success, Barbara Laskowska
 
UiPath Test Automation using UiPath Test Suite series, part 1
UiPath Test Automation using UiPath Test Suite series, part 1UiPath Test Automation using UiPath Test Suite series, part 1
UiPath Test Automation using UiPath Test Suite series, part 1
 

Growing as a software craftsperson (part 1) From Pune Software Craftsmanship.