SlideShare a Scribd company logo
1 of 53
A Question of
Craftsmanship


          @KevlinHenney
The engineering is the art,
and the art is the engineering.
                                         Cecil Balmond
                              http://www.newscientist.com/article/
 mg21128272.700-olympic-sculpture-is-a-marvel-of-mathematics.html
There is an art, craft, and science to
programming that extends far beyond
the program. The act of programming
marries the discrete world of computers
with the fluid world of human affairs.
Programmers mediate between the
negotiated and uncertain truths of
business and the crisp, uncompromising
domain of bits and bytes and higher
constructed types.
http://fragmental.tw/2009/04/29/tag-clouds-see-how-noisy-your-code-is/
http://fragmental.tw/2009/04/29/tag-clouds-see-how-noisy-your-code-is/
Anyway, the point I'm making is that we need to be very careful. Just
as they're doing with management consultants, sooner or later our
customers will figure out that the management practices of Agile don't
deliver working software any more than they can grill cheese or power
an electric bicycle.




               Jason Gorman, "We Emulate Management Consultants at Our Peril"
                                        http://parlezuml.com/blog/?postid=946
The business of software is software. We don't make bean bags and
we don't sell ice cream, even if that's what will solve the customer's
problems. We make working software. And the Manifesto for Agile
Software Development is a manifesto for doing it better.




               Jason Gorman, "We Emulate Management Consultants at Our Peril"
                                        http://parlezuml.com/blog/?postid=946
If you don't know how to make software, then I'm afraid you've
boarded the wrong train, my friend. This train is going to Better
Software. The train for Management Snake Oil leaves from a different
platform. You can't miss it. It's made of invisible gold and it runs on
magic beans.

               Jason Gorman, "We Emulate Management Consultants at Our Peril"
                                        http://parlezuml.com/blog/?postid=946
Graphic by Sebastian Hermida
http://sbastn.com/2009/06/typing-is-not-the-bottleneck/
David Schpilberg, Steve Berez, Rudy Puryear and Sachin Shah
"Avoiding the Alignment Trap in Information Technology"
MIT Sloan Management Review
We have been up all night, my friends and
I, [...] we have been discussing right up to
the limits of logic and scrawling the paper
with demented writing.
Our hearts were filled with an immense
pride at feeling ourselves standing quite
alone [...].
We want to sing the love of danger, the
habit of energy and rashness.
The essential elements of our poetry will be
courage, audacity and revolt. [...]
People in high tech take pride in their work.
They are individuals who see the details of
the things they produce in the light of the
trials and triumphs they experience while
creating products. In the courage of
creation, they find a place to hang their
individuality. Programmers and techno types
appreciate elegant, spare code and the
occasional well-turned architectural hack.

   Rick Levine, Christopher Locke, Doc Searles and David Weinberger

                              The Cluetrain Manifesto
Craftsmanship has been
used for centuries for
the successful
transmittal of skills and
the development of
communities of practice.
http://www.wordle.net/show/wrdl/1188918/SCTAGS2009
A capsule definition of engineering,
independent of any discipline, as you're
likely to find: the set of practices and
techniques that have been determined to
work reliably through experience.
                                          Glenn Vanderburg
  http://confreaks.net/videos/282-lsrc2010-real-software-engineering
Structural engineering is the science and art
of designing and making, with economy and
elegance, buildings, bridges, frameworks,
and other similar structures so that they can
safely resist the forces to which they may be
subjected.
           The Institution of Structural Engineers
Software engineering is the science and art
of designing and making, with economy and
elegance, applications, bridges, frameworks,
and other similar structures so that they can
safely resist the forces to which they may be
subjected.
http://www.computerworld.com.au/article/216844/a-z_programming_languages_awk/
http://www.computerworld.com.au/article/216844/a-z_programming_languages_awk/
TDD is fun! It’s like a game where you
navigate a maze of technical decisions that
lead to highly robust software while
avoiding the quagmire of long debug
sessions. With each test there is a renewed
sense of accomplishment and clear progress
toward the goal. Automated tests record
assumptions, capture decisions, and free the
mind to focus on the next challenge.

                                     James Grenning
                Test-Driven Development for Embedded C
TDD is fun! It’s like a game where you
navigate a maze of technical decisions that
lead to highly robust software while
avoiding the quagmire of long debug
sessions. With each test there is a renewed
sense of accomplishment and clear progress
toward the goal. Automated tests record
assumptions, capture decisions, and free the
mind to focus on the next challenge.

                                     James Grenning
                Test-Driven Development for Embedded C
