SlideShare a Scribd company logo
1 of 21
Download to read offline
8th
July,2016, DevCorner Meetup,
Majesco New Development Centre, Navi Mumbai, India
Nirmalya Sengupta 1
Software Craftsmanship: the case
DevCorner Meet Up
Majesco New Development Centre
Navi Mumbai, India
Nirmalya Sengupta
@baatchitweet
blogoloquy.blogspot.com
8th
July,2016, DevCorner Meetup,
Majesco New Development Centre, Navi Mumbai, India
Nirmalya Sengupta 2
Let's see if we agree
“A software system can best be
designed if the testing is interlaced
with the design instead of being
used after the design”
8th
July,2016, DevCorner Meetup,
Majesco New Development Centre, Navi Mumbai, India
Nirmalya Sengupta 3
A warm Up Quiz
“A software system can best be designed
if the testing is interlaced with the design
instead of being used after the design”
- Who and When???
8th
July,2016, DevCorner Meetup,
Majesco New Development Centre, Navi Mumbai, India
Nirmalya Sengupta 4
A warm Up Quiz
“A software system can best be designed
if the testing is interlaced with the design
instead of being used after the design”
- Alan Perlis, 1968
(First recipient of Turing Award)
8th
July,2016, DevCorner Meetup,
Majesco New Development Centre, Navi Mumbai, India
Nirmalya Sengupta 5
A walk back in past..
Garmisch, Germany
NATO Science Conference, October'1968
8th
July,2016, DevCorner Meetup,
Majesco New Development Centre, Navi Mumbai, India
Nirmalya Sengupta 6
Observations
● “The dissemination of knowledge is of obvious
value — the massive dissemination of error-
loaded software is frightening.”
● “Almost invariably some early decisions, thought at the
time to have been clearly correct, will turn out to have
been premature.”
8th
July,2016, DevCorner Meetup,
Majesco New Development Centre, Navi Mumbai, India
Nirmalya Sengupta 7
We have tried to solve the problem..
● Model
● Waterfall
● Prototyping
● Incremental
● Spiral
● Agile
● Frameworks
● PSP
● RAD
● RUP
● XP
● Scrum
But have we?
8th
July,2016, DevCorner Meetup,
Majesco New Development Centre, Navi Mumbai, India
Nirmalya Sengupta 8
Bigger projects are vulnerable!
8th
July,2016, DevCorner Meetup,
Majesco New Development Centre, Navi Mumbai, India
Nirmalya Sengupta 9
Agile projects shine!
8th
July,2016, DevCorner Meetup,
Majesco New Development Centre, Navi Mumbai, India
Nirmalya Sengupta 10
Software Quality and stakeholders
● For Purchaser
– Correctness,Reliability,Integrity,Security,Timliness,Cost
● For User
– Correctness,Robustness,Ease of Use,Speed of
response
● For System Owner/Manager
– Ease of installation,Resource consumption,
Housekeeping
● For Developers
– Integrity, Predictability,Ease of reuse, Ease of
modification
8th
July,2016, DevCorner Meetup,
Majesco New Development Centre, Navi Mumbai, India
Nirmalya Sengupta 11
Provider of quality
What is it that we need to ensure that quality is built in the
software, for the right stakeholder, to the right extent and at
the right cost?
A properly crafted software solution
We need software crafts(wo)men
8th
July,2016, DevCorner Meetup,
Majesco New Development Centre, Navi Mumbai, India
Nirmalya Sengupta 12
Craftspersons
● Craft
– An activity involving skill in making things by hand:
(Oxford Dictionary)
● Historical background
– Guilds in madieval Europe and Indian subcontinent
● Go through stages
– Masters, Journeymen, Apprentices
● Professional associations, often enjoying patronage and
financial help from Kings
8th
July,2016, DevCorner Meetup,
Majesco New Development Centre, Navi Mumbai, India
Nirmalya Sengupta 13
The intent
8th
July,2016, DevCorner Meetup,
Majesco New Development Centre, Navi Mumbai, India
Nirmalya Sengupta 14
Software Craftsmanship
● No more manufacturing metaphor
● Not just 'good enough' software
● Focus back on people and their skills
● Concentrate on shipping software, cleaning it up and then
evolving it
● Requires structure of Masters, Journeymen and
Apprentices
Pete McBreen, Software Craftsmanship
8th
July,2016, DevCorner Meetup,
Majesco New Development Centre, Navi Mumbai, India
Nirmalya Sengupta 15
What enthuses craftspersons
● Pride in her own work
● A consistent and continued view of the whole deliverable
● A direct and meaningful interaction with customers/users
● Appreciation for doing a good job, 'for its own sake'
● Creating, Finding, Using, Improving tools
● Opportunity to deal with ambiguity and taking considered
decisions (learning and gaining insights)
● Commendation from peers and community
8th
July,2016, DevCorner Meetup,
Majesco New Development Centre, Navi Mumbai, India
Nirmalya Sengupta 16
Craftspersons are social creatures
● Apprentice
– Inward-looking, Strive to be better, complete small tasks, work with
journeyman, review work of master, demonstrate progress
● Journeyman
– Has worked with Masters for a considerable time, Inward-looking,
Outward-looking, Train Apprentices, Communicate with multiple Masters
and their teams, Deepens and widens her portfolio, Mentors Apprentices
● Master
– Immensely experienced in delivering useful software, Has
infectious enthusiasm and passion for the craft, Mentors
Journeymen and Apprentices, Innovates, Provides ideas and
breakthroughs, Is recognised by Users/Customers/Peers
8th
July,2016, DevCorner Meetup,
Majesco New Development Centre, Navi Mumbai, India
Nirmalya Sengupta 17
We, the Managers should:
● Learn to recognize craft and passion
● Facilitate, Communicate, participate
● Spot Masters and Journeymen and let them flourish
● Think like a programmer does: environment, tools,
technique, build
● Be ready to dirty our hands (ex: why cannot you write
executable test-cases?)
● Remember that more complexity and scale ==> Few people
with more skills (and not more people with average skill)
8th
July,2016, DevCorner Meetup,
Majesco New Development Centre, Navi Mumbai, India
Nirmalya Sengupta 18
We, Software Craftspersons will:
● Be and remain proud of and passionate about our work
(leave our signatures)
● Be humble to learn continually
● Be attentive of the value of what we are delivering
(someone is paying for it)
● Be accountable for our work
● Be sharing with the community
● Be owners of our own careers (your employer is not)
8th
July,2016, DevCorner Meetup,
Majesco New Development Centre, Navi Mumbai, India
Nirmalya Sengupta 19
Epilogue
● The most important outcome of a software project is the
code
● People produce software, not processes
● Passion and pride of a skilled person are her best assets
● Mentors can contribute to the team the most
● Deliberately practice your craft
● Our career is in our hands
8th
July,2016, DevCorner Meetup,
Majesco New Development Centre, Navi Mumbai, India
Nirmalya Sengupta 20
A thought to think about...
“Every program has (at least) two purposes: the
one for which it was written, and another for which
it wasn't.” - Alan Perlis
8th
July,2016, DevCorner Meetup,
Majesco New Development Centre, Navi Mumbai, India
Nirmalya Sengupta 21
Last minute attempt of self-selling
●
Old warrior in the battle
● Began with 'C' programming on Unix
● Remained on Unix (Linux) since
●
Programmed (created enough bugs, some were never fixed) in
'C', 'C++','Java', 'Scala'
● Middleware (CORBA and ..), Credit Card Authorisation Protocol,
Multiplayer Online Gaming, Massive set of CDR processing
(Telecom), Claim Processing (big data), APIs for Mobile
applications
●
Current area of interest (with wish to become a journeyman):
Stream Processing (Apache Flink), IoT middleware, Scala, Akka,
Pony

