SlideShare ist ein Scribd-Unternehmen logo
1 von 15
Software Craftsmanship Meeting #4 http://www.flickr.com/photos/renfield/17375998/in/set-388814/
Software Craftsmanship Group ,[object Object]
http://www.linkedin.com/groups?gid=2578449,[object Object]
http://twitter.com/urilavi#SCIL
Agenda Short Lectures Mentorship/Apprenticeship Structure 101 Effective Code Review Unit Testing Legacy Code Hands On Coding Dojo
Mentorship / Apprenticeship Software Craftsmanship as a medieval Craftsmanship evolves Apprenticeship For EffectiveApprenticeship a strong Mentor is required
Why Mentorship / Apprenticeship? Area of expertise Architecture & Design Code Reviews & Code Readings Exchange of Information Management Dilemmas
Mentorship / Apprenticeship Program At least Four(4) months of commitment By a Mentor By a Mentee At least Two(2) hours offrontal meeting during a week 2*4*4 = 32H
How Mentorship / Apprenticeship? Mentors: List of Mentors Community Based Mentors & Mentees Feedback to Community
What’s there for me? Community Benefit Personal Benefit Opens Doors What goes around comes around Affects Careers Creates (Business) Opportunities Deeping the knowledge
Legacy Code + Unit Tests Slideshare.net Working Effectively with Legacy Code http://www.slideshare.net/nashjain/working-effectively-with-legacy-code-presentation
Hands On Coding Dojo http://www.flickr.com/photos/renfield/351556388/in/photostream/
Bowling Kata
Scoring Bowling. The game consists of 10 frames as shown above.  In each frame the player has two opportunities to knock down 10 pins.  The score for the frame is the total number of pins knocked down, plus bonuses for strikes and spares. A spare is when the player knocks down all 10 pins in two tries.  The bonus for that frame is the number of pins knocked down by the next roll.  So in frame 3 above, the score is 10 (the total number knocked down) plus a bonus of 5 (the number of pins knocked down on the next roll.) A strike is when the player knocks down all 10 pins on his first try.  The bonus for that frame is the value of the next two balls rolled. In the tenth frame a player who rolls a spare or strike is allowed to roll the extra balls to complete the frame.  However no more than three balls can be rolled in tenth frame.
The Requirements. Write a class named “Game” that has two methods roll(pins : int) is called each time the player rolls a ball.  The argument is the number of pins knocked down. score() : int is called only at the very end of the game.  It returns the total score for that game.

Weitere ähnliche Inhalte

Ähnlich wie Software craftsmanship - 4

Create a fantasy cricket game in python.ppt
Create a fantasy cricket game in python.pptCreate a fantasy cricket game in python.ppt
Create a fantasy cricket game in python.pptRr
 
Octalysis Level 1 Certificate - Adrian Ensner - Remote Gamification Workshop.pdf
Octalysis Level 1 Certificate - Adrian Ensner - Remote Gamification Workshop.pdfOctalysis Level 1 Certificate - Adrian Ensner - Remote Gamification Workshop.pdf
Octalysis Level 1 Certificate - Adrian Ensner - Remote Gamification Workshop.pdfYu-kai Chou
 
ENG 2322College of Professional StudiesProject #4 Portfolio
ENG 2322College of Professional StudiesProject #4 PortfolioENG 2322College of Professional StudiesProject #4 Portfolio
ENG 2322College of Professional StudiesProject #4 PortfolioTanaMaeskm
 
Sip project and innovation pt2
Sip project and innovation pt2Sip project and innovation pt2
Sip project and innovation pt2Sin FromBirth
 
The Basics of Game Design and Scratch - Unit Plan
The Basics of Game Design and Scratch - Unit PlanThe Basics of Game Design and Scratch - Unit Plan
The Basics of Game Design and Scratch - Unit PlanInstantTechInfo
 
Lessons from the Trenches of Learning Game Design
Lessons from the Trenches of Learning Game DesignLessons from the Trenches of Learning Game Design
Lessons from the Trenches of Learning Game DesignSharon Boller
 
LAFS SVI Level 3 - Game Design and Analysis
LAFS SVI Level 3 - Game Design and AnalysisLAFS SVI Level 3 - Game Design and Analysis
LAFS SVI Level 3 - Game Design and AnalysisDavid Mullich
 