Programming is difficult
business. It should never
be undertaken in ignorance.
               Douglas Crockford
            JavaScript: The Good Parts

More Related Content

Similar to A question of craftsmanship

Project 00 Report
Project 00 ReportProject 00 Report
Project 00 Report
spiffyjj115
 
Emulation Software Technologies Pvt Ltd
Emulation Software Technologies Pvt LtdEmulation Software Technologies Pvt Ltd
Emulation Software Technologies Pvt Ltd
Emulation software technologies pvt ltd.
 

Similar to A question of craftsmanship (20)

A Question of Craftsmanship
A Question of CraftsmanshipA Question of Craftsmanship
A Question of Craftsmanship
 
The Architecture of Uncertainty
The Architecture of UncertaintyThe Architecture of Uncertainty
The Architecture of Uncertainty
 
GDSC NIET ORIENTATION ).pdf
GDSC NIET ORIENTATION ).pdfGDSC NIET ORIENTATION ).pdf
GDSC NIET ORIENTATION ).pdf
 
Agile software architecture
Agile software architectureAgile software architecture
Agile software architecture
 
Old Works
Old WorksOld Works
Old Works
 
Resume
ResumeResume
Resume
 
Approaching risk management with your head in the cloud
Approaching risk management with your head in the cloudApproaching risk management with your head in the cloud
Approaching risk management with your head in the cloud
 
QueensLab presentation
QueensLab presentation QueensLab presentation
QueensLab presentation
 
Sacrificing the golden calf of "coding"
Sacrificing the golden calf of "coding"Sacrificing the golden calf of "coding"
Sacrificing the golden calf of "coding"
 
CraftConf: Surviving the hyperautomation low code bubbl
CraftConf: Surviving the hyperautomation low code bubblCraftConf: Surviving the hyperautomation low code bubbl
CraftConf: Surviving the hyperautomation low code bubbl
 
Assad ul Hassan
Assad ul HassanAssad ul Hassan
Assad ul Hassan
 
Project 00 Report
Project 00 ReportProject 00 Report
Project 00 Report
 
Project 00 Report
Project 00 ReportProject 00 Report
Project 00 Report
 
ChatGPT and not only: How to use the power of GPT-X models at scale
ChatGPT and not only: How to use the power of GPT-X models at scaleChatGPT and not only: How to use the power of GPT-X models at scale
ChatGPT and not only: How to use the power of GPT-X models at scale
 
ISTC Keynote Smart Authoring For A Smarter Planet
ISTC Keynote   Smart Authoring For A Smarter PlanetISTC Keynote   Smart Authoring For A Smarter Planet
ISTC Keynote Smart Authoring For A Smarter Planet
 
Synthetic Data: From 3D model to AI on the Edge
Synthetic Data: From 3D model to AI on the EdgeSynthetic Data: From 3D model to AI on the Edge
Synthetic Data: From 3D model to AI on the Edge
 
Emulation Software Technologies Pvt Ltd
Emulation Software Technologies Pvt LtdEmulation Software Technologies Pvt Ltd
Emulation Software Technologies Pvt Ltd
 
GHC17 Abstract: From Monolith to Microservices
GHC17 Abstract: From Monolith to MicroservicesGHC17 Abstract: From Monolith to Microservices
GHC17 Abstract: From Monolith to Microservices
 
[241] AI 칩 개발에 사용되는 엔지니어링
[241] AI 칩 개발에 사용되는 엔지니어링[241] AI 칩 개발에 사용되는 엔지니어링
[241] AI 칩 개발에 사용되는 엔지니어링
 
GDSC GCOEA Info Session .pptx
GDSC GCOEA Info Session .pptxGDSC GCOEA Info Session .pptx
GDSC GCOEA Info Session .pptx
 

More from AgileOnTheBeach

Research instruments case study
Research instruments case studyResearch instruments case study
Research instruments case study
AgileOnTheBeach
 
Sullivan cuff case study
Sullivan cuff case studySullivan cuff case study
Sullivan cuff case study
AgileOnTheBeach
 
The problem solvers problem
The problem solvers problemThe problem solvers problem
The problem solvers problem
AgileOnTheBeach
 
Research instruments case study
Research instruments case studyResearch instruments case study
Research instruments case study
AgileOnTheBeach
 
Ignition team - creating agile companies
Ignition team - creating agile companiesIgnition team - creating agile companies
Ignition team - creating agile companies
AgileOnTheBeach
 
First build the right thing
First build the right thingFirst build the right thing
First build the right thing
AgileOnTheBeach
 