More Related Content

Similar to CodeCraftsmanshipMeetUp

NUS-ISS Learning Day 2016 - Productisation - The New Thinking in Managing Sta...
NUS-ISS Learning Day 2016 - Productisation - The New Thinking in Managing Sta...NUS-ISS Learning Day 2016 - Productisation - The New Thinking in Managing Sta...
NUS-ISS Learning Day 2016 - Productisation - The New Thinking in Managing Sta...NUS-ISS
 
Developers Nepal Meetup #4 Report
Developers Nepal Meetup #4 ReportDevelopers Nepal Meetup #4 Report
Developers Nepal Meetup #4 ReportPunit Jajodia
 
Job Search - Jayakumar Krishnamurthy - Case-study-slide-deck.pptx
Job Search - Jayakumar Krishnamurthy - Case-study-slide-deck.pptxJob Search - Jayakumar Krishnamurthy - Case-study-slide-deck.pptx
Job Search - Jayakumar Krishnamurthy - Case-study-slide-deck.pptxJayKrishh
 
Out of the silos and into the farm (NEPHP 2014)
Out of the silos and into the farm (NEPHP 2014)Out of the silos and into the farm (NEPHP 2014)
Out of the silos and into the farm (NEPHP 2014)Marli Mesibov
 
How to Collaboratively Developed and Locally Driven Platform Can Help You
How to Collaboratively Developed and Locally Driven Platform Can Help YouHow to Collaboratively Developed and Locally Driven Platform Can Help You
How to Collaboratively Developed and Locally Driven Platform Can Help YouHumentum
 
