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
 
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 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
 
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
 
Ignite: Mapping Human Rights Abuses in Burma/Myanmar
Ignite: Mapping Human Rights Abuses in Burma/MyanmarIgnite: Mapping Human Rights Abuses in Burma/Myanmar
Ignite: Mapping Human Rights Abuses in Burma/MyanmarMark Belinsky
 

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
 
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 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
 
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...
 
Ignite: Mapping Human Rights Abuses in Burma/Myanmar
Ignite: Mapping Human Rights Abuses in Burma/MyanmarIgnite: Mapping Human Rights Abuses in Burma/Myanmar
Ignite: Mapping Human Rights Abuses in Burma/Myanmar
 

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

[Webinar] SpiraTest - Setting New Standards in Quality Assurance
[Webinar] SpiraTest - Setting New Standards in Quality Assurance[Webinar] SpiraTest - Setting New Standards in Quality Assurance
[Webinar] SpiraTest - Setting New Standards in Quality AssuranceInflectra
 
Modern Roaming for Notes and Nomad – Cheaper Faster Better Stronger
Modern Roaming for Notes and Nomad – Cheaper Faster Better StrongerModern Roaming for Notes and Nomad – Cheaper Faster Better Stronger
Modern Roaming for Notes and Nomad – Cheaper Faster Better Strongerpanagenda
 
React Native vs Ionic - The Best Mobile App Framework
React Native vs Ionic - The Best Mobile App FrameworkReact Native vs Ionic - The Best Mobile App Framework
React Native vs Ionic - The Best Mobile App FrameworkPixlogix Infotech
 
Generative Artificial Intelligence: How generative AI works.pdf
Generative Artificial Intelligence: How generative AI works.pdfGenerative Artificial Intelligence: How generative AI works.pdf
Generative Artificial Intelligence: How generative AI works.pdfIngrid Airi González
 
Tampa BSides - The No BS SOC (slides from April 6, 2024 talk)
Tampa BSides - The No BS SOC (slides from April 6, 2024 talk)Tampa BSides - The No BS SOC (slides from April 6, 2024 talk)
Tampa BSides - The No BS SOC (slides from April 6, 2024 talk)Mark Simos
 
MuleSoft Online Meetup Group - B2B Crash Course: Release SparkNotes
MuleSoft Online Meetup Group - B2B Crash Course: Release SparkNotesMuleSoft Online Meetup Group - B2B Crash Course: Release SparkNotes
MuleSoft Online Meetup Group - B2B Crash Course: Release SparkNotesManik S Magar
 
JET Technology Labs White Paper for Virtualized Security and Encryption Techn...
JET Technology Labs White Paper for Virtualized Security and Encryption Techn...JET Technology Labs White Paper for Virtualized Security and Encryption Techn...
JET Technology Labs White Paper for Virtualized Security and Encryption Techn...amber724300
 
A Framework for Development in the AI Age
A Framework for Development in the AI AgeA Framework for Development in the AI Age
A Framework for Development in the AI AgeCprime
 
Microsoft 365 Copilot: How to boost your productivity with AI – Part two: Dat...
Microsoft 365 Copilot: How to boost your productivity with AI – Part two: Dat...Microsoft 365 Copilot: How to boost your productivity with AI – Part two: Dat...
Microsoft 365 Copilot: How to boost your productivity with AI – Part two: Dat...Nikki Chapple
 
Microservices, Docker deploy and Microservices source code in C#
Microservices, Docker deploy and Microservices source code in C#Microservices, Docker deploy and Microservices source code in C#
Microservices, Docker deploy and Microservices source code in C#Karmanjay Verma
 
So einfach geht modernes Roaming fuer Notes und Nomad.pdf
So einfach geht modernes Roaming fuer Notes und Nomad.pdfSo einfach geht modernes Roaming fuer Notes und Nomad.pdf
So einfach geht modernes Roaming fuer Notes und Nomad.pdfpanagenda
 
