About Me


Developer for over 18 years



Solutions Architect @ General
Electric



Worked in TV Broadcast,
Healthcare, Travel & Finance



Adobe Community
Professional



UK CF User Group Manager
Agile Software Development
We are uncovering better ways of developing software by doing it
and helping others do it. Through this work we have come to value:

Individuals and interactions over processes and tools
Working software over comprehensive documentation
Customer collaboration over contract negotiation
Responding to change over following a plan
That is, while there is value in the items on
the right, we value the items on the left more.
We adopted Agile and now things
will be OK

… and the Agile Transformation
Era began.
And then we spend 10 year
focusing on...
… people, interactions, team building, the ecosystem

Process and Interactions became more important than
technical practices
The Agile Hangover
 Many Agile projects are now, steadily
and iteratively, producing crap
mediocre software.
We want to get things
done...
… but we are under
pressure
The wrong notion of
time
But what is to be Agile
anyway?
Agile Software Development

We are uncovering better ways of developing software by
doing it and helping others do it. Through this work we
have come to value:

Individuals and interactions over processes and tools
Working software over comprehensive documentation
Customer collaboration over contract negotiation
Responding to change over following a plan
That is, while there is value in the items on
the right, we value the items on the left more.
The invisible threat

Code
quality

Time per
feature
Manifesto for Software Craftsmanship
raising the bar

As aspiring Software Craftsmen we are raising the bar of professional
software development by practising it and helping others learn the craft.
Through this work we have come to value:

Not only working software,
but also well-crafted software

Not only responding to change,
but also steadily adding value
Not only individuals and interactions,
but also a community of professionals
Not only customer collaboration,
but also productive partnerships
What is Software
Craftsmanship?

Software Craftsmanship is all about putting
responsibility, professionalism, pragmatism and
pride back into software development
Does context matter?
Does it always matter?
How do we know we are
building the right thing?
How do we know we are
building the thing right?
Adding value through practice


Automated testing



Test first



Test-Driven Development



Pair-programming



Continuous Integration
Don't discuss practices,
discuss value.
Healthy Intolerance
How can you add more value and/or
have smaller feedback cycles when not
using our practices?
Mastering the practices
is hard …
… and that's why we
practice
Perfect practice
(narrowing the gap)
Software Craftsmanship
is a long journey to
mastery
Software Craftsmanship
Attitude
- Owning your career
- Not a 9 to 5 profession
- Practice
- Boy scout rule
- Expecting promotions
Seniority is subjective and
transient
The attitude towards
legacy code
Why would we want to be
better developers?
Software Craftsmanship is
not...
… a church, trying to convert all developers
It's about leading by example and showing
how we can be better
… about beautiful code
It's about continuously delivering value not
writing crap code
Raising the Bar
Stop...

… being miserable and
negative
… spreading your frustrations
The only way to have people
buying into what you believe is if
they see you happy.
Craftsmanship is not enough to
guarantee the success of a project
but the lack of it can be the main
cause of its failure
Agile and Craftsmanship complement each
other and both are necessary.
Agile processes assume technical
excellence and a professional attitude.
Software Craftsmanship takes technical
excellence and professionalism to a whole
new level.
Clean Code
 Meaningful Names
 Short Functions
 Single Responsibility Principal
 Minimal Arguments

 Show intent
 No need for comments

 Formatting
 Unit Testing
Unit Testing
Code Reviews
Code Layout Matters
 Easy to scan
 Expressive layout
 Compact format
 Code is written once and Read ∞
Books
 Ebook on Lean Pub

 Written by the London
Software Craftsmanship
Community Manager

 https://leanpub.com/socra
 Clean Code

 Uncle Bob (Bob martin)

 Changes your thought
process

 Also Clean Coders –
More about your career
 Extreme Programming
Explained: Embrace
Change

 Kent Back

 Good Technical
Practices
 Working Effectively with
Legacy Code

 Michael Feathers
Questions
Contact Me

T: @bigmadkev
W: BigMadKev.com