Saikat design thinking lab prototyping & testing
Saikat design thinking lab prototyping & testingSaikat design thinking lab prototyping & testing
Saikat design thinking lab prototyping & testingSaikat Dutta
 
Design for Covid-19 Challenge Webinar 2: Ideation Phase
Design for Covid-19 Challenge Webinar 2: Ideation Phase Design for Covid-19 Challenge Webinar 2: Ideation Phase
Design for Covid-19 Challenge Webinar 2: Ideation Phase Aqeela A. Somani
 
3 Steps to Create a Habit of User Research on Your Product Team
3 Steps to Create a Habit of User Research on Your Product Team3 Steps to Create a Habit of User Research on Your Product Team
3 Steps to Create a Habit of User Research on Your Product Teamvalidately
 
Remote Mentoring Distributed Teams Ver 1.29
Remote Mentoring Distributed Teams Ver 1.29Remote Mentoring Distributed Teams Ver 1.29
Remote Mentoring Distributed Teams Ver 1.29Vinod Panicker
 
Designing for Possible Futures
Designing for Possible FuturesDesigning for Possible Futures
Designing for Possible Futures1508 A/S
 
Presentation at Plug N Work, Sao Paulo, Brazil
Presentation at Plug N Work, Sao Paulo, BrazilPresentation at Plug N Work, Sao Paulo, Brazil
Presentation at Plug N Work, Sao Paulo, BrazilUX Consulting Pte Ltd
 
How do you know you're ready for a Design Sprint?
How do you know you're ready for a Design Sprint?How do you know you're ready for a Design Sprint?
How do you know you're ready for a Design Sprint?Highland
 
Inkpothub- https://www.inkpothub.com/ - A network of students, Professors an...
Inkpothub- https://www.inkpothub.com/  - A network of students, Professors an...Inkpothub- https://www.inkpothub.com/  - A network of students, Professors an...
Inkpothub- https://www.inkpothub.com/ - A network of students, Professors an...Nishan Singh
 
ARTEM BYKOVETS "Agile manifesto: Principles" Kyiv Project Management Day
ARTEM BYKOVETS "Agile manifesto: Principles" Kyiv Project Management DayARTEM BYKOVETS "Agile manifesto: Principles" Kyiv Project Management Day
ARTEM BYKOVETS "Agile manifesto: Principles" Kyiv Project Management DayLviv Startup Club
 
Product Management
Product ManagementProduct Management
Product ManagementUpGrad
 
Behind the scenes of retrospective workshop-goat16-november 21th-2016-hand-out
Behind the scenes of retrospective workshop-goat16-november 21th-2016-hand-outBehind the scenes of retrospective workshop-goat16-november 21th-2016-hand-out
Behind the scenes of retrospective workshop-goat16-november 21th-2016-hand-outJesus Mendez
 
Utilising Guilds to Develop & Support a Culture of Research
Utilising Guilds to Develop & Support a Culture of ResearchUtilising Guilds to Develop & Support a Culture of Research
Utilising Guilds to Develop & Support a Culture of ResearchUXDXConf
 