LTMS 510 Multiplayer Classroom Syllabus
LTMS 510 Multiplayer Classroom SyllabusLTMS 510 Multiplayer Classroom Syllabus
LTMS 510 Multiplayer Classroom SyllabusAndy Petroski
 
IRJET- No More Third Umpires
IRJET-  	  No More Third UmpiresIRJET-  	  No More Third Umpires
IRJET- No More Third UmpiresIRJET Journal
 
Designing Games for Industrial Training.
Designing Games for Industrial Training.Designing Games for Industrial Training.
Designing Games for Industrial Training.SeriousGamesAssoc
 
Play to Learn: Effective Learning Game Design
Play to Learn: Effective Learning Game DesignPlay to Learn: Effective Learning Game Design
Play to Learn: Effective Learning Game DesignSharon Boller
 
ITCamp 2011 - Catalin Zima - Common pitfalls in Windows Phone 7 game development
ITCamp 2011 - Catalin Zima - Common pitfalls in Windows Phone 7 game developmentITCamp 2011 - Catalin Zima - Common pitfalls in Windows Phone 7 game development
ITCamp 2011 - Catalin Zima - Common pitfalls in Windows Phone 7 game developmentITCamp
 

Ähnlich wie Software craftsmanship - 4 (15)

Create a fantasy cricket game in python.ppt
Create a fantasy cricket game in python.pptCreate a fantasy cricket game in python.ppt
Create a fantasy cricket game in python.ppt
 
Games thiagi
Games thiagiGames thiagi
Games thiagi
 
Octalysis Level 1 Certificate - Adrian Ensner - Remote Gamification Workshop.pdf
Octalysis Level 1 Certificate - Adrian Ensner - Remote Gamification Workshop.pdfOctalysis Level 1 Certificate - Adrian Ensner - Remote Gamification Workshop.pdf
Octalysis Level 1 Certificate - Adrian Ensner - Remote Gamification Workshop.pdf
 
ENG 2322College of Professional StudiesProject #4 Portfolio
ENG 2322College of Professional StudiesProject #4 PortfolioENG 2322College of Professional StudiesProject #4 Portfolio
ENG 2322College of Professional StudiesProject #4 Portfolio
 
Sip project and innovation pt2
Sip project and innovation pt2Sip project and innovation pt2
Sip project and innovation pt2
 
Thinking in F#
Thinking in F#Thinking in F#
Thinking in F#
 
The Basics of Game Design and Scratch - Unit Plan
The Basics of Game Design and Scratch - Unit PlanThe Basics of Game Design and Scratch - Unit Plan
The Basics of Game Design and Scratch - Unit Plan
 
Lessons from the Trenches of Learning Game Design
Lessons from the Trenches of Learning Game DesignLessons from the Trenches of Learning Game Design
Lessons from the Trenches of Learning Game Design
 
LAFS SVI Level 3 - Game Design and Analysis
LAFS SVI Level 3 - Game Design and AnalysisLAFS SVI Level 3 - Game Design and Analysis
LAFS SVI Level 3 - Game Design and Analysis
 
LTMS 510 Multiplayer Classroom Syllabus
LTMS 510 Multiplayer Classroom SyllabusLTMS 510 Multiplayer Classroom Syllabus
LTMS 510 Multiplayer Classroom Syllabus
 
IRJET- No More Third Umpires
IRJET-  	  No More Third UmpiresIRJET-  	  No More Third Umpires
IRJET- No More Third Umpires
 
Designing Games for Industrial Training.
Designing Games for Industrial Training.Designing Games for Industrial Training.
Designing Games for Industrial Training.
 
Play to Learn: Effective Learning Game Design
Play to Learn: Effective Learning Game DesignPlay to Learn: Effective Learning Game Design
Play to Learn: Effective Learning Game Design
 
ITCamp 2011 - Catalin Zima - Common pitfalls in Windows Phone 7 game development
ITCamp 2011 - Catalin Zima - Common pitfalls in Windows Phone 7 game developmentITCamp 2011 - Catalin Zima - Common pitfalls in Windows Phone 7 game development
ITCamp 2011 - Catalin Zima - Common pitfalls in Windows Phone 7 game development
 
