SlideShare a Scribd company logo
1 of 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.

More Related Content

Similar to 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
 

Similar to 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
 

Recently uploaded

Understanding Discord NSFW Servers A Guide for Responsible Users.pdf
Understanding Discord NSFW Servers A Guide for Responsible Users.pdfUnderstanding Discord NSFW Servers A Guide for Responsible Users.pdf
Understanding Discord NSFW Servers A Guide for Responsible Users.pdfUK Journal
 
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...Drew Madelung
 
08448380779 Call Girls In Greater Kailash - I Women Seeking Men
08448380779 Call Girls In Greater Kailash - I Women Seeking Men08448380779 Call Girls In Greater Kailash - I Women Seeking Men
08448380779 Call Girls In Greater Kailash - I Women Seeking MenDelhi Call girls
 
The 7 Things I Know About Cyber Security After 25 Years | April 2024
The 7 Things I Know About Cyber Security After 25 Years | April 2024The 7 Things I Know About Cyber Security After 25 Years | April 2024
The 7 Things I Know About Cyber Security After 25 Years | April 2024Rafal Los
 
Boost Fertility New Invention Ups Success Rates.pdf
Boost Fertility New Invention Ups Success Rates.pdfBoost Fertility New Invention Ups Success Rates.pdf
Boost Fertility New Invention Ups Success Rates.pdfsudhanshuwaghmare1
 
Advantages of Hiring UIUX Design Service Providers for Your Business
Advantages of Hiring UIUX Design Service Providers for Your BusinessAdvantages of Hiring UIUX Design Service Providers for Your Business
Advantages of Hiring UIUX Design Service Providers for Your BusinessPixlogix Infotech
 
A Call to Action for Generative AI in 2024
A Call to Action for Generative AI in 2024A Call to Action for Generative AI in 2024
A Call to Action for Generative AI in 2024Results
 
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...Igalia
 
How to Troubleshoot Apps for the Modern Connected Worker
How to Troubleshoot Apps for the Modern Connected WorkerHow to Troubleshoot Apps for the Modern Connected Worker
How to Troubleshoot Apps for the Modern Connected WorkerThousandEyes
 
Slack Application Development 101 Slides
Slack Application Development 101 SlidesSlack Application Development 101 Slides
Slack Application Development 101 Slidespraypatel2
 
2024: Domino Containers - The Next Step. News from the Domino Container commu...
2024: Domino Containers - The Next Step. News from the Domino Container commu...2024: Domino Containers - The Next Step. News from the Domino Container commu...
2024: Domino Containers - The Next Step. News from the Domino Container commu...Martijn de Jong
 
Bajaj Allianz Life Insurance Company - Insurer Innovation Award 2024
Bajaj Allianz Life Insurance Company - Insurer Innovation Award 2024Bajaj Allianz Life Insurance Company - Insurer Innovation Award 2024
Bajaj Allianz Life Insurance Company - Insurer Innovation Award 2024The Digital Insurer
 
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 MenDelhi Call girls
 
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 SolutionsEnterprise Knowledge
 
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 Processorsdebabhi2
 
Presentation on how to chat with PDF using ChatGPT code interpreter
Presentation on how to chat with PDF using ChatGPT code interpreterPresentation on how to chat with PDF using ChatGPT code interpreter
Presentation on how to chat with PDF using ChatGPT code interpreternaman860154
 
Artificial Intelligence: Facts and Myths
Artificial Intelligence: Facts and MythsArtificial Intelligence: Facts and Myths
Artificial Intelligence: Facts and MythsJoaquim Jorge
 
🐬 The future of MySQL is Postgres 🐘
🐬  The future of MySQL is Postgres   🐘🐬  The future of MySQL is Postgres   🐘
🐬 The future of MySQL is Postgres 🐘RTylerCroy
 
The Codex of Business Writing Software for Real-World Solutions 2.pptx
The Codex of Business Writing Software for Real-World Solutions 2.pptxThe Codex of Business Writing Software for Real-World Solutions 2.pptx
The Codex of Business Writing Software for Real-World Solutions 2.pptxMalak Abu Hammad
 