Behaviour Driven Development - Beyond given when then
Behaviour Driven Development - Beyond given when thenBehaviour Driven Development - Beyond given when then
Behaviour Driven Development - Beyond given when then
AgileOnTheBeach
 
Sustaining Test-Driven Development
Sustaining Test-Driven DevelopmentSustaining Test-Driven Development
Sustaining Test-Driven Development
AgileOnTheBeach
 
Oxford Innovation - case study
Oxford Innovation - case studyOxford Innovation - case study
Oxford Innovation - case study
AgileOnTheBeach
 
Feedback Loops in Agile Development
Feedback Loops in Agile DevelopmentFeedback Loops in Agile Development
Feedback Loops in Agile Development
AgileOnTheBeach
 
The problem solvers problem
The problem solvers problemThe problem solvers problem
The problem solvers problem
AgileOnTheBeach
 

More from AgileOnTheBeach (20)

Research instruments case study
Research instruments case studyResearch instruments case study
Research instruments case study
 
Sullivan cuff case study
Sullivan cuff case studySullivan cuff case study
Sullivan cuff case study
 
Value stream mapping
Value stream mapping  Value stream mapping
Value stream mapping
 
The problem solvers problem
The problem solvers problemThe problem solvers problem
The problem solvers problem
 
System Error
System ErrorSystem Error
System Error
 
Surfing the Agile Wave
Surfing the Agile WaveSurfing the Agile Wave
Surfing the Agile Wave
 
Smart Metrics
Smart Metrics  Smart Metrics
Smart Metrics
 
Research instruments case study
Research instruments case studyResearch instruments case study
Research instruments case study
 
Lean and lego
Lean and lego Lean and lego
Lean and lego
 
Ignition team - creating agile companies
Ignition team - creating agile companiesIgnition team - creating agile companies
Ignition team - creating agile companies
 
First build the right thing
First build the right thingFirst build the right thing
First build the right thing
 
Embedded storycrafting
Embedded storycraftingEmbedded storycrafting
Embedded storycrafting
 
Beware sharp tools
Beware sharp toolsBeware sharp tools
Beware sharp tools
 
Lean startup
Lean startupLean startup
Lean startup
 
Behaviour Driven Development - Beyond given when then
Behaviour Driven Development - Beyond given when thenBehaviour Driven Development - Beyond given when then
Behaviour Driven Development - Beyond given when then
 
Sustaining Test-Driven Development
Sustaining Test-Driven DevelopmentSustaining Test-Driven Development
Sustaining Test-Driven Development
 
Agile in Practice
Agile in PracticeAgile in Practice
Agile in Practice
 
Oxford Innovation - case study
Oxford Innovation - case studyOxford Innovation - case study
Oxford Innovation - case study
 
Feedback Loops in Agile Development
Feedback Loops in Agile DevelopmentFeedback Loops in Agile Development
Feedback Loops in Agile Development
 
The problem solvers problem
The problem solvers problemThe problem solvers problem
The problem solvers problem
 

Recently uploaded

Artificial Intelligence: Facts and Myths
Artificial Intelligence: Facts and MythsArtificial Intelligence: Facts and Myths
Artificial Intelligence: Facts and Myths
Joaquim Jorge
 
IAC 2024 - IA Fast Track to Search Focused AI Solutions
IAC 2024 - IA Fast Track to Search Focused AI SolutionsIAC 2024 - IA Fast Track to Search Focused AI Solutions
IAC 2024 - IA Fast Track to Search Focused AI Solutions
Enterprise Knowledge
 

Recently uploaded (20)

The Role of Taxonomy and Ontology in Semantic Layers - Heather Hedden.pdf
The Role of Taxonomy and Ontology in Semantic Layers - Heather Hedden.pdfThe Role of Taxonomy and Ontology in Semantic Layers - Heather Hedden.pdf
The Role of Taxonomy and Ontology in Semantic Layers - Heather Hedden.pdf
 
Axa Assurance Maroc - Insurer Innovation Award 2024
Axa Assurance Maroc - Insurer Innovation Award 2024Axa Assurance Maroc - Insurer Innovation Award 2024
Axa Assurance Maroc - Insurer Innovation Award 2024
 
presentation ICT roal in 21st century education
presentation ICT roal in 21st century educationpresentation ICT roal in 21st century education
presentation ICT roal in 21st century education
 
Boost PC performance: How more available memory can improve productivity
Boost PC performance: How more available memory can improve productivityBoost PC performance: How more available memory can improve productivity
Boost PC performance: How more available memory can improve productivity
 