U1 Lesson 06
U1 Lesson 06U1 Lesson 06
U1 Lesson 06
 

Kürzlich hochgeladen

Dev Dives: Streamline document processing with UiPath Studio Web
Dev Dives: Streamline document processing with UiPath Studio WebDev Dives: Streamline document processing with UiPath Studio Web
Dev Dives: Streamline document processing with UiPath Studio WebUiPathCommunity
 
Gen AI in Business - Global Trends Report 2024.pdf
Gen AI in Business - Global Trends Report 2024.pdfGen AI in Business - Global Trends Report 2024.pdf
Gen AI in Business - Global Trends Report 2024.pdfAddepto
 
CloudStudio User manual (basic edition):
CloudStudio User manual (basic edition):CloudStudio User manual (basic edition):
CloudStudio User manual (basic edition):comworks
 
Commit 2024 - Secret Management made easy
Commit 2024 - Secret Management made easyCommit 2024 - Secret Management made easy
Commit 2024 - Secret Management made easyAlfredo García Lavilla
 
Streamlining Python Development: A Guide to a Modern Project Setup
Streamlining Python Development: A Guide to a Modern Project SetupStreamlining Python Development: A Guide to a Modern Project Setup
Streamlining Python Development: A Guide to a Modern Project SetupFlorian Wilhelm
 
"ML in Production",Oleksandr Bagan
"ML in Production",Oleksandr Bagan"ML in Production",Oleksandr Bagan
"ML in Production",Oleksandr BaganFwdays
 
Connect Wave/ connectwave Pitch Deck Presentation
Connect Wave/ connectwave Pitch Deck PresentationConnect Wave/ connectwave Pitch Deck Presentation
Connect Wave/ connectwave Pitch Deck PresentationSlibray Presentation
 
Tampa BSides - Chef's Tour of Microsoft Security Adoption Framework (SAF)
Tampa BSides - Chef's Tour of Microsoft Security Adoption Framework (SAF)Tampa BSides - Chef's Tour of Microsoft Security Adoption Framework (SAF)
Tampa BSides - Chef's Tour of Microsoft Security Adoption Framework (SAF)Mark Simos
 
"Debugging python applications inside k8s environment", Andrii Soldatenko
"Debugging python applications inside k8s environment", Andrii Soldatenko"Debugging python applications inside k8s environment", Andrii Soldatenko
"Debugging python applications inside k8s environment", Andrii SoldatenkoFwdays
 
Advanced Test Driven-Development @ php[tek] 2024
Advanced Test Driven-Development @ php[tek] 2024Advanced Test Driven-Development @ php[tek] 2024
Advanced Test Driven-Development @ php[tek] 2024Scott Keck-Warren
 
Vector Databases 101 - An introduction to the world of Vector Databases
Vector Databases 101 - An introduction to the world of Vector DatabasesVector Databases 101 - An introduction to the world of Vector Databases
Vector Databases 101 - An introduction to the world of Vector DatabasesZilliz
 
Unraveling Multimodality with Large Language Models.pdf
Unraveling Multimodality with Large Language Models.pdfUnraveling Multimodality with Large Language Models.pdf
Unraveling Multimodality with Large Language Models.pdfAlex Barbosa Coqueiro
 
My INSURER PTE LTD - Insurtech Innovation Award 2024
My INSURER PTE LTD - Insurtech Innovation Award 2024My INSURER PTE LTD - Insurtech Innovation Award 2024
My INSURER PTE LTD - Insurtech Innovation Award 2024The Digital Insurer
 
Integration and Automation in Practice: CI/CD in Mule Integration and Automat...
Integration and Automation in Practice: CI/CD in Mule Integration and Automat...Integration and Automation in Practice: CI/CD in Mule Integration and Automat...
Integration and Automation in Practice: CI/CD in Mule Integration and Automat...Patryk Bandurski
 
New from BookNet Canada for 2024: BNC CataList - Tech Forum 2024
New from BookNet Canada for 2024: BNC CataList - Tech Forum 2024New from BookNet Canada for 2024: BNC CataList - Tech Forum 2024
New from BookNet Canada for 2024: BNC CataList - Tech Forum 2024BookNet Canada
 
