SlideShare a Scribd company logo
Experience Agile Programming
Š™Š¾Ń…Š°Š½Š½ŠµŃ Š‘Ń€Š¾Š“Š²Š°Š»Š»        Featuring:
Š”тŠµŃ€Šøя ŠŠ¾Ń€Š²ŠµŠ³Šøя          Boris Staal
Experience Agile
  Programming
              Software People 2012, Moscow
     Š™Š¾Ń…Š°Š½Š½ŠµŃ Š‘Ń€Š¾Š“Š²Š°Š»Š», Just-a-programmer
                          Š”тŠµŃ€Šøя ŠŠ¾Ń€Š²ŠµŠ³Šøя

                             @jhannes
Goal
         ā€¢ To have fun now!
ā€¢ For you to have fun now!
 ā€¢ For you to have fun later
               (stretch goal)
Agenda
                  ā€¢ Description
ā€¢Demonstration with Boris Staal
                  ā€¢ Discussion
              ā€¢ Tips and tricks
Please:
 ā€¢ Talk about what you see to the person
                    next to you (whisper)
ā€¢Tweet to @jhannes and @_inossidabile
                   in English or Russian
Description
Kata: Minesweeper
Given:
var minefield = new Minefield([
              "....",
              ".*..",
              ".*.*",
              "...*ā€œ ])
What do watch for
                  ā€¢ How we interact
ā€¢ How we progress through the code
                   ā€¢ How we design
         ā€¢ How we use the language
Demonstration
 (Featuring Boris Staal)
What did you see?
What did you see?
ā€¢ How often did we switch ā€driverā€?
                ā€¢ Effects of pairing?
    ā€¢ What did the ā€non-driverā€ do?
What did you see?
     ā€¢ Was the step size right?
      ā€¢ What was the first test?
ā€¢ How did we decide next test?
     ā€¢ What was the final test?
What did you see?
                 ā€¢ Language tricks?
ā€¢ Did we refactor the right amount?
      ā€¢ How long was the code red?
          ā€¢ Strengths in final design
        ā€¢Weaknesses in final design
Why become better at
      programming?
Seriously. Why?
Only 13.37% of effort
Getting better quality
Getting better quality
             Correctness
           Maintainability
But more importantly!
Think better
Think better
Raise your level of abstraction
What to practice
Test the contract
Test the contract
                 API
         Not behavior
Test from outside-in
Practice pair
programming
Ping pong
Failing test

               Write code


               Failing test

Write code


Failing test
Failing test

                            Write code
                      Refactor code
                        and tests
                            Failing test
Write code
      Refactor code
        and tests
Failing test
Johannes               Dmytro




Dmitro                                   Sergey




                    Volodymyr
Johannes               Boris




Dmitro                                  Sergey




                    Volodymyr
Johannes               Boris




Dmitro                                  Sergey




                    Volodymyr
All-green refactoring
All-green refactoring
  Reduce the time of uncertainty
How to practice
Practice
Practice at work
  Practice katas
Practice in dojos
Moscow Coding
        Dojo?
Moscow Coding Dojo
       (tweet @jhannes)
Conclusion
Conclusion
 Free your mind
Free your mind
    Practice our art
Thank you
  johannes.brodwall@steria.no

  http://johannesbrodwall.com

      http://twitter.com/jhannes
   (Please tweet in Cyrillic with
              english-like words)

More Related Content

Similar to Experience Agile Programming

Experience Agile Programming - Kiev
Experience Agile Programming - KievExperience Agile Programming - Kiev
Experience Agile Programming - Kiev
Johannes Brodwall
Ā 
WeActuallyBuildStuff - Extreme Programming Live
WeActuallyBuildStuff - Extreme Programming LiveWeActuallyBuildStuff - Extreme Programming Live
WeActuallyBuildStuff - Extreme Programming Live
Johannes Brodwall
Ā 
2013 09-11 java zone - extreme programming live
2013 09-11 java zone - extreme programming live2013 09-11 java zone - extreme programming live
2013 09-11 java zone - extreme programming live
Johannes Brodwall
Ā 
Coding Dojo: Fun with Tic-Tac-Toe (2014)
Coding Dojo: Fun with Tic-Tac-Toe (2014)Coding Dojo: Fun with Tic-Tac-Toe (2014)
Coding Dojo: Fun with Tic-Tac-Toe (2014)
Peter Kofler
Ā 
Day1 - TDD (Lecture SS 2015)
Day1 - TDD (Lecture SS 2015)Day1 - TDD (Lecture SS 2015)
Day1 - TDD (Lecture SS 2015)
wolframkriesing
Ā 
Coding Dojo: Naming with Dices (2021)
Coding Dojo: Naming with Dices (2021)Coding Dojo: Naming with Dices (2021)
Coding Dojo: Naming with Dices (2021)
Peter Kofler
Ā 
Test Driven Development - For Girl Geeks Night Sydney
Test Driven Development - For Girl Geeks Night SydneyTest Driven Development - For Girl Geeks Night Sydney
Test Driven Development - For Girl Geeks Night Sydney
Jo Cranford
Ā 
Coding Dojo: Tic-Tac-Toe (2014)
Coding Dojo: Tic-Tac-Toe (2014)Coding Dojo: Tic-Tac-Toe (2014)
Coding Dojo: Tic-Tac-Toe (2014)
Peter Kofler
Ā 
Brutal Coding Constraints (ITAKE 2017)
Brutal Coding Constraints (ITAKE 2017)Brutal Coding Constraints (ITAKE 2017)
Brutal Coding Constraints (ITAKE 2017)
Peter Kofler
Ā 
Coding Introductory Lesson Upper Elementary
Coding Introductory Lesson Upper ElementaryCoding Introductory Lesson Upper Elementary
Coding Introductory Lesson Upper Elementary
Brittany Pike
Ā 
Pair Programming (2014)
Pair Programming (2014)Pair Programming (2014)
Pair Programming (2014)
Peter Kofler
Ā 
Serendipity by Design - IxD S. America 13
Serendipity by Design - IxD S. America 13Serendipity by Design - IxD S. America 13
Serendipity by Design - IxD S. America 13
Dave Malouf
Ā 
The Shitposting AI With Thomas Endres & Jonas Mayer | Current 2022
The Shitposting AI With Thomas Endres & Jonas Mayer | Current 2022The Shitposting AI With Thomas Endres & Jonas Mayer | Current 2022
The Shitposting AI With Thomas Endres & Jonas Mayer | Current 2022
HostedbyConfluent
Ā 
Refactoring the Tennis Kata v2 (2016)
Refactoring the Tennis Kata v2 (2016)Refactoring the Tennis Kata v2 (2016)
Refactoring the Tennis Kata v2 (2016)
Peter Kofler
Ā 
Getting Comfortable with BDD
Getting Comfortable with BDDGetting Comfortable with BDD
Getting Comfortable with BDD
Alex Sharp
Ā 
Pair Programming (2015)
Pair Programming (2015)Pair Programming (2015)
Pair Programming (2015)
Peter Kofler
Ā 
Deliberate Practice (2014)
Deliberate Practice (2014)Deliberate Practice (2014)
Deliberate Practice (2014)
Peter Kofler
Ā 
Python Coding Dojo - 2014-03-19
Python Coding Dojo - 2014-03-19Python Coding Dojo - 2014-03-19
Python Coding Dojo - 2014-03-19
aschlapsi
Ā 
Coding Dojo: Baby Steps (2014)
Coding Dojo: Baby Steps (2014)Coding Dojo: Baby Steps (2014)
Coding Dojo: Baby Steps (2014)
Peter Kofler
Ā 
The London Python Code Dojo - An Education in Developer Education
The London Python Code Dojo - An Education in Developer EducationThe London Python Code Dojo - An Education in Developer Education
The London Python Code Dojo - An Education in Developer Education
Nicholas Tollervey
Ā 

Similar to Experience Agile Programming (20)

Experience Agile Programming - Kiev
Experience Agile Programming - KievExperience Agile Programming - Kiev
Experience Agile Programming - Kiev
Ā 
WeActuallyBuildStuff - Extreme Programming Live
WeActuallyBuildStuff - Extreme Programming LiveWeActuallyBuildStuff - Extreme Programming Live
WeActuallyBuildStuff - Extreme Programming Live
Ā 
2013 09-11 java zone - extreme programming live
2013 09-11 java zone - extreme programming live2013 09-11 java zone - extreme programming live
2013 09-11 java zone - extreme programming live
Ā 
Coding Dojo: Fun with Tic-Tac-Toe (2014)
Coding Dojo: Fun with Tic-Tac-Toe (2014)Coding Dojo: Fun with Tic-Tac-Toe (2014)
Coding Dojo: Fun with Tic-Tac-Toe (2014)
Ā 
Day1 - TDD (Lecture SS 2015)
Day1 - TDD (Lecture SS 2015)Day1 - TDD (Lecture SS 2015)
Day1 - TDD (Lecture SS 2015)
Ā 
Coding Dojo: Naming with Dices (2021)
Coding Dojo: Naming with Dices (2021)Coding Dojo: Naming with Dices (2021)
Coding Dojo: Naming with Dices (2021)
Ā 
Test Driven Development - For Girl Geeks Night Sydney
Test Driven Development - For Girl Geeks Night SydneyTest Driven Development - For Girl Geeks Night Sydney
Test Driven Development - For Girl Geeks Night Sydney
Ā 
Coding Dojo: Tic-Tac-Toe (2014)
Coding Dojo: Tic-Tac-Toe (2014)Coding Dojo: Tic-Tac-Toe (2014)
Coding Dojo: Tic-Tac-Toe (2014)
Ā 
Brutal Coding Constraints (ITAKE 2017)
Brutal Coding Constraints (ITAKE 2017)Brutal Coding Constraints (ITAKE 2017)
Brutal Coding Constraints (ITAKE 2017)
Ā 
Coding Introductory Lesson Upper Elementary
Coding Introductory Lesson Upper ElementaryCoding Introductory Lesson Upper Elementary
Coding Introductory Lesson Upper Elementary
Ā 
Pair Programming (2014)
Pair Programming (2014)Pair Programming (2014)
Pair Programming (2014)
Ā 
Serendipity by Design - IxD S. America 13
Serendipity by Design - IxD S. America 13Serendipity by Design - IxD S. America 13
Serendipity by Design - IxD S. America 13
Ā 
The Shitposting AI With Thomas Endres & Jonas Mayer | Current 2022
The Shitposting AI With Thomas Endres & Jonas Mayer | Current 2022The Shitposting AI With Thomas Endres & Jonas Mayer | Current 2022
The Shitposting AI With Thomas Endres & Jonas Mayer | Current 2022
Ā 
Refactoring the Tennis Kata v2 (2016)
Refactoring the Tennis Kata v2 (2016)Refactoring the Tennis Kata v2 (2016)
Refactoring the Tennis Kata v2 (2016)
Ā 
Getting Comfortable with BDD
Getting Comfortable with BDDGetting Comfortable with BDD
Getting Comfortable with BDD
Ā 
Pair Programming (2015)
Pair Programming (2015)Pair Programming (2015)
Pair Programming (2015)
Ā 
Deliberate Practice (2014)
Deliberate Practice (2014)Deliberate Practice (2014)
Deliberate Practice (2014)
Ā 
Python Coding Dojo - 2014-03-19
Python Coding Dojo - 2014-03-19Python Coding Dojo - 2014-03-19
Python Coding Dojo - 2014-03-19
Ā 
Coding Dojo: Baby Steps (2014)
Coding Dojo: Baby Steps (2014)Coding Dojo: Baby Steps (2014)
Coding Dojo: Baby Steps (2014)
Ā 
The London Python Code Dojo - An Education in Developer Education
The London Python Code Dojo - An Education in Developer EducationThe London Python Code Dojo - An Education in Developer Education
The London Python Code Dojo - An Education in Developer Education
Ā 

More from Johannes Brodwall

Build Your Stuff with Privacy by Design
Build Your Stuff with Privacy by DesignBuild Your Stuff with Privacy by Design
Build Your Stuff with Privacy by Design
Johannes Brodwall
Ā 
The new new mobile web
The new new mobile webThe new new mobile web
The new new mobile web
Johannes Brodwall
Ā 
Remote Pair Programming (Agile India)
Remote Pair Programming (Agile India)Remote Pair Programming (Agile India)
Remote Pair Programming (Agile India)
Johannes Brodwall
Ā 
Getting your project off the ground (BuildStuffLt)
Getting your project off the ground (BuildStuffLt)Getting your project off the ground (BuildStuffLt)
Getting your project off the ground (BuildStuffLt)
Johannes Brodwall
Ā 
Remote pair programming (BuildStuffLt)
Remote pair programming (BuildStuffLt)Remote pair programming (BuildStuffLt)
Remote pair programming (BuildStuffLt)
Johannes Brodwall
Ā 
DevDay.lk - Bare Knuckle Web Development
DevDay.lk - Bare Knuckle Web DevelopmentDevDay.lk - Bare Knuckle Web Development
DevDay.lk - Bare Knuckle Web Development
Johannes Brodwall
Ā 
Extreme Programming Live - JavaZone
Extreme Programming Live - JavaZoneExtreme Programming Live - JavaZone
Extreme Programming Live - JavaZone
Johannes Brodwall
Ā 
2013 08-07 agile 2013 - remote pair programming
2013 08-07 agile 2013 - remote pair programming2013 08-07 agile 2013 - remote pair programming
2013 08-07 agile 2013 - remote pair programming
Johannes Brodwall
Ā 
Agile Architecture in Odessa
Agile Architecture in OdessaAgile Architecture in Odessa
Agile Architecture in Odessa
Johannes Brodwall
Ā 
Bare-knuckle web development
Bare-knuckle web developmentBare-knuckle web development
Bare-knuckle web development
Johannes Brodwall
Ā 
Agile Prague Coding Dojo
Agile Prague Coding DojoAgile Prague Coding Dojo
Agile Prague Coding Dojo
Johannes Brodwall
Ā 
Agile Contracts
Agile ContractsAgile Contracts
Agile Contracts
Johannes Brodwall
Ā 
Smidig ansvarsprosjekt
Smidig ansvarsprosjektSmidig ansvarsprosjekt
Smidig ansvarsprosjekt
Johannes Brodwall
Ā 
2011 09-17 tampere - the practicing programmer
2011 09-17 tampere - the practicing programmer2011 09-17 tampere - the practicing programmer
2011 09-17 tampere - the practicing programmer
Johannes Brodwall
Ā 

More from Johannes Brodwall (14)

Build Your Stuff with Privacy by Design
Build Your Stuff with Privacy by DesignBuild Your Stuff with Privacy by Design
Build Your Stuff with Privacy by Design
Ā 
The new new mobile web
The new new mobile webThe new new mobile web
The new new mobile web
Ā 
Remote Pair Programming (Agile India)
Remote Pair Programming (Agile India)Remote Pair Programming (Agile India)
Remote Pair Programming (Agile India)
Ā 
Getting your project off the ground (BuildStuffLt)
Getting your project off the ground (BuildStuffLt)Getting your project off the ground (BuildStuffLt)
Getting your project off the ground (BuildStuffLt)
Ā 
Remote pair programming (BuildStuffLt)
Remote pair programming (BuildStuffLt)Remote pair programming (BuildStuffLt)
Remote pair programming (BuildStuffLt)
Ā 
DevDay.lk - Bare Knuckle Web Development
DevDay.lk - Bare Knuckle Web DevelopmentDevDay.lk - Bare Knuckle Web Development
DevDay.lk - Bare Knuckle Web Development
Ā 
Extreme Programming Live - JavaZone
Extreme Programming Live - JavaZoneExtreme Programming Live - JavaZone
Extreme Programming Live - JavaZone
Ā 
2013 08-07 agile 2013 - remote pair programming
2013 08-07 agile 2013 - remote pair programming2013 08-07 agile 2013 - remote pair programming
2013 08-07 agile 2013 - remote pair programming
Ā 
Agile Architecture in Odessa
Agile Architecture in OdessaAgile Architecture in Odessa
Agile Architecture in Odessa
Ā 
Bare-knuckle web development
Bare-knuckle web developmentBare-knuckle web development
Bare-knuckle web development
Ā 
Agile Prague Coding Dojo
Agile Prague Coding DojoAgile Prague Coding Dojo
Agile Prague Coding Dojo
Ā 
Agile Contracts
Agile ContractsAgile Contracts
Agile Contracts
Ā 
Smidig ansvarsprosjekt
Smidig ansvarsprosjektSmidig ansvarsprosjekt
Smidig ansvarsprosjekt
Ā 
2011 09-17 tampere - the practicing programmer
2011 09-17 tampere - the practicing programmer2011 09-17 tampere - the practicing programmer
2011 09-17 tampere - the practicing programmer
Ā 

Recently uploaded

How to Interpret Trends in the Kalyan Rajdhani Mix Chart.pdf
How to Interpret Trends in the Kalyan Rajdhani Mix Chart.pdfHow to Interpret Trends in the Kalyan Rajdhani Mix Chart.pdf
How to Interpret Trends in the Kalyan Rajdhani Mix Chart.pdf
Chart Kalyan
Ā 
AI 101: An Introduction to the Basics and Impact of Artificial Intelligence
AI 101: An Introduction to the Basics and Impact of Artificial IntelligenceAI 101: An Introduction to the Basics and Impact of Artificial Intelligence
AI 101: An Introduction to the Basics and Impact of Artificial Intelligence
IndexBug
Ā 
Main news related to the CCS TSI 2023 (2023/1695)
Main news related to the CCS TSI 2023 (2023/1695)Main news related to the CCS TSI 2023 (2023/1695)
Main news related to the CCS TSI 2023 (2023/1695)
Jakub Marek
Ā 
Choosing The Best AWS Service For Your Website + API.pptx
Choosing The Best AWS Service For Your Website + API.pptxChoosing The Best AWS Service For Your Website + API.pptx
Choosing The Best AWS Service For Your Website + API.pptx
Brandon Minnick, MBA
Ā 
Deep Dive: AI-Powered Marketing to Get More Leads and Customers with HyperGro...
Deep Dive: AI-Powered Marketing to Get More Leads and Customers with HyperGro...Deep Dive: AI-Powered Marketing to Get More Leads and Customers with HyperGro...
Deep Dive: AI-Powered Marketing to Get More Leads and Customers with HyperGro...
saastr
Ā 
Nordic Marketo Engage User Group_June 13_ 2024.pptx
Nordic Marketo Engage User Group_June 13_ 2024.pptxNordic Marketo Engage User Group_June 13_ 2024.pptx
Nordic Marketo Engage User Group_June 13_ 2024.pptx
MichaelKnudsen27
Ā 
ā€œBuilding and Scaling AI Applications with the Nx AI Manager,ā€ a Presentation...
ā€œBuilding and Scaling AI Applications with the Nx AI Manager,ā€ a Presentation...ā€œBuilding and Scaling AI Applications with the Nx AI Manager,ā€ a Presentation...
ā€œBuilding and Scaling AI Applications with the Nx AI Manager,ā€ a Presentation...
Edge AI and Vision Alliance
Ā 
WeTestAthens: Postman's AI & Automation Techniques
WeTestAthens: Postman's AI & Automation TechniquesWeTestAthens: Postman's AI & Automation Techniques
WeTestAthens: Postman's AI & Automation Techniques
Postman
Ā 
Programming Foundation Models with DSPy - Meetup Slides
Programming Foundation Models with DSPy - Meetup SlidesProgramming Foundation Models with DSPy - Meetup Slides
Programming Foundation Models with DSPy - Meetup Slides
Zilliz
Ā 
Recommendation System using RAG Architecture
Recommendation System using RAG ArchitectureRecommendation System using RAG Architecture
Recommendation System using RAG Architecture
fredae14
Ā 
OpenID AuthZEN Interop Read Out - Authorization
OpenID AuthZEN Interop Read Out - AuthorizationOpenID AuthZEN Interop Read Out - Authorization
OpenID AuthZEN Interop Read Out - Authorization
David Brossard
Ā 
Energy Efficient Video Encoding for Cloud and Edge Computing Instances
Energy Efficient Video Encoding for Cloud and Edge Computing InstancesEnergy Efficient Video Encoding for Cloud and Edge Computing Instances
Energy Efficient Video Encoding for Cloud and Edge Computing Instances
Alpen-Adria-UniversitƤt
Ā 
Generating privacy-protected synthetic data using Secludy and Milvus
Generating privacy-protected synthetic data using Secludy and MilvusGenerating privacy-protected synthetic data using Secludy and Milvus
Generating privacy-protected synthetic data using Secludy and Milvus
Zilliz
Ā 
Taking AI to the Next Level in Manufacturing.pdf
Taking AI to the Next Level in Manufacturing.pdfTaking AI to the Next Level in Manufacturing.pdf
Taking AI to the Next Level in Manufacturing.pdf
ssuserfac0301
Ā 
Monitoring and Managing Anomaly Detection on OpenShift.pdf
Monitoring and Managing Anomaly Detection on OpenShift.pdfMonitoring and Managing Anomaly Detection on OpenShift.pdf
Monitoring and Managing Anomaly Detection on OpenShift.pdf
Tosin Akinosho
Ā 
Serial Arm Control in Real Time Presentation
Serial Arm Control in Real Time PresentationSerial Arm Control in Real Time Presentation
Serial Arm Control in Real Time Presentation
tolgahangng
Ā 
Driving Business Innovation: Latest Generative AI Advancements & Success Story
Driving Business Innovation: Latest Generative AI Advancements & Success StoryDriving Business Innovation: Latest Generative AI Advancements & Success Story
Driving Business Innovation: Latest Generative AI Advancements & Success Story
Safe Software
Ā 
Skybuffer SAM4U tool for SAP license adoption
Skybuffer SAM4U tool for SAP license adoptionSkybuffer SAM4U tool for SAP license adoption
Skybuffer SAM4U tool for SAP license adoption
Tatiana Kojar
Ā 
Cosa hanno in comune un mattoncino Lego e la backdoor XZ?
Cosa hanno in comune un mattoncino Lego e la backdoor XZ?Cosa hanno in comune un mattoncino Lego e la backdoor XZ?
Cosa hanno in comune un mattoncino Lego e la backdoor XZ?
Speck&Tech
Ā 
20240607 QFM018 Elixir Reading List May 2024
20240607 QFM018 Elixir Reading List May 202420240607 QFM018 Elixir Reading List May 2024
20240607 QFM018 Elixir Reading List May 2024
Matthew Sinclair
Ā 

Recently uploaded (20)

How to Interpret Trends in the Kalyan Rajdhani Mix Chart.pdf
How to Interpret Trends in the Kalyan Rajdhani Mix Chart.pdfHow to Interpret Trends in the Kalyan Rajdhani Mix Chart.pdf
How to Interpret Trends in the Kalyan Rajdhani Mix Chart.pdf
Ā 
AI 101: An Introduction to the Basics and Impact of Artificial Intelligence
AI 101: An Introduction to the Basics and Impact of Artificial IntelligenceAI 101: An Introduction to the Basics and Impact of Artificial Intelligence
AI 101: An Introduction to the Basics and Impact of Artificial Intelligence
Ā 
Main news related to the CCS TSI 2023 (2023/1695)
Main news related to the CCS TSI 2023 (2023/1695)Main news related to the CCS TSI 2023 (2023/1695)
Main news related to the CCS TSI 2023 (2023/1695)
Ā 
Choosing The Best AWS Service For Your Website + API.pptx
Choosing The Best AWS Service For Your Website + API.pptxChoosing The Best AWS Service For Your Website + API.pptx
Choosing The Best AWS Service For Your Website + API.pptx
Ā 
Deep Dive: AI-Powered Marketing to Get More Leads and Customers with HyperGro...
Deep Dive: AI-Powered Marketing to Get More Leads and Customers with HyperGro...Deep Dive: AI-Powered Marketing to Get More Leads and Customers with HyperGro...
Deep Dive: AI-Powered Marketing to Get More Leads and Customers with HyperGro...
Ā 
Nordic Marketo Engage User Group_June 13_ 2024.pptx
Nordic Marketo Engage User Group_June 13_ 2024.pptxNordic Marketo Engage User Group_June 13_ 2024.pptx
Nordic Marketo Engage User Group_June 13_ 2024.pptx
Ā 
ā€œBuilding and Scaling AI Applications with the Nx AI Manager,ā€ a Presentation...
ā€œBuilding and Scaling AI Applications with the Nx AI Manager,ā€ a Presentation...ā€œBuilding and Scaling AI Applications with the Nx AI Manager,ā€ a Presentation...
ā€œBuilding and Scaling AI Applications with the Nx AI Manager,ā€ a Presentation...
Ā 
WeTestAthens: Postman's AI & Automation Techniques
WeTestAthens: Postman's AI & Automation TechniquesWeTestAthens: Postman's AI & Automation Techniques
WeTestAthens: Postman's AI & Automation Techniques
Ā 
Programming Foundation Models with DSPy - Meetup Slides
Programming Foundation Models with DSPy - Meetup SlidesProgramming Foundation Models with DSPy - Meetup Slides
Programming Foundation Models with DSPy - Meetup Slides
Ā 
Recommendation System using RAG Architecture
Recommendation System using RAG ArchitectureRecommendation System using RAG Architecture
Recommendation System using RAG Architecture
Ā 
OpenID AuthZEN Interop Read Out - Authorization
OpenID AuthZEN Interop Read Out - AuthorizationOpenID AuthZEN Interop Read Out - Authorization
OpenID AuthZEN Interop Read Out - Authorization
Ā 
Energy Efficient Video Encoding for Cloud and Edge Computing Instances
Energy Efficient Video Encoding for Cloud and Edge Computing InstancesEnergy Efficient Video Encoding for Cloud and Edge Computing Instances
Energy Efficient Video Encoding for Cloud and Edge Computing Instances
Ā 
Generating privacy-protected synthetic data using Secludy and Milvus
Generating privacy-protected synthetic data using Secludy and MilvusGenerating privacy-protected synthetic data using Secludy and Milvus
Generating privacy-protected synthetic data using Secludy and Milvus
Ā 
Taking AI to the Next Level in Manufacturing.pdf
Taking AI to the Next Level in Manufacturing.pdfTaking AI to the Next Level in Manufacturing.pdf
Taking AI to the Next Level in Manufacturing.pdf
Ā 
Monitoring and Managing Anomaly Detection on OpenShift.pdf
Monitoring and Managing Anomaly Detection on OpenShift.pdfMonitoring and Managing Anomaly Detection on OpenShift.pdf
Monitoring and Managing Anomaly Detection on OpenShift.pdf
Ā 
Serial Arm Control in Real Time Presentation
Serial Arm Control in Real Time PresentationSerial Arm Control in Real Time Presentation
Serial Arm Control in Real Time Presentation
Ā 
Driving Business Innovation: Latest Generative AI Advancements & Success Story
Driving Business Innovation: Latest Generative AI Advancements & Success StoryDriving Business Innovation: Latest Generative AI Advancements & Success Story
Driving Business Innovation: Latest Generative AI Advancements & Success Story
Ā 
Skybuffer SAM4U tool for SAP license adoption
Skybuffer SAM4U tool for SAP license adoptionSkybuffer SAM4U tool for SAP license adoption
Skybuffer SAM4U tool for SAP license adoption
Ā 
Cosa hanno in comune un mattoncino Lego e la backdoor XZ?
Cosa hanno in comune un mattoncino Lego e la backdoor XZ?Cosa hanno in comune un mattoncino Lego e la backdoor XZ?
Cosa hanno in comune un mattoncino Lego e la backdoor XZ?
Ā 
20240607 QFM018 Elixir Reading List May 2024
20240607 QFM018 Elixir Reading List May 202420240607 QFM018 Elixir Reading List May 2024
20240607 QFM018 Elixir Reading List May 2024
Ā 

Experience Agile Programming

Editor's Notes

  1. Note to translator: I willexplainthe game of minesweeper whileshowingthis slide.The game initiallypresents a fieldwheretherearehidden minesWhentheplayerclickson a cell, eitherhe Ā«stepsĀ» on a mine or he reveals thecellIf he Ā«stepson a mineĀ», the game is over, player losesIf he reveals thecell, thecelltellshowmany mines arenext to it
  2. Note to translator: I willexplainthe game of minesweeper whileshowingthis slide.The game initiallypresents a fieldwheretherearehidden minesWhentheplayerclickson a cell, eitherhe Ā«stepsĀ» on a mine or he reveals thecellIf he Ā«stepson a mineĀ», the game is over, player losesIf he reveals thecell, thecelltellshowmany mines arenext to it
  3. Note to translator:Here I willexplaintheworkingofthe program wewillcreate:Given a definitionof a minefieldwith mines as stars and non-mines as periods, the program should output the hints for eachcell (as in theprevious screen shot)Ā«If youā€™re not familiarwith mine sweeper, youcan just ask a project managerĀ»
  4. Note to translator: Here, Iwill ask the English speakingmembersoftheaudience to give feedback onwhattheysaw. I will hand outchocolates to those to answer. ļŠ
  5. Note to translator: If thereā€™s not toomany questions beforethis, I willdemonstratethiscodewith in Eclipse, ratherthan talk about it.
  6. Note to translator: If thereā€™s not toomany questions beforethis, I willdemonstratethiscodewith in Eclipse, ratherthan talk about it.
  7. Note to translator: Here, I willexplainhow pair programmingcanwork in practice:One person writes a failing test and theother person writesthecode to make it pass. Thenthe person whomadethe test pass writesthenext test.In theexamplewithme and Boris, weswitched Ā«driversĀ» (the person at thekeyboard) aboutonce a minute. On real lifeproject, I usuallyexperiencethatweswitch drivers everytenminutes or so.Itā€™s alsoimportant to refactorbetween tests. I like to onlyrefactorwhenthecode is green. This way I knowthatthecodedoesnā€™t stop working. Therearetwoways to thinkaboutthis:Either, ifyoucan, refactorthecode and the tests a little to Ā«getreadyĀ» for thenext testOr, ifyouseethatyoucanā€™t make the test pass, commentout (or @Ignore) the test and refactoron green.
  8. Note to translator:Here I willexplain a Ā«pair programming starĀ».If the team feels it wouldbenefit from more programmers pair programmingwitheachother, youcancreate a Ā«pair programming starĀ».First, writethenamesofeach team member in a circleWhensomeone pair program withsomeoneelse, put a line betweentheirnamesThe resulting Ā«starĀ» can be used to reflectonyour team. Itā€™s not necessarily a bad thingthat Sergey and Dmitro program together a lot, butitā€™sworthnoting
  9. Note to translator: I may show a practical demo here, iftheaudiencewants it
  10. Note to translator: On thefollowing screenshots, therearepictures from Oslo CodingDojo and Kiev CodingDojo. I willexplain (eachbulletpointononeofthefollowing slides):WemeetaboutonceeverymonthWeusuallymeet in a pub and program around a projector (withbeer!)We have also done a Code Retreat, where 24 peoplesetaside a full Saturday to practicecoding. Ā«During theweek, youcode for money. Today, youcode for youĀ»After I gave this talk in Kiev, AlekseySolntsev and othersorganized Kiev codingdojoAnyvolunteers to organize a CodingDojo in Moscow?