SlideShare a Scribd company logo
Introduction To
Software Craftsmanship
   V1, Because We Embrace Change
Romanian
Craftsmanship -
 Horezu Area
Soft ware Development
      Is A Craft
How Did One Become
   a Craftsman?
Apprentice => Journeyman => Craftsman
How Does One
Become a Developer?
Have Fun Learning
http://theebgar.net/2009/from-6-840-to-754/


College Years: Computer
         Science
“Professional”
 Programmer
Things You Learn on
First Day as Professional
• Source Control
• Issue Tracking
• Time Tracking
• Estimation & Deadline
• Communication
• Team Work
• NO MORE FUN
Q: How Did You Start
   Programming?
We are:
   Maria Diaconu
Alexandru Bolboaca
   10+ yrs of Soft ware
 Organization & Technical
        Expertise
Q: How Did We Start
   Programming?
We Noticed:

• Developers Learn By Themselves
• College = Computer Science
• Developers have Deadlines =>
  Beautiful code at start, Quick & Dirty
  Code near Deadlines
IDEA
What If You Could Write Beautiful Code At
  Least As FAST as Quick&Dirty Code?
Be Professional!


• Challenging to learn it at job
• Practice, alone or with other people
• Learn history
• Value experience & knowledge
What To Practice?
• Some Ideas:
  • Pair programming
  • TDD
  • Other languages
  • Fully use your editor
  • Communication
  • ... and anything else
How To Learn?

• Practice:
  • Code Retreat
  • Coding Dojo
  • Coding Kata
• Pairing with people
Code Retreat
• Format:
  • One problem
  • 3 + 3 x 1h sessions
  • Delete the code
  • Retrospective
• “Programming is
  fun again”
Coding Kata


• Term by Dave
  Thomas

• Practice over and
  over the same
  problem or technique
Coding Dojo

• One Problem
• Collective Mind
• Phases:
  • Discuss
  • Code
  • Swap
From Whom to
   Learn?
Experienced Coders
    Colleagues
Any Other Developer
The Manifesto
Be An
Apprentice = Learn from someone
    Master = Teach Someone
 Journeyman = Travel and Work
          With People
I Saved a Project with
   These Techniques

• Clean Code + Boyscout rule +
  refactoring
• Pair
• TDD
Questions
A Challenge for You!
“The Important Thing is Not To Stop
           Questioning”
Thank You!
  Maria Diaconu & Alexandru Bolboaca

MosaicWorks - www.mozaicworks.com
mddiaconu@gmail.com; Twitter: fireladyM

         www.alexbolboaca.ro
 alexboly@gmail.com; Twitter: alexboly

  AgileWorks Romania - agileworks.ro
   OpenAgile Romania - openagile.ro

More Related Content

What's hot

What's hot (9)

Senti is looking for interns!
Senti is looking for interns!Senti is looking for interns!
Senti is looking for interns!
 
Getting Stakeholder Buy-in for xAPI
Getting Stakeholder Buy-in for xAPIGetting Stakeholder Buy-in for xAPI
Getting Stakeholder Buy-in for xAPI
 
Why to learn programming
Why to learn programmingWhy to learn programming
Why to learn programming
 
VEF/US Embassy "Managing Your Career" 2015/08/14
VEF/US Embassy "Managing Your Career" 2015/08/14VEF/US Embassy "Managing Your Career" 2015/08/14
VEF/US Embassy "Managing Your Career" 2015/08/14
 
Senti is looking for Marketing interns!
Senti is looking for Marketing interns!Senti is looking for Marketing interns!
Senti is looking for Marketing interns!
 
Senti is looking for interns!
Senti is looking for interns!Senti is looking for interns!
Senti is looking for interns!
 
Code club
Code clubCode club
Code club
 
My Seminar Portfolio
My Seminar PortfolioMy Seminar Portfolio
My Seminar Portfolio
 
Programming with Alice - Class Overview
Programming with Alice - Class OverviewProgramming with Alice - Class Overview
Programming with Alice - Class Overview
 

Similar to Introduction to software craftsmanship

Getting started with dev tools (05 09-17, santa monica) upload
Getting started with dev tools (05 09-17, santa monica) uploadGetting started with dev tools (05 09-17, santa monica) upload
Getting started with dev tools (05 09-17, santa monica) upload
Thinkful
 

Similar to Introduction to software craftsmanship (20)

It is a sunny day
It is a sunny dayIt is a sunny day
It is a sunny day
 