Designing IA for AI - Information Architecture Conference 2024
Designing IA for AI - Information Architecture Conference 2024Designing IA for AI - Information Architecture Conference 2024
Designing IA for AI - Information Architecture Conference 2024Enterprise Knowledge
 
Story boards and shot lists for my a level piece
Story boards and shot lists for my a level pieceStory boards and shot lists for my a level piece
Story boards and shot lists for my a level piececharlottematthew16
 
DevEX - reference for building teams, processes, and platforms
DevEX - reference for building teams, processes, and platformsDevEX - reference for building teams, processes, and platforms
DevEX - reference for building teams, processes, and platformsSergiu Bodiu
 
Vertex AI Gemini Prompt Engineering Tips
Vertex AI Gemini Prompt Engineering TipsVertex AI Gemini Prompt Engineering Tips
Vertex AI Gemini Prompt Engineering TipsMiki Katsuragi
 

Kürzlich hochgeladen (20)

Dev Dives: Streamline document processing with UiPath Studio Web
Dev Dives: Streamline document processing with UiPath Studio WebDev Dives: Streamline document processing with UiPath Studio Web
Dev Dives: Streamline document processing with UiPath Studio Web
 
Gen AI in Business - Global Trends Report 2024.pdf
Gen AI in Business - Global Trends Report 2024.pdfGen AI in Business - Global Trends Report 2024.pdf
Gen AI in Business - Global Trends Report 2024.pdf
 
CloudStudio User manual (basic edition):
CloudStudio User manual (basic edition):CloudStudio User manual (basic edition):
CloudStudio User manual (basic edition):
 
Commit 2024 - Secret Management made easy
Commit 2024 - Secret Management made easyCommit 2024 - Secret Management made easy
Commit 2024 - Secret Management made easy
 
Streamlining Python Development: A Guide to a Modern Project Setup
Streamlining Python Development: A Guide to a Modern Project SetupStreamlining Python Development: A Guide to a Modern Project Setup
Streamlining Python Development: A Guide to a Modern Project Setup
 
"ML in Production",Oleksandr Bagan
"ML in Production",Oleksandr Bagan"ML in Production",Oleksandr Bagan
"ML in Production",Oleksandr Bagan
 
Connect Wave/ connectwave Pitch Deck Presentation
Connect Wave/ connectwave Pitch Deck PresentationConnect Wave/ connectwave Pitch Deck Presentation
Connect Wave/ connectwave Pitch Deck Presentation
 
Tampa BSides - Chef's Tour of Microsoft Security Adoption Framework (SAF)
Tampa BSides - Chef's Tour of Microsoft Security Adoption Framework (SAF)Tampa BSides - Chef's Tour of Microsoft Security Adoption Framework (SAF)
Tampa BSides - Chef's Tour of Microsoft Security Adoption Framework (SAF)
 
"Debugging python applications inside k8s environment", Andrii Soldatenko
"Debugging python applications inside k8s environment", Andrii Soldatenko"Debugging python applications inside k8s environment", Andrii Soldatenko
"Debugging python applications inside k8s environment", Andrii Soldatenko
 
Advanced Test Driven-Development @ php[tek] 2024
Advanced Test Driven-Development @ php[tek] 2024Advanced Test Driven-Development @ php[tek] 2024
Advanced Test Driven-Development @ php[tek] 2024
 
Vector Databases 101 - An introduction to the world of Vector Databases
Vector Databases 101 - An introduction to the world of Vector DatabasesVector Databases 101 - An introduction to the world of Vector Databases
Vector Databases 101 - An introduction to the world of Vector Databases
 
Unraveling Multimodality with Large Language Models.pdf
Unraveling Multimodality with Large Language Models.pdfUnraveling Multimodality with Large Language Models.pdf
Unraveling Multimodality with Large Language Models.pdf
 
My INSURER PTE LTD - Insurtech Innovation Award 2024
My INSURER PTE LTD - Insurtech Innovation Award 2024My INSURER PTE LTD - Insurtech Innovation Award 2024
My INSURER PTE LTD - Insurtech Innovation Award 2024
 