Breaking the Kubernetes Kill Chain: Host Path Mount
Breaking the Kubernetes Kill Chain: Host Path MountBreaking the Kubernetes Kill Chain: Host Path Mount
Breaking the Kubernetes Kill Chain: Host Path MountPuma Security, LLC
 

Recently uploaded (20)

Understanding Discord NSFW Servers A Guide for Responsible Users.pdf
Understanding Discord NSFW Servers A Guide for Responsible Users.pdfUnderstanding Discord NSFW Servers A Guide for Responsible Users.pdf
Understanding Discord NSFW Servers A Guide for Responsible Users.pdf
 
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...
 
08448380779 Call Girls In Greater Kailash - I Women Seeking Men
08448380779 Call Girls In Greater Kailash - I Women Seeking Men08448380779 Call Girls In Greater Kailash - I Women Seeking Men
08448380779 Call Girls In Greater Kailash - I Women Seeking Men
 
The 7 Things I Know About Cyber Security After 25 Years | April 2024
The 7 Things I Know About Cyber Security After 25 Years | April 2024The 7 Things I Know About Cyber Security After 25 Years | April 2024
The 7 Things I Know About Cyber Security After 25 Years | April 2024
 
Boost Fertility New Invention Ups Success Rates.pdf
Boost Fertility New Invention Ups Success Rates.pdfBoost Fertility New Invention Ups Success Rates.pdf
Boost Fertility New Invention Ups Success Rates.pdf
 
Advantages of Hiring UIUX Design Service Providers for Your Business
Advantages of Hiring UIUX Design Service Providers for Your BusinessAdvantages of Hiring UIUX Design Service Providers for Your Business
Advantages of Hiring UIUX Design Service Providers for Your Business
 
A Call to Action for Generative AI in 2024
A Call to Action for Generative AI in 2024A Call to Action for Generative AI in 2024
A Call to Action for Generative AI in 2024
 
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...
 
How to Troubleshoot Apps for the Modern Connected Worker
How to Troubleshoot Apps for the Modern Connected WorkerHow to Troubleshoot Apps for the Modern Connected Worker
How to Troubleshoot Apps for the Modern Connected Worker
 
Slack Application Development 101 Slides
Slack Application Development 101 SlidesSlack Application Development 101 Slides
Slack Application Development 101 Slides
 
2024: Domino Containers - The Next Step. News from the Domino Container commu...
2024: Domino Containers - The Next Step. News from the Domino Container commu...2024: Domino Containers - The Next Step. News from the Domino Container commu...
2024: Domino Containers - The Next Step. News from the Domino Container commu...
 
Bajaj Allianz Life Insurance Company - Insurer Innovation Award 2024
Bajaj Allianz Life Insurance Company - Insurer Innovation Award 2024Bajaj Allianz Life Insurance Company - Insurer Innovation Award 2024
Bajaj Allianz Life Insurance Company - Insurer Innovation Award 2024
 
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
 
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
 
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
 
Presentation on how to chat with PDF using ChatGPT code interpreter
Presentation on how to chat with PDF using ChatGPT code interpreterPresentation on how to chat with PDF using ChatGPT code interpreter
Presentation on how to chat with PDF using ChatGPT code interpreter
 
Artificial Intelligence: Facts and Myths
Artificial Intelligence: Facts and MythsArtificial Intelligence: Facts and Myths
Artificial Intelligence: Facts and Myths
 
🐬 The future of MySQL is Postgres 🐘
🐬  The future of MySQL is Postgres   🐘🐬  The future of MySQL is Postgres   🐘
🐬 The future of MySQL is Postgres 🐘
 
The Codex of Business Writing Software for Real-World Solutions 2.pptx
The Codex of Business Writing Software for Real-World Solutions 2.pptxThe Codex of Business Writing Software for Real-World Solutions 2.pptx
The Codex of Business Writing Software for Real-World Solutions 2.pptx
 
Breaking the Kubernetes Kill Chain: Host Path Mount
Breaking the Kubernetes Kill Chain: Host Path MountBreaking the Kubernetes Kill Chain: Host Path Mount
Breaking the Kubernetes Kill Chain: Host Path Mount
 

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/

Editor's Notes

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