SlideShare a Scribd company logo
1 of 88
Download to read offline
Growing And Fostering Craftsmanship
                                                            Cory Foy | Cory Foy, LLC
                                                           @cory_foy | foyc@coryfoy.com

Wednesday, June 2, 2010                                                                   1
L: http://www.flickr.com/photos/cobalt/2712729687/sizes/l/
R: http://www.flickr.com/photos/jeffbelmonte/6406082/sizes/o/
C: http://www.flickr.com/photos/pepe50/3057465486/sizes/l/
Wednesday, June 2, 2010   2
Problem




Wednesday, June 2, 2010                                             3

“IT is a pain in the ass” - Guy next to me on the flight to XP2010
Wednesday, June 2, 2010                    4

How many of us are as happy as this guy?
Source: http://www.infoq.com/articles/Interview-Johnson-Standish-CHAOS




Wednesday, June 2, 2010                                                                            5

How can we be happy? 26% average succeeded rate in software projects. Success is measured
solely by releasing on a specific date
Source: http://www.infoq.com/articles/Interview-Johnson-Standish-CHAOS




Wednesday, June 2, 2010                                                                            6

One year, 1 million dollar project is now a 1.8 million dollar project. And you’ll get it 6
months late. How ‘bout them apples?
Wednesday, June 2, 2010                                                                       7

Release July 10th. Next release planned for June. Pulled everything to one backlog planned
for next release. Ran one 4-week iteration. Initial velocity showed release date August - 3
years later.
Typing Is Not The Bottleneck




Wednesday, June 2, 2010              8
Wednesday, June 2, 2010   9
Wednesday, June 2, 2010   9
“In programming the hard part isn’t
                          solving problems, but deciding what
                                  problems to solve.”

                                                   Paul Graham




Wednesday, June 2, 2010                                          10
Credit: http://www.flickr.com/photos/cdevers/4456481460/sizes/l/


Wednesday, June 2, 2010                                                                     11

There was a time when that was easy. Because the problem was engineering. And hardware.
“...the intellectual bookkeeping challenge...has been replaced
          with the challenge of clearly expressing the design intention to
                   the rest of the team so the system can evolve.”
            - Pete McBreen, Software Craftsmanship: The New Imperative




Wednesday, June 2, 2010                                                      12
Wednesday, June 2, 2010   13
Wednesday, June 2, 2010                                                                      14

This means there is a shift happening in our industry. If typing isn’t the bottleneck, and
hardware isn’t the problem, and the challenge is in expression - what are our weaknesses?
Code Quality




Wednesday, June 2, 2010                  15
Communicating Intent




Wednesday, June 2, 2010                          16

Readability
Collaboration




Wednesday, June 2, 2010                     17

We can’t be the stereotypical IT people
Wednesday, June 2, 2010                   18

We can’t be the stereotypical IT people
Sharing Knowledge




Wednesday, June 2, 2010                       19
Breaking Out Features




Wednesday, June 2, 2010                           20

Minimal Marketable Feature. Small Stories.
Responsibility




Wednesday, June 2, 2010                      21

Regression Test Assurance
How can Craftsmanship Help?




Wednesday, June 2, 2010                 22
Fix the problem at its source.




Wednesday, June 2, 2010                         23

And what’s the source?
Wednesday, June 2, 2010   24

We’ve let
Us




Wednesday, June 2, 2010        24

We’ve let
Fear




Wednesday, June 2, 2010          25

stagnate us.
“People can be trained not to innovate, not to explore, and not
           to reach. Many organizations value conformance above all.
         They cut off the top and the bottom of the bell curve -- they like
          interchangeable cogs. You can achieve predictability through
          mediocrity in those places, and the best answer is to decide to
                            either go along or get out.”


                                     Fear




Wednesday, June 2, 2010                                                       25

stagnate us.
Fear
                          “Since my endeavors are not supported
                          by my organization, I'm limited to TDD,
                             and have no way of implementing
                          acceptance tests without getting sacked.
                          I'm pushing my luck to do TDD at all.”


Wednesday, June 2, 2010                                              25

stagnate us.
Fear
      “When the manager saw our
       estimate for the project, he
       gave us a deadline without
      considering our suggestions.
      He is not a programmer and
        his reason was a political
                deadline.”

Wednesday, June 2, 2010                  25

stagnate us.
“In my company, no code changes
                          can happen without the approval of
                             the Board of Governors for the
                                   product involved”


                                       Fear




Wednesday, June 2, 2010                                        25