Integration and Automation in Practice: CI/CD in Mule Integration and Automat...
Integration and Automation in Practice: CI/CD in Mule Integration and Automat...Integration and Automation in Practice: CI/CD in Mule Integration and Automat...
Integration and Automation in Practice: CI/CD in Mule Integration and Automat...
 
New from BookNet Canada for 2024: BNC CataList - Tech Forum 2024
New from BookNet Canada for 2024: BNC CataList - Tech Forum 2024New from BookNet Canada for 2024: BNC CataList - Tech Forum 2024
New from BookNet Canada for 2024: BNC CataList - Tech Forum 2024
 
DMCC Future of Trade Web3 - Special Edition
DMCC Future of Trade Web3 - Special EditionDMCC Future of Trade Web3 - Special Edition
DMCC Future of Trade Web3 - Special Edition
 
Designing IA for AI - Information Architecture Conference 2024
Designing IA for AI - Information Architecture Conference 2024Designing IA for AI - Information Architecture Conference 2024
Designing IA for AI - Information Architecture Conference 2024
 
Story boards and shot lists for my a level piece
Story boards and shot lists for my a level pieceStory boards and shot lists for my a level piece
Story boards and shot lists for my a level piece
 
DevEX - reference for building teams, processes, and platforms
DevEX - reference for building teams, processes, and platformsDevEX - reference for building teams, processes, and platforms
DevEX - reference for building teams, processes, and platforms
 
Vertex AI Gemini Prompt Engineering Tips
Vertex AI Gemini Prompt Engineering TipsVertex AI Gemini Prompt Engineering Tips
Vertex AI Gemini Prompt Engineering Tips
 

Software craftsmanship - 4

  • 1. Software Craftsmanship Meeting #4 http://www.flickr.com/photos/renfield/17375998/in/set-388814/
  • 2.
  • 3.
  • 5. Agenda Short Lectures Mentorship/Apprenticeship Structure 101 Effective Code Review Unit Testing Legacy Code Hands On Coding Dojo
  • 6. Mentorship / Apprenticeship Software Craftsmanship as a medieval Craftsmanship evolves Apprenticeship For EffectiveApprenticeship a strong Mentor is required
  • 7. Why Mentorship / Apprenticeship? Area of expertise Architecture & Design Code Reviews & Code Readings Exchange of Information Management Dilemmas
  • 8. Mentorship / Apprenticeship Program At least Four(4) months of commitment By a Mentor By a Mentee At least Two(2) hours offrontal meeting during a week 2*4*4 = 32H
  • 9. How Mentorship / Apprenticeship? Mentors: List of Mentors Community Based Mentors & Mentees Feedback to Community
  • 10. What’s there for me? Community Benefit Personal Benefit Opens Doors What goes around comes around Affects Careers Creates (Business) Opportunities Deeping the knowledge
  • 11. Legacy Code + Unit Tests Slideshare.net Working Effectively with Legacy Code http://www.slideshare.net/nashjain/working-effectively-with-legacy-code-presentation
  • 12. Hands On Coding Dojo http://www.flickr.com/photos/renfield/351556388/in/photostream/
  • 14. Scoring Bowling. The game consists of 10 frames as shown above. In each frame the player has two opportunities to knock down 10 pins. The score for the frame is the total number of pins knocked down, plus bonuses for strikes and spares. A spare is when the player knocks down all 10 pins in two tries. The bonus for that frame is the number of pins knocked down by the next roll. So in frame 3 above, the score is 10 (the total number knocked down) plus a bonus of 5 (the number of pins knocked down on the next roll.) A strike is when the player knocks down all 10 pins on his first try. The bonus for that frame is the value of the next two balls rolled. In the tenth frame a player who rolls a spare or strike is allowed to roll the extra balls to complete the frame. However no more than three balls can be rolled in tenth frame.
  • 15. The Requirements. Write a class named “Game” that has two methods roll(pins : int) is called each time the player rolls a ball. The argument is the number of pins knocked down. score() : int is called only at the very end of the game. It returns the total score for that game.
  • 16. 4th Meeting of the Software Craftsmanship Group http://www.flickr.com/photos/psd/2086641/

Hinweis der Redaktion

  1. Affects career:Choosing>2 year “rule” – Stay longer in a company, but learn in a broader aspect