Friday final test
Friday final testFriday final test
Friday final test
 
Clean code - Getting your R&D on board
Clean code - Getting your R&D on boardClean code - Getting your R&D on board
Clean code - Getting your R&D on board
 
Don't get blamed for your choices - Techorama 2019
Don't get blamed for your choices - Techorama 2019Don't get blamed for your choices - Techorama 2019
Don't get blamed for your choices - Techorama 2019
 
Write code and find a job
Write code and find a jobWrite code and find a job
Write code and find a job
 
Rock the Technical Interview
Rock the Technical InterviewRock the Technical Interview
Rock the Technical Interview
 
Insights about children testing
Insights about children testingInsights about children testing
Insights about children testing
 
The Elements of Style
The Elements of StyleThe Elements of Style
The Elements of Style
 
Coding Introductory Lesson Upper Elementary
Coding Introductory Lesson Upper ElementaryCoding Introductory Lesson Upper Elementary
Coding Introductory Lesson Upper Elementary
 
Career of the Software Engineer in Modern Open-Source e-Commerce Company
Career of the Software Engineer in Modern Open-Source e-Commerce CompanyCareer of the Software Engineer in Modern Open-Source e-Commerce Company
Career of the Software Engineer in Modern Open-Source e-Commerce Company
 
It's XP Stupid (2019)
It's XP Stupid (2019)It's XP Stupid (2019)
It's XP Stupid (2019)
 
How to Start a Career in Data Science - Jovian.ml
How to Start a Career in Data Science - Jovian.ml How to Start a Career in Data Science - Jovian.ml
How to Start a Career in Data Science - Jovian.ml
 
DevCoach - Solid Foundations for the New Wave of Software Developers
DevCoach - Solid Foundations for the New Wave of Software DevelopersDevCoach - Solid Foundations for the New Wave of Software Developers
DevCoach - Solid Foundations for the New Wave of Software Developers
 
Colin sullivan successful-project-presentation
Colin sullivan successful-project-presentationColin sullivan successful-project-presentation
Colin sullivan successful-project-presentation
 
Welcome to EHS Digital Design
Welcome to EHS Digital DesignWelcome to EHS Digital Design
Welcome to EHS Digital Design
 
How Children Learn Testing at Testit
How Children Learn Testing at TestitHow Children Learn Testing at Testit
How Children Learn Testing at Testit
 
Getting started with dev tools (05 09-17, santa monica) upload
Getting started with dev tools (05 09-17, santa monica) uploadGetting started with dev tools (05 09-17, santa monica) upload
Getting started with dev tools (05 09-17, santa monica) upload
 
CoTrade
CoTradeCoTrade
CoTrade
 
Wsrest13 gilherme keynote
Wsrest13 gilherme keynoteWsrest13 gilherme keynote
Wsrest13 gilherme keynote
 
Life after PhD - An insight and a few tips to kick-start your career in the i...
Life after PhD - An insight and a few tips to kick-start your career in the i...Life after PhD - An insight and a few tips to kick-start your career in the i...
Life after PhD - An insight and a few tips to kick-start your career in the i...
 

More from Alexandru Bolboaca

More from Alexandru Bolboaca (20)

Refactor legacy code through pure functions
Refactor legacy code through pure functionsRefactor legacy code through pure functions
Refactor legacy code through pure functions
 
Design Without Types
Design Without TypesDesign Without Types
Design Without Types
 
Thinking in Functions
Thinking in FunctionsThinking in Functions
Thinking in Functions
 
Raising the Bar
Raising the BarRaising the Bar
Raising the Bar
 
The Journey to Master Code Design
The Journey to Master Code DesignThe Journey to Master Code Design
The Journey to Master Code Design
 
What is good software design? And why it matters?
What is good software design? And why it matters?What is good software design? And why it matters?
What is good software design? And why it matters?
 
Functional programming in C++
Functional programming in C++Functional programming in C++
Functional programming in C++
 
Agile Technical Leadership
Agile Technical LeadershipAgile Technical Leadership
Agile Technical Leadership
 
TDD As If You Meant It
TDD As If You Meant ItTDD As If You Meant It
TDD As If You Meant It
 
Usable Software Design
Usable Software DesignUsable Software Design
Usable Software Design
 
Hidden loops
Hidden loopsHidden loops
Hidden loops
 
Removing structural duplication
Removing structural duplicationRemoving structural duplication
Removing structural duplication
 