stagnate us.
Source: http://www.twistedsister.com/gallery.php




Wednesday, June 2, 2010                                                          26

We have to say that we aren’t going to take it
Unacceptable




Wednesday, June 2, 2010                                                                       27

We have to declare that it is unacceptable for us to be put in situations which destroy the one
thing which drives each of us here
Passion




Wednesday, June 2, 2010                      28

And it was this passion which led to a
Manifesto




Wednesday, June 2, 2010                                                              29

Agile Manifesto outlining four key values for anyone adopting agile methodologies.
Individuals and Interactions




Wednesday, June 2, 2010                30

over processes and tools
Working Software




Wednesday, June 2, 2010                      31

over comprehensive documentation
Customer Collaboration




Wednesday, June 2, 2010                     32

over contract negotiation
Responding to Change




Wednesday, June 2, 2010                        33

over following a plan. And everything was...
Wednesday, June 2, 2010                      34

flowers, right?! Right?! No! It was all....
Wednesday, June 2, 2010                                                                  35

weird and distorted. Project Management seemed to be doing better, but developers were
still pumping out garbage.
Source:http://gallery.me.com/pew#100134/IMG_0155&bgcolor=black




Wednesday, June 2, 2010                                                                           36

But then this guy lulled us all in during dinner with 1500 of our closest friends at Agile 2008
and said the words that have stuck with me ever since.
Craftsmanship
                               over
                               Crap


Wednesday, June 2, 2010                    37

No wait. That’s not it. Let’s try again.
Wednesday, June 2, 2010                                                                 38

Ah, much better! This statement led to a manifesto focused at the software developers
CRAFTSMANSHIP
                              OVER
                              CRAP!


Wednesday, June 2, 2010                                                                 38

Ah, much better! This statement led to a manifesto focused at the software developers
Wednesday, June 2, 2010                                                                   39

But the manifesto and the ideals behind it have an unspoken definition. Craftsmanship is
about....
Responsibility




Wednesday, June 2, 2010                    40

Whose Responsibility?
Wednesday, June 2, 2010                                                                         41

YOUR RESPONSIBILITY! (And look! I found a hip bear!). Given that - whose responsibility is it
for learning new technologies and techniques?
Yours!




Wednesday, June 2, 2010                                                         42

Whose Responsibility is it for growing in your profession? (All together now)
Yours!




Wednesday, June 2, 2010                           43

Whose Responsibility is it for teaching others?
Yours!




Wednesday, June 2, 2010                                                    44

Whose Responsibility is it for making what you build the best it can be?
Yours!




Wednesday, June 2, 2010                               45

Indeed. (Next slide: Craftsmanship==Responsibility)
Craftsmanship ==
                           Responsibility



Wednesday, June 2, 2010                                                                   46

So, if craftsmanship is responsibility, whose job is it to foster craftsmanship in your
organization?
Yours.




Wednesday, June 2, 2010            47
Wednesday, June 2, 2010                                                                       48

Come on, Cory. How the heck are we supposed to be responsible for all that? Well, I’ll tell
you. By showing you the guide to...
Wednesday, June 2, 2010                                                                       48

Come on, Cory. How the heck are we supposed to be responsible for all that? Well, I’ll tell
you. By showing you the guide to...
Fostering Craftsmanship in
               your Organization



Wednesday, June 2, 2010                 49
a.k.a.




Wednesday, June 2, 2010            50
Cory’s 5-step Plan to World
                  Domination



Wednesday, June 2, 2010                 51
Cory’s 5-step Plan to
                 Fostering Craftsmanship



Wednesday, June 2, 2010                    52
Step 1:
                          Start with you



Wednesday, June 2, 2010                    53

Katas. Learn them. Do them. Love them.
Wednesday, June 2, 2010                  54

Katas. Learn them. Do them. Love them.
Step 2:
                          Involve your team



Wednesday, June 2, 2010                                55

Brown Bags. Show people what you’ve been working on.
Step 3:
                          Get people talking



Wednesday, June 2, 2010                                                                56

Book Clubs. Doesn’t matter the topic - just get people meeting and talking. Do Food.
Wednesday, June 2, 2010   57

Picture from Hashrocket
Step 4:
                          Get people learning
                            (and teaching)


Wednesday, June 2, 2010                                                            58

Apprenticeships. Ask people to mentor you, and offer the same to those with you.
Wednesday, June 2, 2010   59

Dave and Adewale’s Book
Step 5:
                           Make it Clear



Wednesday, June 2, 2010                                                         60