CF Camp 2013 Software Craftsmanship for CFML Developers

  • 2.
    About Me  Developer forover 18 years  Solutions Architect @ General Electric  Worked in TV Broadcast, Healthcare, Travel & Finance  Adobe Community Professional  UK CF User Group Manager
  • 3.
    Agile Software Development Weare uncovering better ways of developing software by doing it and helping others do it. Through this work we have come to value: Individuals and interactions over processes and tools Working software over comprehensive documentation Customer collaboration over contract negotiation Responding to change over following a plan That is, while there is value in the items on the right, we value the items on the left more.
  • 4.
    We adopted Agileand now things will be OK … and the Agile Transformation Era began.
  • 5.
    And then wespend 10 year focusing on... … people, interactions, team building, the ecosystem Process and Interactions became more important than technical practices
  • 6.
    The Agile Hangover Many Agile projects are now, steadily and iteratively, producing crap mediocre software.
  • 7.
    We want toget things done... … but we are under pressure
  • 8.
  • 9.
    But what isto be Agile anyway?
  • 10.
    Agile Software Development Weare uncovering better ways of developing software by doing it and helping others do it. Through this work we have come to value: Individuals and interactions over processes and tools Working software over comprehensive documentation Customer collaboration over contract negotiation Responding to change over following a plan That is, while there is value in the items on the right, we value the items on the left more.
  • 11.
  • 12.
    Manifesto for SoftwareCraftsmanship raising the bar As aspiring Software Craftsmen we are raising the bar of professional software development by practising it and helping others learn the craft. Through this work we have come to value: Not only working software, but also well-crafted software Not only responding to change, but also steadily adding value Not only individuals and interactions, but also a community of professionals Not only customer collaboration, but also productive partnerships
  • 13.
    What is Software Craftsmanship? SoftwareCraftsmanship is all about putting responsibility, professionalism, pragmatism and pride back into software development
  • 14.
  • 15.
    How do weknow we are building the right thing? How do we know we are building the thing right?
  • 17.
    Adding value throughpractice  Automated testing  Test first  Test-Driven Development  Pair-programming  Continuous Integration
  • 18.
  • 19.
    Healthy Intolerance How canyou add more value and/or have smaller feedback cycles when not using our practices?
  • 20.
    Mastering the practices ishard … … and that's why we practice
  • 21.
  • 22.
    Software Craftsmanship is along journey to mastery
  • 23.
    Software Craftsmanship Attitude - Owningyour career - Not a 9 to 5 profession - Practice - Boy scout rule - Expecting promotions
  • 24.
  • 25.
  • 26.
    Why would wewant to be better developers?
  • 27.
    Software Craftsmanship is not... …a church, trying to convert all developers It's about leading by example and showing how we can be better … about beautiful code It's about continuously delivering value not writing crap code
  • 28.
  • 29.
    Stop... … being miserableand negative … spreading your frustrations
  • 30.
    The only wayto have people buying into what you believe is if they see you happy.
  • 31.
    Craftsmanship is notenough to guarantee the success of a project but the lack of it can be the main cause of its failure
  • 32.
    Agile and Craftsmanshipcomplement each other and both are necessary. Agile processes assume technical excellence and a professional attitude. Software Craftsmanship takes technical excellence and professionalism to a whole new level.
  • 33.
    Clean Code  MeaningfulNames  Short Functions  Single Responsibility Principal  Minimal Arguments  Show intent  No need for comments  Formatting  Unit Testing
  • 34.
  • 35.
  • 36.
    Code Layout Matters Easy to scan  Expressive layout  Compact format  Code is written once and Read ∞
  • 37.
    Books  Ebook onLean Pub  Written by the London Software Craftsmanship Community Manager  https://leanpub.com/socra
  • 38.
     Clean Code Uncle Bob (Bob martin)  Changes your thought process  Also Clean Coders – More about your career
  • 39.
     Extreme Programming Explained:Embrace Change  Kent Back  Good Technical Practices
  • 40.
     Working Effectivelywith Legacy Code  Michael Feathers
  • 41.
  • 42.

Editor's Notes

  • #48 Started Thursday evening as a drinks reception