Strategize a Smooth Tenant-to-tenant Migration and Copilot Takeoff
Strategize a Smooth Tenant-to-tenant Migration and Copilot TakeoffStrategize a Smooth Tenant-to-tenant Migration and Copilot Takeoff
Strategize a Smooth Tenant-to-tenant Migration and Copilot Takeoff
 
08448380779 Call Girls In Civil Lines Women Seeking Men
08448380779 Call Girls In Civil Lines Women Seeking Men08448380779 Call Girls In Civil Lines Women Seeking Men
08448380779 Call Girls In Civil Lines Women Seeking Men
 
GenCyber Cyber Security Day Presentation
GenCyber Cyber Security Day PresentationGenCyber Cyber Security Day Presentation
GenCyber Cyber Security Day Presentation
 
[2024]Digital Global Overview Report 2024 Meltwater.pdf
[2024]Digital Global Overview Report 2024 Meltwater.pdf[2024]Digital Global Overview Report 2024 Meltwater.pdf
[2024]Digital Global Overview Report 2024 Meltwater.pdf
 
Artificial Intelligence: Facts and Myths
Artificial Intelligence: Facts and MythsArtificial Intelligence: Facts and Myths
Artificial Intelligence: Facts and Myths
 
Driving Behavioral Change for Information Management through Data-Driven Gree...
Driving Behavioral Change for Information Management through Data-Driven Gree...Driving Behavioral Change for Information Management through Data-Driven Gree...
Driving Behavioral Change for Information Management through Data-Driven Gree...
 
Tech Trends Report 2024 Future Today Institute.pdf
Tech Trends Report 2024 Future Today Institute.pdfTech Trends Report 2024 Future Today Institute.pdf
Tech Trends Report 2024 Future Today Institute.pdf
 
Mastering MySQL Database Architecture: Deep Dive into MySQL Shell and MySQL R...
Mastering MySQL Database Architecture: Deep Dive into MySQL Shell and MySQL R...Mastering MySQL Database Architecture: Deep Dive into MySQL Shell and MySQL R...
Mastering MySQL Database Architecture: Deep Dive into MySQL Shell and MySQL R...
 
Exploring the Future Potential of AI-Enabled Smartphone Processors
Exploring the Future Potential of AI-Enabled Smartphone ProcessorsExploring the Future Potential of AI-Enabled Smartphone Processors
Exploring the Future Potential of AI-Enabled Smartphone Processors
 
GenAI Risks & Security Meetup 01052024.pdf
GenAI Risks & Security Meetup 01052024.pdfGenAI Risks & Security Meetup 01052024.pdf
GenAI Risks & Security Meetup 01052024.pdf
 
From Event to Action: Accelerate Your Decision Making with Real-Time Automation
From Event to Action: Accelerate Your Decision Making with Real-Time AutomationFrom Event to Action: Accelerate Your Decision Making with Real-Time Automation
From Event to Action: Accelerate Your Decision Making with Real-Time Automation
 
Workshop - Best of Both Worlds_ Combine KG and Vector search for enhanced R...
Workshop - Best of Both Worlds_ Combine  KG and Vector search for  enhanced R...Workshop - Best of Both Worlds_ Combine  KG and Vector search for  enhanced R...
Workshop - Best of Both Worlds_ Combine KG and Vector search for enhanced R...
 
Automating Google Workspace (GWS) & more with Apps Script
Automating Google Workspace (GWS) & more with Apps ScriptAutomating Google Workspace (GWS) & more with Apps Script
Automating Google Workspace (GWS) & more with Apps Script
 
Raspberry Pi 5: Challenges and Solutions in Bringing up an OpenGL/Vulkan Driv...
Raspberry Pi 5: Challenges and Solutions in Bringing up an OpenGL/Vulkan Driv...Raspberry Pi 5: Challenges and Solutions in Bringing up an OpenGL/Vulkan Driv...
Raspberry Pi 5: Challenges and Solutions in Bringing up an OpenGL/Vulkan Driv...
 
IAC 2024 - IA Fast Track to Search Focused AI Solutions
IAC 2024 - IA Fast Track to Search Focused AI SolutionsIAC 2024 - IA Fast Track to Search Focused AI Solutions
IAC 2024 - IA Fast Track to Search Focused AI Solutions
 
Strategies for Unlocking Knowledge Management in Microsoft 365 in the Copilot...
Strategies for Unlocking Knowledge Management in Microsoft 365 in the Copilot...Strategies for Unlocking Knowledge Management in Microsoft 365 in the Copilot...
Strategies for Unlocking Knowledge Management in Microsoft 365 in the Copilot...
 