Profit! Or formalize the program. Create a training path for people to follow.
This is Jason Gorman’s. Don’t blame me.
                                   http://qconlondon.com/london-2010/file?path=%2Fqcon-london-2010%2Fslides
              %2FJasonGorman_BeyondMastersApprenticesAScalablePeerLedModelForBuildingGoodHabitsInLargeDiverseDevelopmentTeams.pdf




Wednesday, June 2, 2010                                                                                                             61
Reference Application




Wednesday, June 2, 2010                                                                        62

In fact, because I’ve only gotten 4 hours of sleep in the past 70 hours, I found a way to do all
five steps using only Katas. I call this my “reference application”. To understand it we have to
know about
Learning Models




Wednesday, June 2, 2010                                                                  63

Thankfully, not every one. Just a specific one. It’s called the Dreyfus Model of Skills
Acquisition
Dreyfus Model of Skills Acquisition
                                Level                    Description

                                               Needs to be told exactly what to do.
                               Novice              No context to work from

                                               Has more context, but needs
                          Advanced Beginner
                                                    rigid guidelines
                                              Questions reasoning behind the tasks
                             Competent             and can see consequences

                                                Still relies on rules, but can
                              Proficient
                                                separate what’s important
                                                Works mainly on intuition,
                               Expert
                                               except when problems occur

Wednesday, June 2, 2010                                                                     64

Using this model, we can create a path for team members to go from Novice to Expert using
Katas. How?
Level 1: Novice




Wednesday, June 2, 2010                                                                         65

Novices don’t have the context to make judgement calls. So for novices, we can provide the
outline of a Kata with acceptance tests pre-filled out. This gives them context and structure.
Show Corey’s String Calculator
Level 2: Advanced Beginner




Wednesday, June 2, 2010                                                                      66

Advanced Beginners still need structure, so at level 2, they would still use pre-populated
templates. However, they would only be partially filled out. For example, in the String
Calculator, Roy defined additional requirements which aren’t in the tests
Level 3: Competent




Wednesday, June 2, 2010                                                                     67

As developers reach competency, they need less context. At this stage, there still may be
some structure predefined in the katas, but certainly no tests are filled in.
Level 4: Proficient




Wednesday, June 2, 2010                                                                       68

At proficiency, developers should be able to tackle a Kata from scratch, including set-up of
any necessary tools (RSpec, Cucumber, FitNesse, NUnit).
Level 5: Expert




Wednesday, June 2, 2010                                                                      69

Finally, as they reach an expert stage, they should be able to develop their own katas for
contribution back to the team.
But Remember




Wednesday, June 2, 2010                  70
Individuals and Interactions




Wednesday, June 2, 2010                71
over




Wednesday, June 2, 2010          72
Processes and Tools




Wednesday, June 2, 2010                                                                    73

In other words, don’t let the kata structure become a replacement for individuals and
interactions. Part of why programs and methodologies work is the learning that goes into
implementing and customizing it. As it grows, it may stagnate. Don’t do that.
Summary




Wednesday, June 2, 2010             74

So, to summarize
Wednesday, June 2, 2010   75

Don’t let fear
Wednesday, June 2, 2010   76

Stagnate you
Wednesday, June 2, 2010         77

and keep you from being happy
Wednesday, June 2, 2010   78

Because only you
Wednesday, June 2, 2010   79

can raise the bar
Wednesday, June 2, 2010                                                                         80

stop valuing crap, and instead deliver real value. And at the end of the day, that’s what our
customers want, our organizations want, and I bet most of us want too.

More Related Content

Similar to Growing and Fostering Software Craftsmanship

“Exploring the Socialnomic Potential of Augmented Reality” #meshed2
“Exploring the Socialnomic Potential of Augmented Reality” #meshed2“Exploring the Socialnomic Potential of Augmented Reality” #meshed2
“Exploring the Socialnomic Potential of Augmented Reality” #meshed2Mark A.M. Kramer
 
How can airlines optimize social media content for maximum conversion?
How can airlines optimize social media content for maximum conversion?How can airlines optimize social media content for maximum conversion?
How can airlines optimize social media content for maximum conversion?SimpliFlying
 
Edgeless Opportunities
Edgeless OpportunitiesEdgeless Opportunities
Edgeless OpportunitiesKeith Lyons
 
A Security Analysis Framework Powered By An Expert System
A Security Analysis Framework Powered By An Expert SystemA Security Analysis Framework Powered By An Expert System
A Security Analysis Framework Powered By An Expert SystemMaher Gamal
 