Continuous delivery
Continuous deliveryContinuous delivery
Continuous delivery
 
Why You Should Start Using Docker
Why You Should Start Using DockerWhy You Should Start Using Docker
Why You Should Start Using Docker
 
Pyramid of-developer-skills
Pyramid of-developer-skillsPyramid of-developer-skills
Pyramid of-developer-skills
 
Applied craftsmanship
Applied craftsmanshipApplied craftsmanship
Applied craftsmanship
 
Pyramid of-developer-skills
Pyramid of-developer-skillsPyramid of-developer-skills
Pyramid of-developer-skills
 
Stay focused
Stay focusedStay focused
Stay focused
 
Kanban intro
Kanban introKanban intro
Kanban intro
 
Unit testing-patterns
Unit testing-patternsUnit testing-patterns
Unit testing-patterns
 

Recently uploaded

Recently uploaded (20)

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
 
Custom Approval Process: A New Perspective, Pavel Hrbacek & Anindya Halder
Custom Approval Process: A New Perspective, Pavel Hrbacek & Anindya HalderCustom Approval Process: A New Perspective, Pavel Hrbacek & Anindya Halder
Custom Approval Process: A New Perspective, Pavel Hrbacek & Anindya Halder
 
To Graph or Not to Graph Knowledge Graph Architectures and LLMs
To Graph or Not to Graph Knowledge Graph Architectures and LLMsTo Graph or Not to Graph Knowledge Graph Architectures and LLMs
To Graph or Not to Graph Knowledge Graph Architectures and LLMs
 
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 🚀
 
Measures in SQL (a talk at SF Distributed Systems meetup, 2024-05-22)
Measures in SQL (a talk at SF Distributed Systems meetup, 2024-05-22)Measures in SQL (a talk at SF Distributed Systems meetup, 2024-05-22)
Measures in SQL (a talk at SF Distributed Systems meetup, 2024-05-22)
 
De-mystifying Zero to One: Design Informed Techniques for Greenfield Innovati...
De-mystifying Zero to One: Design Informed Techniques for Greenfield Innovati...De-mystifying Zero to One: Design Informed Techniques for Greenfield Innovati...
De-mystifying Zero to One: Design Informed Techniques for Greenfield Innovati...
 
"Impact of front-end architecture on development cost", Viktor Turskyi
"Impact of front-end architecture on development cost", Viktor Turskyi"Impact of front-end architecture on development cost", Viktor Turskyi
"Impact of front-end architecture on development cost", Viktor Turskyi
 
Connector Corner: Automate dynamic content and events by pushing a button
Connector Corner: Automate dynamic content and events by pushing a buttonConnector Corner: Automate dynamic content and events by pushing a button
Connector Corner: Automate dynamic content and events by pushing a button
 
Mission to Decommission: Importance of Decommissioning Products to Increase E...
Mission to Decommission: Importance of Decommissioning Products to Increase E...Mission to Decommission: Importance of Decommissioning Products to Increase E...
Mission to Decommission: Importance of Decommissioning Products to Increase E...
 
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
 
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
 
Bits & Pixels using AI for Good.........
Bits & Pixels using AI for Good.........Bits & Pixels using AI for Good.........
Bits & Pixels using AI for Good.........
 
IoT Analytics Company Presentation May 2024
IoT Analytics Company Presentation May 2024IoT Analytics Company Presentation May 2024
IoT Analytics Company Presentation May 2024
 
SOQL 201 for Admins & Developers: Slice & Dice Your Org’s Data With Aggregate...
SOQL 201 for Admins & Developers: Slice & Dice Your Org’s Data With Aggregate...SOQL 201 for Admins & Developers: Slice & Dice Your Org’s Data With Aggregate...
SOQL 201 for Admins & Developers: Slice & Dice Your Org’s Data With Aggregate...
 
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...
 
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
 
Demystifying gRPC in .Net by John Staveley
Demystifying gRPC in .Net by John StaveleyDemystifying gRPC in .Net by John Staveley
Demystifying gRPC in .Net by John Staveley
 
AI for Every Business: Unlocking Your Product's Universal Potential by VP of ...
AI for Every Business: Unlocking Your Product's Universal Potential by VP of ...AI for Every Business: Unlocking Your Product's Universal Potential by VP of ...
AI for Every Business: Unlocking Your Product's Universal Potential by VP of ...
 
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
 
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
 

Introduction to software craftsmanship

Editor's Notes