Connecting the Dots for Information Discovery.pdf
Connecting the Dots for Information Discovery.pdfConnecting the Dots for Information Discovery.pdf
Connecting the Dots for Information Discovery.pdfNeo4j
 
Decarbonising Buildings: Making a net-zero built environment a reality
Decarbonising Buildings: Making a net-zero built environment a realityDecarbonising Buildings: Making a net-zero built environment a reality
Decarbonising Buildings: Making a net-zero built environment a realityIES VE
 
Accelerating Enterprise Software Engineering with Platformless
Accelerating Enterprise Software Engineering with PlatformlessAccelerating Enterprise Software Engineering with Platformless
Accelerating Enterprise Software Engineering with PlatformlessWSO2
 
Arizona Broadband Policy Past, Present, and Future Presentation 3/25/24
Arizona Broadband Policy Past, Present, and Future Presentation 3/25/24Arizona Broadband Policy Past, Present, and Future Presentation 3/25/24
Arizona Broadband Policy Past, Present, and Future Presentation 3/25/24Mark Goldstein
 
All These Sophisticated Attacks, Can We Really Detect Them - PDF
All These Sophisticated Attacks, Can We Really Detect Them - PDFAll These Sophisticated Attacks, Can We Really Detect Them - PDF
All These Sophisticated Attacks, Can We Really Detect Them - PDFMichael Gough
 
Emixa Mendix Meetup 11 April 2024 about Mendix Native development
Emixa Mendix Meetup 11 April 2024 about Mendix Native developmentEmixa Mendix Meetup 11 April 2024 about Mendix Native development
Emixa Mendix Meetup 11 April 2024 about Mendix Native developmentPim van der Noll
 
Digital Tools & AI in Career Development
Digital Tools & AI in Career DevelopmentDigital Tools & AI in Career Development
Digital Tools & AI in Career DevelopmentMahmoud Rabie
 
Dynamical Context introduction word sensibility orientation
Dynamical Context introduction word sensibility orientationDynamical Context introduction word sensibility orientation
Dynamical Context introduction word sensibility orientationBuild Intuit
 
Long journey of Ruby standard library at RubyConf AU 2024
Long journey of Ruby standard library at RubyConf AU 2024Long journey of Ruby standard library at RubyConf AU 2024
Long journey of Ruby standard library at RubyConf AU 2024Hiroshi SHIBATA
 

Recently uploaded (20)

[Webinar] SpiraTest - Setting New Standards in Quality Assurance
[Webinar] SpiraTest - Setting New Standards in Quality Assurance[Webinar] SpiraTest - Setting New Standards in Quality Assurance
[Webinar] SpiraTest - Setting New Standards in Quality Assurance
 
Modern Roaming for Notes and Nomad – Cheaper Faster Better Stronger
Modern Roaming for Notes and Nomad – Cheaper Faster Better StrongerModern Roaming for Notes and Nomad – Cheaper Faster Better Stronger
Modern Roaming for Notes and Nomad – Cheaper Faster Better Stronger
 
React Native vs Ionic - The Best Mobile App Framework
React Native vs Ionic - The Best Mobile App FrameworkReact Native vs Ionic - The Best Mobile App Framework
React Native vs Ionic - The Best Mobile App Framework
 
Generative Artificial Intelligence: How generative AI works.pdf
Generative Artificial Intelligence: How generative AI works.pdfGenerative Artificial Intelligence: How generative AI works.pdf
Generative Artificial Intelligence: How generative AI works.pdf
 
Tampa BSides - The No BS SOC (slides from April 6, 2024 talk)
Tampa BSides - The No BS SOC (slides from April 6, 2024 talk)Tampa BSides - The No BS SOC (slides from April 6, 2024 talk)
Tampa BSides - The No BS SOC (slides from April 6, 2024 talk)
 