A question of craftsmanship

  • 2.
  • 3. The engineering is the art, and the art is the engineering. Cecil Balmond http://www.newscientist.com/article/ mg21128272.700-olympic-sculpture-is-a-marvel-of-mathematics.html
  • 4.
  • 5. There is an art, craft, and science to programming that extends far beyond the program. The act of programming marries the discrete world of computers with the fluid world of human affairs. Programmers mediate between the negotiated and uncertain truths of business and the crisp, uncompromising domain of bits and bytes and higher constructed types.
  • 6.
  • 7.
  • 8.
  • 9.
  • 10.
  • 11.
  • 12.
  • 13.
  • 16.
  • 17. Anyway, the point I'm making is that we need to be very careful. Just as they're doing with management consultants, sooner or later our customers will figure out that the management practices of Agile don't deliver working software any more than they can grill cheese or power an electric bicycle. Jason Gorman, "We Emulate Management Consultants at Our Peril" http://parlezuml.com/blog/?postid=946
  • 18. The business of software is software. We don't make bean bags and we don't sell ice cream, even if that's what will solve the customer's problems. We make working software. And the Manifesto for Agile Software Development is a manifesto for doing it better. Jason Gorman, "We Emulate Management Consultants at Our Peril" http://parlezuml.com/blog/?postid=946
  • 19. If you don't know how to make software, then I'm afraid you've boarded the wrong train, my friend. This train is going to Better Software. The train for Management Snake Oil leaves from a different platform. You can't miss it. It's made of invisible gold and it runs on magic beans. Jason Gorman, "We Emulate Management Consultants at Our Peril" http://parlezuml.com/blog/?postid=946
  • 20. Graphic by Sebastian Hermida http://sbastn.com/2009/06/typing-is-not-the-bottleneck/
  • 21. David Schpilberg, Steve Berez, Rudy Puryear and Sachin Shah "Avoiding the Alignment Trap in Information Technology" MIT Sloan Management Review
  • 22.
  • 23.
  • 24. We have been up all night, my friends and I, [...] we have been discussing right up to the limits of logic and scrawling the paper with demented writing. Our hearts were filled with an immense pride at feeling ourselves standing quite alone [...]. We want to sing the love of danger, the habit of energy and rashness. The essential elements of our poetry will be courage, audacity and revolt. [...]
  • 25.
  • 26.
  • 27.
  • 28.
  • 29.
  • 30.
  • 31.
  • 32.
  • 33.
  • 34.
  • 35.
  • 36. People in high tech take pride in their work. They are individuals who see the details of the things they produce in the light of the trials and triumphs they experience while creating products. In the courage of creation, they find a place to hang their individuality. Programmers and techno types appreciate elegant, spare code and the occasional well-turned architectural hack. Rick Levine, Christopher Locke, Doc Searles and David Weinberger The Cluetrain Manifesto
  • 37.
  • 38.
  • 39. Craftsmanship has been used for centuries for the successful transmittal of skills and the development of communities of practice.
  • 41.
  • 42.
  • 43.
  • 44. A capsule definition of engineering, independent of any discipline, as you're likely to find: the set of practices and techniques that have been determined to work reliably through experience. Glenn Vanderburg http://confreaks.net/videos/282-lsrc2010-real-software-engineering
  • 45. Structural engineering is the science and art of designing and making, with economy and elegance, buildings, bridges, frameworks, and other similar structures so that they can safely resist the forces to which they may be subjected. The Institution of Structural Engineers
  • 46. Software engineering is the science and art of designing and making, with economy and elegance, applications, bridges, frameworks, and other similar structures so that they can safely resist the forces to which they may be subjected.
  • 47.
  • 48.
  • 51. TDD is fun! It’s like a game where you navigate a maze of technical decisions that lead to highly robust software while avoiding the quagmire of long debug sessions. With each test there is a renewed sense of accomplishment and clear progress toward the goal. Automated tests record assumptions, capture decisions, and free the mind to focus on the next challenge. James Grenning Test-Driven Development for Embedded C
  • 52. TDD is fun! It’s like a game where you navigate a maze of technical decisions that lead to highly robust software while avoiding the quagmire of long debug sessions. With each test there is a renewed sense of accomplishment and clear progress toward the goal. Automated tests record assumptions, capture decisions, and free the mind to focus on the next challenge. James Grenning Test-Driven Development for Embedded C
  • 53. Programming is difficult business. It should never be undertaken in ignorance. Douglas Crockford JavaScript: The Good Parts