Notacon 7 - Hacking The Future Weaponizing The Next Generation
Notacon 7 - Hacking The Future Weaponizing The Next GenerationNotacon 7 - Hacking The Future Weaponizing The Next Generation
Notacon 7 - Hacking The Future Weaponizing The Next GenerationJames Arlen
 
Meaning Shapes the Mission: Inside the Social Entrepreneur's Mind
Meaning Shapes the Mission: Inside the Social Entrepreneur's MindMeaning Shapes the Mission: Inside the Social Entrepreneur's Mind
Meaning Shapes the Mission: Inside the Social Entrepreneur's MindCauseShift
 
Social Media for Business: An Introduction
Social Media for Business: An IntroductionSocial Media for Business: An Introduction
Social Media for Business: An IntroductionZuno Design Studios
 
Teach Your Child Nodes Well: Helping The Next Generation Of Web Geeks (And Yo...
Teach Your Child Nodes Well: Helping The Next Generation Of Web Geeks (And Yo...Teach Your Child Nodes Well: Helping The Next Generation Of Web Geeks (And Yo...
Teach Your Child Nodes Well: Helping The Next Generation Of Web Geeks (And Yo...Dylan Wilbanks
 
iCrossing - CIM Financial Services Group Presentation
iCrossing - CIM Financial Services Group PresentationiCrossing - CIM Financial Services Group Presentation
iCrossing - CIM Financial Services Group PresentationAntony Mayfield
 
Maximising value of social media
Maximising value of social mediaMaximising value of social media
Maximising value of social mediaIngrid Koehler
 
Dom Sagolla - Cumbre del Futuro 2010
Dom Sagolla - Cumbre del Futuro 2010Dom Sagolla - Cumbre del Futuro 2010
Dom Sagolla - Cumbre del Futuro 2010La Nación
 
It's a new, visual world
 It's a new, visual world It's a new, visual world
It's a new, visual worldSimon Jones
 
Behavior in Social Network Use
 Behavior in Social Network Use Behavior in Social Network Use
Behavior in Social Network Usenokeydokey
 
Blogging final
Blogging finalBlogging final
Blogging finalhey.milly
 
Best practice guide progress report 02.07
Best practice guide progress report 02.07Best practice guide progress report 02.07
Best practice guide progress report 02.07Andrew Missingham
 
Geoloqi - Non-visual location based augmented reality with SMS and GPS - Ope...
Geoloqi -  Non-visual location based augmented reality with SMS and GPS - Ope...Geoloqi -  Non-visual location based augmented reality with SMS and GPS - Ope...
Geoloqi - Non-visual location based augmented reality with SMS and GPS - Ope...Amber Case
 
Geoloqi: Non-visual augmented reality Open Source Bridge
Geoloqi: Non-visual augmented reality Open Source BridgeGeoloqi: Non-visual augmented reality Open Source Bridge
Geoloqi: Non-visual augmented reality Open Source BridgeAaron Parecki
 

Similar to Growing and Fostering Software Craftsmanship (20)

“Exploring the Socialnomic Potential of Augmented Reality” #meshed2
“Exploring the Socialnomic Potential of Augmented Reality” #meshed2“Exploring the Socialnomic Potential of Augmented Reality” #meshed2
“Exploring the Socialnomic Potential of Augmented Reality” #meshed2
 
How can airlines optimize social media content for maximum conversion?
How can airlines optimize social media content for maximum conversion?How can airlines optimize social media content for maximum conversion?
How can airlines optimize social media content for maximum conversion?
 
Edgeless Opportunities
Edgeless OpportunitiesEdgeless Opportunities
Edgeless Opportunities
 
Velocity2010
Velocity2010Velocity2010
Velocity2010
 
AppStore
AppStoreAppStore
AppStore
 
A Security Analysis Framework Powered By An Expert System
A Security Analysis Framework Powered By An Expert SystemA Security Analysis Framework Powered By An Expert System
A Security Analysis Framework Powered By An Expert System
 
Cities 3.0
Cities 3.0Cities 3.0
Cities 3.0
 
Notacon 7 - Hacking The Future Weaponizing The Next Generation
Notacon 7 - Hacking The Future Weaponizing The Next GenerationNotacon 7 - Hacking The Future Weaponizing The Next Generation
Notacon 7 - Hacking The Future Weaponizing The Next Generation
 
Meaning Shapes the Mission: Inside the Social Entrepreneur's Mind
Meaning Shapes the Mission: Inside the Social Entrepreneur's MindMeaning Shapes the Mission: Inside the Social Entrepreneur's Mind
Meaning Shapes the Mission: Inside the Social Entrepreneur's Mind
 
Social Media for Business: An Introduction
Social Media for Business: An IntroductionSocial Media for Business: An Introduction
Social Media for Business: An Introduction
 
Teach Your Child Nodes Well: Helping The Next Generation Of Web Geeks (And Yo...
Teach Your Child Nodes Well: Helping The Next Generation Of Web Geeks (And Yo...Teach Your Child Nodes Well: Helping The Next Generation Of Web Geeks (And Yo...
Teach Your Child Nodes Well: Helping The Next Generation Of Web Geeks (And Yo...
 
iCrossing - CIM Financial Services Group Presentation
iCrossing - CIM Financial Services Group PresentationiCrossing - CIM Financial Services Group Presentation
iCrossing - CIM Financial Services Group Presentation
 
Maximising value of social media
Maximising value of social mediaMaximising value of social media
Maximising value of social media
 
Dom Sagolla - Cumbre del Futuro 2010
Dom Sagolla - Cumbre del Futuro 2010Dom Sagolla - Cumbre del Futuro 2010
Dom Sagolla - Cumbre del Futuro 2010
 
It's a new, visual world
 It's a new, visual world It's a new, visual world
It's a new, visual world
 
Behavior in Social Network Use
 Behavior in Social Network Use Behavior in Social Network Use
Behavior in Social Network Use
 
Blogging final
Blogging finalBlogging final
Blogging final
 
Best practice guide progress report 02.07
Best practice guide progress report 02.07Best practice guide progress report 02.07
Best practice guide progress report 02.07
 
Geoloqi - Non-visual location based augmented reality with SMS and GPS - Ope...
Geoloqi -  Non-visual location based augmented reality with SMS and GPS - Ope...Geoloqi -  Non-visual location based augmented reality with SMS and GPS - Ope...
Geoloqi - Non-visual location based augmented reality with SMS and GPS - Ope...
 
Geoloqi: Non-visual augmented reality Open Source Bridge
Geoloqi: Non-visual augmented reality Open Source BridgeGeoloqi: Non-visual augmented reality Open Source Bridge
Geoloqi: Non-visual augmented reality Open Source Bridge
 

More from Cory Foy

Defending Commoditization: Mapping Gameplays and Strategies to Stay Ahead in ...
Defending Commoditization: Mapping Gameplays and Strategies to Stay Ahead in ...Defending Commoditization: Mapping Gameplays and Strategies to Stay Ahead in ...
Defending Commoditization: Mapping Gameplays and Strategies to Stay Ahead in ...Cory Foy
 
Stratgic Play - Doing the Right Thing at the Right Time
Stratgic Play - Doing the Right Thing at the Right TimeStratgic Play - Doing the Right Thing at the Right Time
Stratgic Play - Doing the Right Thing at the Right TimeCory Foy
 
Continuous Deployment and Testing Workshop from Better Software West
Continuous Deployment and Testing Workshop from Better Software WestContinuous Deployment and Testing Workshop from Better Software West
Continuous Deployment and Testing Workshop from Better Software WestCory Foy
 
Choosing Between Scrum and Kanban - TriAgile 2015
Choosing Between Scrum and Kanban - TriAgile 2015Choosing Between Scrum and Kanban - TriAgile 2015
Choosing Between Scrum and Kanban - TriAgile 2015Cory Foy
 
Code Katas
Code KatasCode Katas
Code KatasCory Foy
 
Distributed Agility
Distributed AgilityDistributed Agility
Distributed AgilityCory Foy
 
Scaling Agility
Scaling AgilityScaling Agility
Scaling AgilityCory Foy
 
Kanban for DevOps
Kanban for DevOpsKanban for DevOps
Kanban for DevOpsCory Foy
 
Ruby and OO for Beginners
Ruby and OO for BeginnersRuby and OO for Beginners
Ruby and OO for BeginnersCory Foy
 
Agile Roots: The Agile Mindset - Agility Across the Organization
Agile Roots: The Agile Mindset - Agility Across the OrganizationAgile Roots: The Agile Mindset - Agility Across the Organization
Agile Roots: The Agile Mindset - Agility Across the OrganizationCory Foy
 
Triangle.rb - How Secure is Your Rails Site, Anyway?
Triangle.rb - How Secure is Your Rails Site, Anyway?Triangle.rb - How Secure is Your Rails Site, Anyway?
Triangle.rb - How Secure is Your Rails Site, Anyway?Cory Foy
 
Scrum vs Kanban - Implementing Agility at Scale
Scrum vs Kanban - Implementing Agility at ScaleScrum vs Kanban - Implementing Agility at Scale
Scrum vs Kanban - Implementing Agility at ScaleCory Foy
 
SQE Boston - When Code Cries
SQE Boston - When Code CriesSQE Boston - When Code Cries
SQE Boston - When Code CriesCory Foy
 
GOTO Berlin - When Code Cries
GOTO Berlin - When Code CriesGOTO Berlin - When Code Cries
GOTO Berlin - When Code CriesCory Foy
 
Rails as a Pattern Language
Rails as a Pattern LanguageRails as a Pattern Language
Rails as a Pattern LanguageCory Foy
 
Patterns in Rails
Patterns in RailsPatterns in Rails
Patterns in RailsCory Foy
 
Agile Demystified
Agile DemystifiedAgile Demystified
Agile DemystifiedCory Foy
 
When Code Cries
When Code CriesWhen Code Cries
When Code CriesCory Foy
 
Ruby for C# Developers
Ruby for C# DevelopersRuby for C# Developers
Ruby for C# DevelopersCory Foy
 
Getting Unstuck: Working with Legacy Code and Data
Getting Unstuck: Working with Legacy Code and DataGetting Unstuck: Working with Legacy Code and Data
Getting Unstuck: Working with Legacy Code and DataCory Foy
 

More from Cory Foy (20)

Defending Commoditization: Mapping Gameplays and Strategies to Stay Ahead in ...
Defending Commoditization: Mapping Gameplays and Strategies to Stay Ahead in ...Defending Commoditization: Mapping Gameplays and Strategies to Stay Ahead in ...
Defending Commoditization: Mapping Gameplays and Strategies to Stay Ahead in ...
 
Stratgic Play - Doing the Right Thing at the Right Time
Stratgic Play - Doing the Right Thing at the Right TimeStratgic Play - Doing the Right Thing at the Right Time
Stratgic Play - Doing the Right Thing at the Right Time
 
Continuous Deployment and Testing Workshop from Better Software West
Continuous Deployment and Testing Workshop from Better Software WestContinuous Deployment and Testing Workshop from Better Software West
Continuous Deployment and Testing Workshop from Better Software West
 
Choosing Between Scrum and Kanban - TriAgile 2015
Choosing Between Scrum and Kanban - TriAgile 2015Choosing Between Scrum and Kanban - TriAgile 2015
Choosing Between Scrum and Kanban - TriAgile 2015
 
Code Katas
Code KatasCode Katas
Code Katas
 
Distributed Agility
Distributed AgilityDistributed Agility
Distributed Agility
 
Scaling Agility
Scaling AgilityScaling Agility
Scaling Agility
 
Kanban for DevOps
Kanban for DevOpsKanban for DevOps
Kanban for DevOps
 
Ruby and OO for Beginners
Ruby and OO for BeginnersRuby and OO for Beginners
Ruby and OO for Beginners
 
Agile Roots: The Agile Mindset - Agility Across the Organization
Agile Roots: The Agile Mindset - Agility Across the OrganizationAgile Roots: The Agile Mindset - Agility Across the Organization
Agile Roots: The Agile Mindset - Agility Across the Organization
 
Triangle.rb - How Secure is Your Rails Site, Anyway?
Triangle.rb - How Secure is Your Rails Site, Anyway?Triangle.rb - How Secure is Your Rails Site, Anyway?
Triangle.rb - How Secure is Your Rails Site, Anyway?
 
Scrum vs Kanban - Implementing Agility at Scale
Scrum vs Kanban - Implementing Agility at ScaleScrum vs Kanban - Implementing Agility at Scale
Scrum vs Kanban - Implementing Agility at Scale
 
SQE Boston - When Code Cries
SQE Boston - When Code CriesSQE Boston - When Code Cries
SQE Boston - When Code Cries
 
GOTO Berlin - When Code Cries
GOTO Berlin - When Code CriesGOTO Berlin - When Code Cries
GOTO Berlin - When Code Cries
 
Rails as a Pattern Language
Rails as a Pattern LanguageRails as a Pattern Language
Rails as a Pattern Language
 
Patterns in Rails
Patterns in RailsPatterns in Rails
Patterns in Rails
 
Agile Demystified
Agile DemystifiedAgile Demystified
Agile Demystified
 
When Code Cries
When Code CriesWhen Code Cries
When Code Cries
 
Ruby for C# Developers
Ruby for C# DevelopersRuby for C# Developers
Ruby for C# Developers
 
Getting Unstuck: Working with Legacy Code and Data
Getting Unstuck: Working with Legacy Code and DataGetting Unstuck: Working with Legacy Code and Data
Getting Unstuck: Working with Legacy Code and Data
 

Recently uploaded

Moving Beyond Passwords: FIDO Paris Seminar.pdf
Moving Beyond Passwords: FIDO Paris Seminar.pdfMoving Beyond Passwords: FIDO Paris Seminar.pdf
Moving Beyond Passwords: FIDO Paris Seminar.pdfLoriGlavin3
 
Advanced Computer Architecture – An Introduction
Advanced Computer Architecture – An IntroductionAdvanced Computer Architecture – An Introduction
Advanced Computer Architecture – An IntroductionDilum Bandara
 
SIP trunking in Janus @ Kamailio World 2024
SIP trunking in Janus @ Kamailio World 2024SIP trunking in Janus @ Kamailio World 2024
SIP trunking in Janus @ Kamailio World 2024Lorenzo Miniero
 
"ML in Production",Oleksandr Bagan
"ML in Production",Oleksandr Bagan"ML in Production",Oleksandr Bagan
"ML in Production",Oleksandr BaganFwdays
 
New from BookNet Canada for 2024: Loan Stars - Tech Forum 2024
New from BookNet Canada for 2024: Loan Stars - Tech Forum 2024New from BookNet Canada for 2024: Loan Stars - Tech Forum 2024
New from BookNet Canada for 2024: Loan Stars - Tech Forum 2024BookNet Canada
 
"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
 
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
 
Scanning the Internet for External Cloud Exposures via SSL Certs
Scanning the Internet for External Cloud Exposures via SSL CertsScanning the Internet for External Cloud Exposures via SSL Certs
Scanning the Internet for External Cloud Exposures via SSL CertsRizwan Syed
 
TeamStation AI System Report LATAM IT Salaries 2024
TeamStation AI System Report LATAM IT Salaries 2024TeamStation AI System Report LATAM IT Salaries 2024
TeamStation AI System Report LATAM IT Salaries 2024Lonnie McRorey
 
Unleash Your Potential - Namagunga Girls Coding Club
Unleash Your Potential - Namagunga Girls Coding ClubUnleash Your Potential - Namagunga Girls Coding Club
Unleash Your Potential - Namagunga Girls Coding ClubKalema Edgar
 
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
 
How AI, OpenAI, and ChatGPT impact business and software.
How AI, OpenAI, and ChatGPT impact business and software.How AI, OpenAI, and ChatGPT impact business and software.
How AI, OpenAI, and ChatGPT impact business and software.Curtis Poe
 
Digital Identity is Under Attack: FIDO Paris Seminar.pptx
Digital Identity is Under Attack: FIDO Paris Seminar.pptxDigital Identity is Under Attack: FIDO Paris Seminar.pptx
Digital Identity is Under Attack: FIDO Paris Seminar.pptxLoriGlavin3
 
The Fit for Passkeys for Employee and Consumer Sign-ins: FIDO Paris Seminar.pptx
The Fit for Passkeys for Employee and Consumer Sign-ins: FIDO Paris Seminar.pptxThe Fit for Passkeys for Employee and Consumer Sign-ins: FIDO Paris Seminar.pptx
The Fit for Passkeys for Employee and Consumer Sign-ins: FIDO Paris Seminar.pptxLoriGlavin3
 
How to write a Business Continuity Plan
How to write a Business Continuity PlanHow to write a Business Continuity Plan
How to write a Business Continuity PlanDatabarracks
 
The State of Passkeys with FIDO Alliance.pptx
The State of Passkeys with FIDO Alliance.pptxThe State of Passkeys with FIDO Alliance.pptx
The State of Passkeys with FIDO Alliance.pptxLoriGlavin3
 
What's New in Teams Calling, Meetings and Devices March 2024
What's New in Teams Calling, Meetings and Devices March 2024What's New in Teams Calling, Meetings and Devices March 2024
What's New in Teams Calling, Meetings and Devices March 2024Stephanie Beckett
 
SALESFORCE EDUCATION CLOUD | FEXLE SERVICES
SALESFORCE EDUCATION CLOUD | FEXLE SERVICESSALESFORCE EDUCATION CLOUD | FEXLE SERVICES
SALESFORCE EDUCATION CLOUD | FEXLE SERVICESmohitsingh558521
 
Nell’iperspazio con Rocket: il Framework Web di Rust!
Nell’iperspazio con Rocket: il Framework Web di Rust!Nell’iperspazio con Rocket: il Framework Web di Rust!
Nell’iperspazio con Rocket: il Framework Web di Rust!Commit University
 

Recently uploaded (20)

Moving Beyond Passwords: FIDO Paris Seminar.pdf
Moving Beyond Passwords: FIDO Paris Seminar.pdfMoving Beyond Passwords: FIDO Paris Seminar.pdf
Moving Beyond Passwords: FIDO Paris Seminar.pdf
 
Advanced Computer Architecture – An Introduction
Advanced Computer Architecture – An IntroductionAdvanced Computer Architecture – An Introduction
Advanced Computer Architecture – An Introduction
 
SIP trunking in Janus @ Kamailio World 2024
SIP trunking in Janus @ Kamailio World 2024SIP trunking in Janus @ Kamailio World 2024
SIP trunking in Janus @ Kamailio World 2024
 
"ML in Production",Oleksandr Bagan
"ML in Production",Oleksandr Bagan"ML in Production",Oleksandr Bagan
"ML in Production",Oleksandr Bagan
 
New from BookNet Canada for 2024: Loan Stars - Tech Forum 2024
New from BookNet Canada for 2024: Loan Stars - Tech Forum 2024New from BookNet Canada for 2024: Loan Stars - Tech Forum 2024
New from BookNet Canada for 2024: Loan Stars - Tech Forum 2024
 
"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
 
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
 
Scanning the Internet for External Cloud Exposures via SSL Certs
Scanning the Internet for External Cloud Exposures via SSL CertsScanning the Internet for External Cloud Exposures via SSL Certs
Scanning the Internet for External Cloud Exposures via SSL Certs
 
TeamStation AI System Report LATAM IT Salaries 2024
TeamStation AI System Report LATAM IT Salaries 2024TeamStation AI System Report LATAM IT Salaries 2024
TeamStation AI System Report LATAM IT Salaries 2024
 
Unleash Your Potential - Namagunga Girls Coding Club
Unleash Your Potential - Namagunga Girls Coding ClubUnleash Your Potential - Namagunga Girls Coding Club
Unleash Your Potential - Namagunga Girls Coding Club
 
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)
 
How AI, OpenAI, and ChatGPT impact business and software.
How AI, OpenAI, and ChatGPT impact business and software.How AI, OpenAI, and ChatGPT impact business and software.
How AI, OpenAI, and ChatGPT impact business and software.
 
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
 
Digital Identity is Under Attack: FIDO Paris Seminar.pptx
Digital Identity is Under Attack: FIDO Paris Seminar.pptxDigital Identity is Under Attack: FIDO Paris Seminar.pptx
Digital Identity is Under Attack: FIDO Paris Seminar.pptx
 
The Fit for Passkeys for Employee and Consumer Sign-ins: FIDO Paris Seminar.pptx
The Fit for Passkeys for Employee and Consumer Sign-ins: FIDO Paris Seminar.pptxThe Fit for Passkeys for Employee and Consumer Sign-ins: FIDO Paris Seminar.pptx
The Fit for Passkeys for Employee and Consumer Sign-ins: FIDO Paris Seminar.pptx
 
How to write a Business Continuity Plan
How to write a Business Continuity PlanHow to write a Business Continuity Plan
How to write a Business Continuity Plan
 
The State of Passkeys with FIDO Alliance.pptx
The State of Passkeys with FIDO Alliance.pptxThe State of Passkeys with FIDO Alliance.pptx
The State of Passkeys with FIDO Alliance.pptx
 
What's New in Teams Calling, Meetings and Devices March 2024
What's New in Teams Calling, Meetings and Devices March 2024What's New in Teams Calling, Meetings and Devices March 2024
What's New in Teams Calling, Meetings and Devices March 2024
 
SALESFORCE EDUCATION CLOUD | FEXLE SERVICES
SALESFORCE EDUCATION CLOUD | FEXLE SERVICESSALESFORCE EDUCATION CLOUD | FEXLE SERVICES
SALESFORCE EDUCATION CLOUD | FEXLE SERVICES
 
Nell’iperspazio con Rocket: il Framework Web di Rust!
Nell’iperspazio con Rocket: il Framework Web di Rust!Nell’iperspazio con Rocket: il Framework Web di Rust!
Nell’iperspazio con Rocket: il Framework Web di Rust!
 

Growing and Fostering Software Craftsmanship