MuleSoft Online Meetup Group - B2B Crash Course: Release SparkNotes
MuleSoft Online Meetup Group - B2B Crash Course: Release SparkNotesMuleSoft Online Meetup Group - B2B Crash Course: Release SparkNotes
MuleSoft Online Meetup Group - B2B Crash Course: Release SparkNotes
 
JET Technology Labs White Paper for Virtualized Security and Encryption Techn...
JET Technology Labs White Paper for Virtualized Security and Encryption Techn...JET Technology Labs White Paper for Virtualized Security and Encryption Techn...
JET Technology Labs White Paper for Virtualized Security and Encryption Techn...
 
A Framework for Development in the AI Age
A Framework for Development in the AI AgeA Framework for Development in the AI Age
A Framework for Development in the AI Age
 
Microsoft 365 Copilot: How to boost your productivity with AI – Part two: Dat...
Microsoft 365 Copilot: How to boost your productivity with AI – Part two: Dat...Microsoft 365 Copilot: How to boost your productivity with AI – Part two: Dat...
Microsoft 365 Copilot: How to boost your productivity with AI – Part two: Dat...
 
Microservices, Docker deploy and Microservices source code in C#
Microservices, Docker deploy and Microservices source code in C#Microservices, Docker deploy and Microservices source code in C#
Microservices, Docker deploy and Microservices source code in C#
 
So einfach geht modernes Roaming fuer Notes und Nomad.pdf
So einfach geht modernes Roaming fuer Notes und Nomad.pdfSo einfach geht modernes Roaming fuer Notes und Nomad.pdf
So einfach geht modernes Roaming fuer Notes und Nomad.pdf
 
Connecting the Dots for Information Discovery.pdf
Connecting the Dots for Information Discovery.pdfConnecting the Dots for Information Discovery.pdf
Connecting the Dots for Information Discovery.pdf
 
Decarbonising Buildings: Making a net-zero built environment a reality
Decarbonising Buildings: Making a net-zero built environment a realityDecarbonising Buildings: Making a net-zero built environment a reality
Decarbonising Buildings: Making a net-zero built environment a reality
 
Accelerating Enterprise Software Engineering with Platformless
Accelerating Enterprise Software Engineering with PlatformlessAccelerating Enterprise Software Engineering with Platformless
Accelerating Enterprise Software Engineering with Platformless
 
Arizona Broadband Policy Past, Present, and Future Presentation 3/25/24
Arizona Broadband Policy Past, Present, and Future Presentation 3/25/24Arizona Broadband Policy Past, Present, and Future Presentation 3/25/24
Arizona Broadband Policy Past, Present, and Future Presentation 3/25/24
 
All These Sophisticated Attacks, Can We Really Detect Them - PDF
All These Sophisticated Attacks, Can We Really Detect Them - PDFAll These Sophisticated Attacks, Can We Really Detect Them - PDF
All These Sophisticated Attacks, Can We Really Detect Them - PDF
 
Emixa Mendix Meetup 11 April 2024 about Mendix Native development
Emixa Mendix Meetup 11 April 2024 about Mendix Native developmentEmixa Mendix Meetup 11 April 2024 about Mendix Native development
Emixa Mendix Meetup 11 April 2024 about Mendix Native development
 
Digital Tools & AI in Career Development
Digital Tools & AI in Career DevelopmentDigital Tools & AI in Career Development
Digital Tools & AI in Career Development
 
Dynamical Context introduction word sensibility orientation
Dynamical Context introduction word sensibility orientationDynamical Context introduction word sensibility orientation
Dynamical Context introduction word sensibility orientation
 
Long journey of Ruby standard library at RubyConf AU 2024
Long journey of Ruby standard library at RubyConf AU 2024Long journey of Ruby standard library at RubyConf AU 2024
Long journey of Ruby standard library at RubyConf AU 2024
 

Growing and Fostering Software Craftsmanship