Similar to CodeCraftsmanshipMeetUp (20)

NUS-ISS Learning Day 2016 - Productisation - The New Thinking in Managing Sta...
NUS-ISS Learning Day 2016 - Productisation - The New Thinking in Managing Sta...NUS-ISS Learning Day 2016 - Productisation - The New Thinking in Managing Sta...
NUS-ISS Learning Day 2016 - Productisation - The New Thinking in Managing Sta...
 
Developers Nepal Meetup #4 Report
Developers Nepal Meetup #4 ReportDevelopers Nepal Meetup #4 Report
Developers Nepal Meetup #4 Report
 
Job Search - Jayakumar Krishnamurthy - Case-study-slide-deck.pptx
Job Search - Jayakumar Krishnamurthy - Case-study-slide-deck.pptxJob Search - Jayakumar Krishnamurthy - Case-study-slide-deck.pptx
Job Search - Jayakumar Krishnamurthy - Case-study-slide-deck.pptx
 
Out of the silos and into the farm (NEPHP 2014)
Out of the silos and into the farm (NEPHP 2014)Out of the silos and into the farm (NEPHP 2014)
Out of the silos and into the farm (NEPHP 2014)
 
projectreport.pdf
projectreport.pdfprojectreport.pdf
projectreport.pdf
 
How to Collaboratively Developed and Locally Driven Platform Can Help You
How to Collaboratively Developed and Locally Driven Platform Can Help YouHow to Collaboratively Developed and Locally Driven Platform Can Help You
How to Collaboratively Developed and Locally Driven Platform Can Help You
 
How to Gamify a MOOC
How to Gamify a MOOCHow to Gamify a MOOC
How to Gamify a MOOC
 
Saikat design thinking lab prototyping & testing
Saikat design thinking lab prototyping & testingSaikat design thinking lab prototyping & testing
Saikat design thinking lab prototyping & testing
 
Design for Covid-19 Challenge Webinar 2: Ideation Phase
Design for Covid-19 Challenge Webinar 2: Ideation Phase Design for Covid-19 Challenge Webinar 2: Ideation Phase
Design for Covid-19 Challenge Webinar 2: Ideation Phase
 
3 Steps to Create a Habit of User Research on Your Product Team
3 Steps to Create a Habit of User Research on Your Product Team3 Steps to Create a Habit of User Research on Your Product Team
3 Steps to Create a Habit of User Research on Your Product Team
 
Remote Mentoring Distributed Teams Ver 1.29
Remote Mentoring Distributed Teams Ver 1.29Remote Mentoring Distributed Teams Ver 1.29
Remote Mentoring Distributed Teams Ver 1.29
 
Designing for Possible Futures
Designing for Possible FuturesDesigning for Possible Futures
Designing for Possible Futures
 
Presentation at Plug N Work, Sao Paulo, Brazil
Presentation at Plug N Work, Sao Paulo, BrazilPresentation at Plug N Work, Sao Paulo, Brazil
Presentation at Plug N Work, Sao Paulo, Brazil
 
How do you know you're ready for a Design Sprint?
How do you know you're ready for a Design Sprint?How do you know you're ready for a Design Sprint?
How do you know you're ready for a Design Sprint?
 
Inkpothub- https://www.inkpothub.com/ - A network of students, Professors an...
Inkpothub- https://www.inkpothub.com/  - A network of students, Professors an...Inkpothub- https://www.inkpothub.com/  - A network of students, Professors an...
Inkpothub- https://www.inkpothub.com/ - A network of students, Professors an...
 
ARTEM BYKOVETS "Agile manifesto: Principles" Kyiv Project Management Day
ARTEM BYKOVETS "Agile manifesto: Principles" Kyiv Project Management DayARTEM BYKOVETS "Agile manifesto: Principles" Kyiv Project Management Day
ARTEM BYKOVETS "Agile manifesto: Principles" Kyiv Project Management Day
 
UX Workshop
UX WorkshopUX Workshop
UX Workshop
 
Product Management
Product ManagementProduct Management
Product Management
 
Behind the scenes of retrospective workshop-goat16-november 21th-2016-hand-out
Behind the scenes of retrospective workshop-goat16-november 21th-2016-hand-outBehind the scenes of retrospective workshop-goat16-november 21th-2016-hand-out
Behind the scenes of retrospective workshop-goat16-november 21th-2016-hand-out
 
Utilising Guilds to Develop & Support a Culture of Research
Utilising Guilds to Develop & Support a Culture of ResearchUtilising Guilds to Develop & Support a Culture of Research
Utilising Guilds to Develop & Support a Culture of Research
 

CodeCraftsmanshipMeetUp

  • 1. 8th July,2016, DevCorner Meetup, Majesco New Development Centre, Navi Mumbai, India Nirmalya Sengupta 1 Software Craftsmanship: the case DevCorner Meet Up Majesco New Development Centre Navi Mumbai, India Nirmalya Sengupta @baatchitweet blogoloquy.blogspot.com
  • 2. 8th July,2016, DevCorner Meetup, Majesco New Development Centre, Navi Mumbai, India Nirmalya Sengupta 2 Let's see if we agree “A software system can best be designed if the testing is interlaced with the design instead of being used after the design”
  • 3. 8th July,2016, DevCorner Meetup, Majesco New Development Centre, Navi Mumbai, India Nirmalya Sengupta 3 A warm Up Quiz “A software system can best be designed if the testing is interlaced with the design instead of being used after the design” - Who and When???
  • 4. 8th July,2016, DevCorner Meetup, Majesco New Development Centre, Navi Mumbai, India Nirmalya Sengupta 4 A warm Up Quiz “A software system can best be designed if the testing is interlaced with the design instead of being used after the design” - Alan Perlis, 1968 (First recipient of Turing Award)
  • 5. 8th July,2016, DevCorner Meetup, Majesco New Development Centre, Navi Mumbai, India Nirmalya Sengupta 5 A walk back in past.. Garmisch, Germany NATO Science Conference, October'1968
  • 6. 8th July,2016, DevCorner Meetup, Majesco New Development Centre, Navi Mumbai, India Nirmalya Sengupta 6 Observations ● “The dissemination of knowledge is of obvious value — the massive dissemination of error- loaded software is frightening.” ● “Almost invariably some early decisions, thought at the time to have been clearly correct, will turn out to have been premature.”
  • 7. 8th July,2016, DevCorner Meetup, Majesco New Development Centre, Navi Mumbai, India Nirmalya Sengupta 7 We have tried to solve the problem.. ● Model ● Waterfall ● Prototyping ● Incremental ● Spiral ● Agile ● Frameworks ● PSP ● RAD ● RUP ● XP ● Scrum But have we?
  • 8. 8th July,2016, DevCorner Meetup, Majesco New Development Centre, Navi Mumbai, India Nirmalya Sengupta 8 Bigger projects are vulnerable!
  • 9. 8th July,2016, DevCorner Meetup, Majesco New Development Centre, Navi Mumbai, India Nirmalya Sengupta 9 Agile projects shine!
  • 10. 8th July,2016, DevCorner Meetup, Majesco New Development Centre, Navi Mumbai, India Nirmalya Sengupta 10 Software Quality and stakeholders ● For Purchaser – Correctness,Reliability,Integrity,Security,Timliness,Cost ● For User – Correctness,Robustness,Ease of Use,Speed of response ● For System Owner/Manager – Ease of installation,Resource consumption, Housekeeping ● For Developers – Integrity, Predictability,Ease of reuse, Ease of modification
  • 11. 8th July,2016, DevCorner Meetup, Majesco New Development Centre, Navi Mumbai, India Nirmalya Sengupta 11 Provider of quality What is it that we need to ensure that quality is built in the software, for the right stakeholder, to the right extent and at the right cost? A properly crafted software solution We need software crafts(wo)men
  • 12. 8th July,2016, DevCorner Meetup, Majesco New Development Centre, Navi Mumbai, India Nirmalya Sengupta 12 Craftspersons ● Craft – An activity involving skill in making things by hand: (Oxford Dictionary) ● Historical background – Guilds in madieval Europe and Indian subcontinent ● Go through stages – Masters, Journeymen, Apprentices ● Professional associations, often enjoying patronage and financial help from Kings
  • 13. 8th July,2016, DevCorner Meetup, Majesco New Development Centre, Navi Mumbai, India Nirmalya Sengupta 13 The intent
  • 14. 8th July,2016, DevCorner Meetup, Majesco New Development Centre, Navi Mumbai, India Nirmalya Sengupta 14 Software Craftsmanship ● No more manufacturing metaphor ● Not just 'good enough' software ● Focus back on people and their skills ● Concentrate on shipping software, cleaning it up and then evolving it ● Requires structure of Masters, Journeymen and Apprentices Pete McBreen, Software Craftsmanship
  • 15. 8th July,2016, DevCorner Meetup, Majesco New Development Centre, Navi Mumbai, India Nirmalya Sengupta 15 What enthuses craftspersons ● Pride in her own work ● A consistent and continued view of the whole deliverable ● A direct and meaningful interaction with customers/users ● Appreciation for doing a good job, 'for its own sake' ● Creating, Finding, Using, Improving tools ● Opportunity to deal with ambiguity and taking considered decisions (learning and gaining insights) ● Commendation from peers and community
  • 16. 8th July,2016, DevCorner Meetup, Majesco New Development Centre, Navi Mumbai, India Nirmalya Sengupta 16 Craftspersons are social creatures ● Apprentice – Inward-looking, Strive to be better, complete small tasks, work with journeyman, review work of master, demonstrate progress ● Journeyman – Has worked with Masters for a considerable time, Inward-looking, Outward-looking, Train Apprentices, Communicate with multiple Masters and their teams, Deepens and widens her portfolio, Mentors Apprentices ● Master – Immensely experienced in delivering useful software, Has infectious enthusiasm and passion for the craft, Mentors Journeymen and Apprentices, Innovates, Provides ideas and breakthroughs, Is recognised by Users/Customers/Peers
  • 17. 8th July,2016, DevCorner Meetup, Majesco New Development Centre, Navi Mumbai, India Nirmalya Sengupta 17 We, the Managers should: ● Learn to recognize craft and passion ● Facilitate, Communicate, participate ● Spot Masters and Journeymen and let them flourish ● Think like a programmer does: environment, tools, technique, build ● Be ready to dirty our hands (ex: why cannot you write executable test-cases?) ● Remember that more complexity and scale ==> Few people with more skills (and not more people with average skill)
  • 18. 8th July,2016, DevCorner Meetup, Majesco New Development Centre, Navi Mumbai, India Nirmalya Sengupta 18 We, Software Craftspersons will: ● Be and remain proud of and passionate about our work (leave our signatures) ● Be humble to learn continually ● Be attentive of the value of what we are delivering (someone is paying for it) ● Be accountable for our work ● Be sharing with the community ● Be owners of our own careers (your employer is not)
  • 19. 8th July,2016, DevCorner Meetup, Majesco New Development Centre, Navi Mumbai, India Nirmalya Sengupta 19 Epilogue ● The most important outcome of a software project is the code ● People produce software, not processes ● Passion and pride of a skilled person are her best assets ● Mentors can contribute to the team the most ● Deliberately practice your craft ● Our career is in our hands
  • 20. 8th July,2016, DevCorner Meetup, Majesco New Development Centre, Navi Mumbai, India Nirmalya Sengupta 20 A thought to think about... “Every program has (at least) two purposes: the one for which it was written, and another for which it wasn't.” - Alan Perlis
  • 21. 8th July,2016, DevCorner Meetup, Majesco New Development Centre, Navi Mumbai, India Nirmalya Sengupta 21 Last minute attempt of self-selling ● Old warrior in the battle ● Began with 'C' programming on Unix ● Remained on Unix (Linux) since ● Programmed (created enough bugs, some were never fixed) in 'C', 'C++','Java', 'Scala' ● Middleware (CORBA and ..), Credit Card Authorisation Protocol, Multiplayer Online Gaming, Massive set of CDR processing (Telecom), Claim Processing (big data), APIs for Mobile applications ● Current area of interest (with wish to become a journeyman): Stream Processing (Apache Flink), IoT middleware, Scala, Akka, Pony