SlideShare a Scribd company logo
1 of 49
Kev McCabe
CF Objective 2014
Thursday 15th May http://bit.ly/softwareCraft
Software Craftsmanship
Mentor @ General Electric
• ColdFusion since 1996 (v2)
• London CFML &Web
Community Leader
• Scrum Master
• Kanban Practitioner
• Agile Coach
T: @bigmadkev
W: BigMadKev.com
http://bit.ly/softwareCraft
http://bit.ly/softwareCraft
 You may have questions to ask
 Please note them, and put your
email/twitter/name
 I’ll follow up with you at a later stage
 Or discuss here if time permits
 Please place into the box at the front here
Individuals and interactions over
processes and tools
Working software over
comprehensive documentation
Customer collaboration over
contract negotiation
Responding to change over
following a plan
http://bit.ly/softwareCraft
We adoptedAgile and now things will be OK
… and the AgileTransformation Era began.
http://bit.ly/softwareCraft
… people, interactions, team building, the
ecosystem
Process and Interactions became more important
than technical practices
http://bit.ly/softwareCraft
 Many Agile projects are now, steadily and
iteratively, producing shit crap mediocre
software.
http://bit.ly/softwareCraft
We want to get things done...
… but we are under pressure
http://bit.ly/softwareCraft
But what is to be Agile anyway?
http://bit.ly/softwareCraft
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.
http://bit.ly/softwareCraft
Code
quality
Time per
feature
http://bit.ly/softwareCraft
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
Software Craftsmanship is all about putting
responsibility, professionalism, pragmatism
and pride back into software development
http://bit.ly/softwareCraft
How do we know we are building
the right thing?
How do we know we are building
the thing right?
http://bit.ly/softwareCraft
http://bit.ly/softwareCraft
 Automated testing
 Test first
 Test-Driven Development
 Pair-programming
 Continuous Integration
http://bit.ly/softwareCraft
Mastering the practices is
hard …
… and that's why we practice
http://bit.ly/softwareCraft
Perfect practice
 (narrowing the gap)
http://bit.ly/softwareCraft
Software Craftsmanship is a
long journey to mastery
http://bit.ly/softwareCraft
- Owning your career
- Not a 9 to 5 profession
- Practice
- Boy Scout rule
- Expecting promotions
http://bit.ly/softwareCraft
 Learn stuff all the time
 Small and often
 You don’t want to be out of work and having
a large learn curve
http://bit.ly/softwareCraft
http://bit.ly/softwareCraft
http://bit.ly/softwareCraft
 Seniority is subjective and
transient
http://bit.ly/softwareCraft
The attitude towards
legacy code
http://bit.ly/softwareCraft
Why would we want to be better
developers?
http://bit.ly/softwareCraft
… 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
http://bit.ly/softwareCraft
Raising the Bar
http://bit.ly/softwareCraft
 Stop...
 … being miserable and negative
 … spreading your frustrations
http://bit.ly/softwareCraft
 The only way to have people buying into
what you believe is if they see you happy.
http://bit.ly/softwareCraft
 Craftsmanship is not enough to guarantee
the success of a project but the lack of it
can be the main cause of its failure
http://bit.ly/softwareCraft
 Agile and Craftsmanship complement each other
and both are necessary.
 Agile processes assume technical excellence and a
professional attitude.
 SoftwareCraftsmanship takes technical excellence
and professionalism to a whole new level.
http://bit.ly/softwareCraft
 Meaningful Names
 Short Functions
 Single Responsibility Principal
 Minimal Arguments
 Show intent
 No need for comments
 Formatting
 UnitTesting
http://bit.ly/softwareCraft
http://bit.ly/softwareCraft
http://bit.ly/softwareCraft
 Easy to scan
 Expressive layout
 Compact format
 Code is written once and Read ∞
http://bit.ly/softwareCraft
 1st edition 1974
 2nd edition 1978
 56 lessons
 Most of which are still
valid today
 Book costs $150+
http://bit.ly/softwareCraft
http://bit.ly/softwareCraft
1. Write clearly -- don't be too clever.
2. Say what you mean, simply and
directly.
3. Write clearly -- don't sacrifice clarity
for efficiency.
4. Replace repetitive expressions by calls
to common functions.
5. Parenthesize to avoid ambiguity.
6. Choose variable names that won't be
confused.
7. Write first in easy-to-understand
pseudo language; then translate into
whatever language you have to use.
8. Modularize. Use procedures and
functions.
9. Don't patch bad code -- rewrite it.
10. Write and test a big program in small
pieces.
11. Check some answers by hand
11. Make it right before you make it faster.
12. Make it fail-safe before you make it
faster.
13. Make it clear before you make it faster.
14. Don't sacrifice clarity for small gains in
efficiency.
15. Don't strain to re-use code; reorganize
instead.
16. Make sure special cases are truly
special.
17. Keep it simple to make it faster.
18. Don't just echo the code with
comments -- make every comment
count.
19. Don't comment bad code -- rewrite it.
20. Use variable names that mean
something.
21. Format a program to help the reader
understand it.
22. Don't over-comment.
http://bit.ly/softwareCraft
 Ebook on Lean Pub
 Written by the London
Software Craftsmanship
Community Manager
 https://leanpub.com/socra
http://bit.ly/softwareCraft
 Clean Code
 Robert “Uncle Bob”
Martin
 Changes your thought
process
 +Videos
 Also Clean Coders –
More about your
career
http://bit.ly/softwareCraft
 Extreme Programming
Explained: Embrace
Change
 Kent Back
 GoodTechnical
Practices
http://bit.ly/softwareCraft
 Working Effectively
with Legacy Code
 Michael Feathers
http://bit.ly/softwareCraft
 Today @ 3pm
 In ad hoc room (next to lunch room)
 LearnTDD / BDD Principles without code
 Open to all
http://bit.ly/softwareCraft
http://bit.ly/softwareCraft
Happy to work with people over
Google hangout / Skype. UKTime
(After lunch EST/Before Lunch PST)
FREE / AmazonWish list 
T: @bigmadkev
S:bigmadkev
W: BigMadKev.com
http://bit.ly/softwareCraft

More Related Content

What's hot

Deck 8983a1d9-68df-4447-8481-3b4fd0de734c-13-66-123-168
Deck 8983a1d9-68df-4447-8481-3b4fd0de734c-13-66-123-168Deck 8983a1d9-68df-4447-8481-3b4fd0de734c-13-66-123-168
Deck 8983a1d9-68df-4447-8481-3b4fd0de734c-13-66-123-168Thinkful
 
Gwvps presentation 2020 by CADD Mastre
Gwvps presentation 2020 by CADD MastreGwvps presentation 2020 by CADD Mastre
Gwvps presentation 2020 by CADD MastreCADD MASTRE
 
Offshore tips sharing_2.0
Offshore tips sharing_2.0Offshore tips sharing_2.0
Offshore tips sharing_2.0Dao Ngoc Kien
 
Transforming lives-with-teaching
Transforming lives-with-teachingTransforming lives-with-teaching
Transforming lives-with-teachingRafiq Gemmail
 
Learned from Woodworking
Learned from WoodworkingLearned from Woodworking
Learned from WoodworkingRob Kaufman
 
Deck 8983a1d9-68df-4447-8481-3b4fd0de734c-31(1)
Deck 8983a1d9-68df-4447-8481-3b4fd0de734c-31(1)Deck 8983a1d9-68df-4447-8481-3b4fd0de734c-31(1)
Deck 8983a1d9-68df-4447-8481-3b4fd0de734c-31(1)Thinkful
 
Df16 getting started with apex as an admin
Df16  getting started with apex as an adminDf16  getting started with apex as an admin
Df16 getting started with apex as an adminChristopher Lewis
 
Getting Started With Apex as an Admin by Christopher Lewis
Getting Started With Apex as an Admin by Christopher LewisGetting Started With Apex as an Admin by Christopher Lewis
Getting Started With Apex as an Admin by Christopher LewisSalesforce Admins
 
Most valuable software design principles
Most valuable software design principlesMost valuable software design principles
Most valuable software design principlesJeroen Hildering
 
Freelance symfony framework
Freelance symfony frameworkFreelance symfony framework
Freelance symfony frameworkanikanielsen
 
Enterprise Workflows When You Aren't Enterprise
Enterprise Workflows When You Aren't EnterpriseEnterprise Workflows When You Aren't Enterprise
Enterprise Workflows When You Aren't EnterpriseChris Tankersley
 
Upwork time log and difficulty 20160523
Upwork time log and difficulty 20160523Upwork time log and difficulty 20160523
Upwork time log and difficulty 20160523Sharon Liu
 
CPP01 - Introduction to C++
CPP01 - Introduction to C++CPP01 - Introduction to C++
CPP01 - Introduction to C++Michael Heron
 
Learn, Code, and Teach Model
Learn, Code, and Teach ModelLearn, Code, and Teach Model
Learn, Code, and Teach ModelYahmis Yahaya
 
Buildappjsjq9:12 sd
Buildappjsjq9:12 sdBuildappjsjq9:12 sd
Buildappjsjq9:12 sdThinkful
 
WordPress Web Design in Birmingham (Infographic)
WordPress Web Design in Birmingham (Infographic)WordPress Web Design in Birmingham (Infographic)
WordPress Web Design in Birmingham (Infographic)Opace Web Design
 
JavaOne 2015 Devops and the Darkside CON6447
JavaOne 2015 Devops and the Darkside CON6447JavaOne 2015 Devops and the Darkside CON6447
JavaOne 2015 Devops and the Darkside CON6447Steve Poole
 
Karma Code Less Teach More
Karma Code Less Teach MoreKarma Code Less Teach More
Karma Code Less Teach MoreBryan Berry
 

What's hot (18)

Deck 8983a1d9-68df-4447-8481-3b4fd0de734c-13-66-123-168
Deck 8983a1d9-68df-4447-8481-3b4fd0de734c-13-66-123-168Deck 8983a1d9-68df-4447-8481-3b4fd0de734c-13-66-123-168
Deck 8983a1d9-68df-4447-8481-3b4fd0de734c-13-66-123-168
 
Gwvps presentation 2020 by CADD Mastre
Gwvps presentation 2020 by CADD MastreGwvps presentation 2020 by CADD Mastre
Gwvps presentation 2020 by CADD Mastre
 
Offshore tips sharing_2.0
Offshore tips sharing_2.0Offshore tips sharing_2.0
Offshore tips sharing_2.0
 
Transforming lives-with-teaching
Transforming lives-with-teachingTransforming lives-with-teaching
Transforming lives-with-teaching
 
Learned from Woodworking
Learned from WoodworkingLearned from Woodworking
Learned from Woodworking
 
Deck 8983a1d9-68df-4447-8481-3b4fd0de734c-31(1)
Deck 8983a1d9-68df-4447-8481-3b4fd0de734c-31(1)Deck 8983a1d9-68df-4447-8481-3b4fd0de734c-31(1)
Deck 8983a1d9-68df-4447-8481-3b4fd0de734c-31(1)
 
Df16 getting started with apex as an admin
Df16  getting started with apex as an adminDf16  getting started with apex as an admin
Df16 getting started with apex as an admin
 
Getting Started With Apex as an Admin by Christopher Lewis
Getting Started With Apex as an Admin by Christopher LewisGetting Started With Apex as an Admin by Christopher Lewis
Getting Started With Apex as an Admin by Christopher Lewis
 
Most valuable software design principles
Most valuable software design principlesMost valuable software design principles
Most valuable software design principles
 
Freelance symfony framework
Freelance symfony frameworkFreelance symfony framework
Freelance symfony framework
 
Enterprise Workflows When You Aren't Enterprise
Enterprise Workflows When You Aren't EnterpriseEnterprise Workflows When You Aren't Enterprise
Enterprise Workflows When You Aren't Enterprise
 
Upwork time log and difficulty 20160523
Upwork time log and difficulty 20160523Upwork time log and difficulty 20160523
Upwork time log and difficulty 20160523
 
CPP01 - Introduction to C++
CPP01 - Introduction to C++CPP01 - Introduction to C++
CPP01 - Introduction to C++
 
Learn, Code, and Teach Model
Learn, Code, and Teach ModelLearn, Code, and Teach Model
Learn, Code, and Teach Model
 
Buildappjsjq9:12 sd
Buildappjsjq9:12 sdBuildappjsjq9:12 sd
Buildappjsjq9:12 sd
 
WordPress Web Design in Birmingham (Infographic)
WordPress Web Design in Birmingham (Infographic)WordPress Web Design in Birmingham (Infographic)
WordPress Web Design in Birmingham (Infographic)
 
JavaOne 2015 Devops and the Darkside CON6447
JavaOne 2015 Devops and the Darkside CON6447JavaOne 2015 Devops and the Darkside CON6447
JavaOne 2015 Devops and the Darkside CON6447
 
Karma Code Less Teach More
Karma Code Less Teach MoreKarma Code Less Teach More
Karma Code Less Teach More
 

Viewers also liked

Monitoring CF What are my options? Why Should I?
Monitoring CF What are my options? Why Should I?Monitoring CF What are my options? Why Should I?
Monitoring CF What are my options? Why Should I?ColdFusionConference
 
Load Balancing, Failover and Scalability with ColdFusion
Load Balancing, Failover and Scalability with ColdFusionLoad Balancing, Failover and Scalability with ColdFusion
Load Balancing, Failover and Scalability with ColdFusionColdFusionConference
 
Herding cats managing ColdFusion servers with commandbox
Herding cats managing ColdFusion servers with commandboxHerding cats managing ColdFusion servers with commandbox
Herding cats managing ColdFusion servers with commandboxColdFusionConference
 
Dependency Injection Why is it awesome and Why should I care?
Dependency Injection Why is it awesome and Why should I care?Dependency Injection Why is it awesome and Why should I care?
Dependency Injection Why is it awesome and Why should I care?ColdFusionConference
 
Understanding bdd and tdd with lego
Understanding bdd and tdd with legoUnderstanding bdd and tdd with lego
Understanding bdd and tdd with legoColdFusionConference
 
Powering GIS Operations with ColdFusion
Powering GIS Operations with ColdFusionPowering GIS Operations with ColdFusion
Powering GIS Operations with ColdFusionColdFusionConference
 
Our application got popular and now it breaks
Our application got popular and now it breaksOur application got popular and now it breaks
Our application got popular and now it breaksColdFusionConference
 
Cfobjective fusion reactor sponsor talk
Cfobjective fusion reactor sponsor talkCfobjective fusion reactor sponsor talk
Cfobjective fusion reactor sponsor talkColdFusionConference
 
Expand Your ColdFusion App Power with AWS
Expand Your ColdFusion App Power with AWSExpand Your ColdFusion App Power with AWS
Expand Your ColdFusion App Power with AWSColdFusionConference
 

Viewers also liked (20)

This is how we REST
This is how we RESTThis is how we REST
This is how we REST
 
Monitoring CF What are my options? Why Should I?
Monitoring CF What are my options? Why Should I?Monitoring CF What are my options? Why Should I?
Monitoring CF What are my options? Why Should I?
 
Where is cold fusion headed
Where is cold fusion headedWhere is cold fusion headed
Where is cold fusion headed
 
Load Balancing, Failover and Scalability with ColdFusion
Load Balancing, Failover and Scalability with ColdFusionLoad Balancing, Failover and Scalability with ColdFusion
Load Balancing, Failover and Scalability with ColdFusion
 
Herding cats managing ColdFusion servers with commandbox
Herding cats managing ColdFusion servers with commandboxHerding cats managing ColdFusion servers with commandbox
Herding cats managing ColdFusion servers with commandbox
 
Fr sponsor talk may 2015
Fr sponsor talk may 2015Fr sponsor talk may 2015
Fr sponsor talk may 2015
 
Git sourcecontrolpreso
Git sourcecontrolpresoGit sourcecontrolpreso
Git sourcecontrolpreso
 
Dependency Injection Why is it awesome and Why should I care?
Dependency Injection Why is it awesome and Why should I care?Dependency Injection Why is it awesome and Why should I care?
Dependency Injection Why is it awesome and Why should I care?
 
Understanding bdd and tdd with lego
Understanding bdd and tdd with legoUnderstanding bdd and tdd with lego
Understanding bdd and tdd with lego
 
Powering GIS Operations with ColdFusion
Powering GIS Operations with ColdFusionPowering GIS Operations with ColdFusion
Powering GIS Operations with ColdFusion
 
Our application got popular and now it breaks
Our application got popular and now it breaksOur application got popular and now it breaks
Our application got popular and now it breaks
 
Java scriptconfusingbits
Java scriptconfusingbitsJava scriptconfusingbits
Java scriptconfusingbits
 
Realtime with websockets
Realtime with websocketsRealtime with websockets
Realtime with websockets
 
Cfobjective fusion reactor sponsor talk
Cfobjective fusion reactor sponsor talkCfobjective fusion reactor sponsor talk
Cfobjective fusion reactor sponsor talk
 
Dependency Injection
Dependency InjectionDependency Injection
Dependency Injection
 
Expand Your ColdFusion App Power with AWS
Expand Your ColdFusion App Power with AWSExpand Your ColdFusion App Power with AWS
Expand Your ColdFusion App Power with AWS
 
Garbage First & You
Garbage First & YouGarbage First & You
Garbage First & You
 
Locking Down CF Servers
Locking Down CF ServersLocking Down CF Servers
Locking Down CF Servers
 
Who Owns Software Security?
Who Owns Software Security?Who Owns Software Security?
Who Owns Software Security?
 
Keep Applications Online
Keep Applications OnlineKeep Applications Online
Keep Applications Online
 

Similar to Cf objective2014 software-craftsmanship

How to become a software developer
How to become a software developerHow to become a software developer
How to become a software developerEyob Lube
 
Better Functional Design through TDD
Better Functional Design through TDDBetter Functional Design through TDD
Better Functional Design through TDDPhil Calçado
 
Summer internship report
Summer internship reportSummer internship report
Summer internship reportmdk8989
 
Pain Driven Development by Alexandr Sugak
Pain Driven Development by Alexandr SugakPain Driven Development by Alexandr Sugak
Pain Driven Development by Alexandr SugakSigma Software
 
How To Become A Good C# Programmer
How To Become A Good C# ProgrammerHow To Become A Good C# Programmer
How To Become A Good C# ProgrammerLearnItFirst.com
 
Tales of modernizing trello's web stack
Tales of modernizing trello's web stackTales of modernizing trello's web stack
Tales of modernizing trello's web stackVincent Kok
 
Agile Methodologies And Extreme Programming - Svetlin Nakov
Agile Methodologies And Extreme Programming - Svetlin NakovAgile Methodologies And Extreme Programming - Svetlin Nakov
Agile Methodologies And Extreme Programming - Svetlin NakovSvetlin Nakov
 
Agile Methodologies And Extreme Programming
Agile Methodologies And Extreme ProgrammingAgile Methodologies And Extreme Programming
Agile Methodologies And Extreme ProgrammingUtkarsh Khare
 
Developers’ mDay u Banjoj Luci - Milan Popović, PHP Srbija – Testimony (about...
Developers’ mDay u Banjoj Luci - Milan Popović, PHP Srbija – Testimony (about...Developers’ mDay u Banjoj Luci - Milan Popović, PHP Srbija – Testimony (about...
Developers’ mDay u Banjoj Luci - Milan Popović, PHP Srbija – Testimony (about...mCloud
 
Startup Engineering for Non-Technical Founders
Startup Engineering for Non-Technical FoundersStartup Engineering for Non-Technical Founders
Startup Engineering for Non-Technical FoundersGrowth Hacking Asia
 
Placement-pucrehxycufocuccpuupcuppcps.pptx
Placement-pucrehxycufocuccpuupcuppcps.pptxPlacement-pucrehxycufocuccpuupcuppcps.pptx
Placement-pucrehxycufocuccpuupcuppcps.pptxYashJadhav496388
 
Deck 6-80-140-196-213-271-321-364-413
Deck 6-80-140-196-213-271-321-364-413Deck 6-80-140-196-213-271-321-364-413
Deck 6-80-140-196-213-271-321-364-413Justin Ezor
 
Evolving to Cloud-Native - Nate Schutta (1/2)
Evolving to Cloud-Native - Nate Schutta (1/2)Evolving to Cloud-Native - Nate Schutta (1/2)
Evolving to Cloud-Native - Nate Schutta (1/2)VMware Tanzu
 
Continuous business goal validation
Continuous business goal validationContinuous business goal validation
Continuous business goal validationHylke Stapersma
 
Microsoft Teams and Planner Global Azure Bootcamp
Microsoft Teams and Planner Global Azure BootcampMicrosoft Teams and Planner Global Azure Bootcamp
Microsoft Teams and Planner Global Azure BootcampHeather Newman
 
Stapling and patching the web of now - ForwardJS3, San Francisco
Stapling and patching the web of now - ForwardJS3, San FranciscoStapling and patching the web of now - ForwardJS3, San Francisco
Stapling and patching the web of now - ForwardJS3, San FranciscoChristian Heilmann
 
Five steps towards your testing dream
Five steps towards your testing dreamFive steps towards your testing dream
Five steps towards your testing dreamLisa Gagarina
 

Similar to Cf objective2014 software-craftsmanship (20)

How to become a software developer
How to become a software developerHow to become a software developer
How to become a software developer
 
Better Functional Design through TDD
Better Functional Design through TDDBetter Functional Design through TDD
Better Functional Design through TDD
 
Summer internship report
Summer internship reportSummer internship report
Summer internship report
 
Pain Driven Development by Alexandr Sugak
Pain Driven Development by Alexandr SugakPain Driven Development by Alexandr Sugak
Pain Driven Development by Alexandr Sugak
 
How To Become A Good C# Programmer
How To Become A Good C# ProgrammerHow To Become A Good C# Programmer
How To Become A Good C# Programmer
 
TxJS 2011
TxJS 2011TxJS 2011
TxJS 2011
 
Tales of modernizing trello's web stack
Tales of modernizing trello's web stackTales of modernizing trello's web stack
Tales of modernizing trello's web stack
 
Agile Methodologies And Extreme Programming - Svetlin Nakov
Agile Methodologies And Extreme Programming - Svetlin NakovAgile Methodologies And Extreme Programming - Svetlin Nakov
Agile Methodologies And Extreme Programming - Svetlin Nakov
 
Agile Methodologies And Extreme Programming
Agile Methodologies And Extreme ProgrammingAgile Methodologies And Extreme Programming
Agile Methodologies And Extreme Programming
 
Why agile?
Why agile?Why agile?
Why agile?
 
Developers’ mDay u Banjoj Luci - Milan Popović, PHP Srbija – Testimony (about...
Developers’ mDay u Banjoj Luci - Milan Popović, PHP Srbija – Testimony (about...Developers’ mDay u Banjoj Luci - Milan Popović, PHP Srbija – Testimony (about...
Developers’ mDay u Banjoj Luci - Milan Popović, PHP Srbija – Testimony (about...
 
Startup Engineering for Non-Technical Founders
Startup Engineering for Non-Technical FoundersStartup Engineering for Non-Technical Founders
Startup Engineering for Non-Technical Founders
 
Placement-pucrehxycufocuccpuupcuppcps.pptx
Placement-pucrehxycufocuccpuupcuppcps.pptxPlacement-pucrehxycufocuccpuupcuppcps.pptx
Placement-pucrehxycufocuccpuupcuppcps.pptx
 
How TDD helps me design - A case study
How TDD helps me design - A case studyHow TDD helps me design - A case study
How TDD helps me design - A case study
 
Deck 6-80-140-196-213-271-321-364-413
Deck 6-80-140-196-213-271-321-364-413Deck 6-80-140-196-213-271-321-364-413
Deck 6-80-140-196-213-271-321-364-413
 
Evolving to Cloud-Native - Nate Schutta (1/2)
Evolving to Cloud-Native - Nate Schutta (1/2)Evolving to Cloud-Native - Nate Schutta (1/2)
Evolving to Cloud-Native - Nate Schutta (1/2)
 
Continuous business goal validation
Continuous business goal validationContinuous business goal validation
Continuous business goal validation
 
Microsoft Teams and Planner Global Azure Bootcamp
Microsoft Teams and Planner Global Azure BootcampMicrosoft Teams and Planner Global Azure Bootcamp
Microsoft Teams and Planner Global Azure Bootcamp
 
Stapling and patching the web of now - ForwardJS3, San Francisco
Stapling and patching the web of now - ForwardJS3, San FranciscoStapling and patching the web of now - ForwardJS3, San Francisco
Stapling and patching the web of now - ForwardJS3, San Francisco
 
Five steps towards your testing dream
Five steps towards your testing dreamFive steps towards your testing dream
Five steps towards your testing dream
 

More from ColdFusionConference

Building better SQL Server Databases
Building better SQL Server DatabasesBuilding better SQL Server Databases
Building better SQL Server DatabasesColdFusionConference
 
API Economy, Realizing the Business Value of APIs
API Economy, Realizing the Business Value of APIsAPI Economy, Realizing the Business Value of APIs
API Economy, Realizing the Business Value of APIsColdFusionConference
 
Crafting ColdFusion Applications like an Architect
Crafting ColdFusion Applications like an ArchitectCrafting ColdFusion Applications like an Architect
Crafting ColdFusion Applications like an ArchitectColdFusionConference
 
Security And Access Control For APIS using CF API Manager
Security And Access Control For APIS using CF API ManagerSecurity And Access Control For APIS using CF API Manager
Security And Access Control For APIS using CF API ManagerColdFusionConference
 
Monetizing Business Models: ColdFusion and APIS
Monetizing Business Models: ColdFusion and APISMonetizing Business Models: ColdFusion and APIS
Monetizing Business Models: ColdFusion and APISColdFusionConference
 
Become a Security Rockstar with ColdFusion 2016
Become a Security Rockstar with ColdFusion 2016Become a Security Rockstar with ColdFusion 2016
Become a Security Rockstar with ColdFusion 2016ColdFusionConference
 
Developer Insights for Application Upgrade to ColdFusion 2016
Developer Insights for Application Upgrade to ColdFusion 2016Developer Insights for Application Upgrade to ColdFusion 2016
Developer Insights for Application Upgrade to ColdFusion 2016ColdFusionConference
 
ColdFusion Keynote: Building the Agile Web Since 1995
ColdFusion Keynote: Building the Agile Web Since 1995ColdFusion Keynote: Building the Agile Web Since 1995
ColdFusion Keynote: Building the Agile Web Since 1995ColdFusionConference
 
Super Fast Application development with Mura CMS
Super Fast Application development with Mura CMSSuper Fast Application development with Mura CMS
Super Fast Application development with Mura CMSColdFusionConference
 
Build your own secure and real-time dashboard for mobile and web
Build your own secure and real-time dashboard for mobile and webBuild your own secure and real-time dashboard for mobile and web
Build your own secure and real-time dashboard for mobile and webColdFusionConference
 

More from ColdFusionConference (20)

Api manager preconference
Api manager preconferenceApi manager preconference
Api manager preconference
 
Cf ppt vsr
Cf ppt vsrCf ppt vsr
Cf ppt vsr
 
Building better SQL Server Databases
Building better SQL Server DatabasesBuilding better SQL Server Databases
Building better SQL Server Databases
 
API Economy, Realizing the Business Value of APIs
API Economy, Realizing the Business Value of APIsAPI Economy, Realizing the Business Value of APIs
API Economy, Realizing the Business Value of APIs
 
Don't just pdf, Smart PDF
Don't just pdf, Smart PDFDon't just pdf, Smart PDF
Don't just pdf, Smart PDF
 
Crafting ColdFusion Applications like an Architect
Crafting ColdFusion Applications like an ArchitectCrafting ColdFusion Applications like an Architect
Crafting ColdFusion Applications like an Architect
 
Security And Access Control For APIS using CF API Manager
Security And Access Control For APIS using CF API ManagerSecurity And Access Control For APIS using CF API Manager
Security And Access Control For APIS using CF API Manager
 
Monetizing Business Models: ColdFusion and APIS
Monetizing Business Models: ColdFusion and APISMonetizing Business Models: ColdFusion and APIS
Monetizing Business Models: ColdFusion and APIS
 
Become a Security Rockstar with ColdFusion 2016
Become a Security Rockstar with ColdFusion 2016Become a Security Rockstar with ColdFusion 2016
Become a Security Rockstar with ColdFusion 2016
 
ColdFusion in Transit action
ColdFusion in Transit actionColdFusion in Transit action
ColdFusion in Transit action
 
Developer Insights for Application Upgrade to ColdFusion 2016
Developer Insights for Application Upgrade to ColdFusion 2016Developer Insights for Application Upgrade to ColdFusion 2016
Developer Insights for Application Upgrade to ColdFusion 2016
 
ColdFusion Keynote: Building the Agile Web Since 1995
ColdFusion Keynote: Building the Agile Web Since 1995ColdFusion Keynote: Building the Agile Web Since 1995
ColdFusion Keynote: Building the Agile Web Since 1995
 
Instant ColdFusion with Vagrant
Instant ColdFusion with VagrantInstant ColdFusion with Vagrant
Instant ColdFusion with Vagrant
 
Restful services with ColdFusion
Restful services with ColdFusionRestful services with ColdFusion
Restful services with ColdFusion
 
Super Fast Application development with Mura CMS
Super Fast Application development with Mura CMSSuper Fast Application development with Mura CMS
Super Fast Application development with Mura CMS
 
Build your own secure and real-time dashboard for mobile and web
Build your own secure and real-time dashboard for mobile and webBuild your own secure and real-time dashboard for mobile and web
Build your own secure and real-time dashboard for mobile and web
 
Why Everyone else writes bad code
Why Everyone else writes bad codeWhy Everyone else writes bad code
Why Everyone else writes bad code
 
Securing applications
Securing applicationsSecuring applications
Securing applications
 
Testing automaton
Testing automatonTesting automaton
Testing automaton
 
Rest ful tools for lazy experts
Rest ful tools for lazy expertsRest ful tools for lazy experts
Rest ful tools for lazy experts
 

Recently uploaded

Intelligent Home Wi-Fi Solutions | ThinkPalm
Intelligent Home Wi-Fi Solutions | ThinkPalmIntelligent Home Wi-Fi Solutions | ThinkPalm
Intelligent Home Wi-Fi Solutions | ThinkPalmSujith Sukumaran
 
Professional Resume Template for Software Developers
Professional Resume Template for Software DevelopersProfessional Resume Template for Software Developers
Professional Resume Template for Software DevelopersVinodh Ram
 
Short Story: Unveiling the Reasoning Abilities of Large Language Models by Ke...
Short Story: Unveiling the Reasoning Abilities of Large Language Models by Ke...Short Story: Unveiling the Reasoning Abilities of Large Language Models by Ke...
Short Story: Unveiling the Reasoning Abilities of Large Language Models by Ke...kellynguyen01
 
What is Binary Language? Computer Number Systems
What is Binary Language?  Computer Number SystemsWhat is Binary Language?  Computer Number Systems
What is Binary Language? Computer Number SystemsJheuzeDellosa
 
What is Fashion PLM and Why Do You Need It
What is Fashion PLM and Why Do You Need ItWhat is Fashion PLM and Why Do You Need It
What is Fashion PLM and Why Do You Need ItWave PLM
 
(Genuine) Escort Service Lucknow | Starting ₹,5K To @25k with A/C 🧑🏽‍❤️‍🧑🏻 89...
(Genuine) Escort Service Lucknow | Starting ₹,5K To @25k with A/C 🧑🏽‍❤️‍🧑🏻 89...(Genuine) Escort Service Lucknow | Starting ₹,5K To @25k with A/C 🧑🏽‍❤️‍🧑🏻 89...
(Genuine) Escort Service Lucknow | Starting ₹,5K To @25k with A/C 🧑🏽‍❤️‍🧑🏻 89...gurkirankumar98700
 
EY_Graph Database Powered Sustainability
EY_Graph Database Powered SustainabilityEY_Graph Database Powered Sustainability
EY_Graph Database Powered SustainabilityNeo4j
 
XpertSolvers: Your Partner in Building Innovative Software Solutions
XpertSolvers: Your Partner in Building Innovative Software SolutionsXpertSolvers: Your Partner in Building Innovative Software Solutions
XpertSolvers: Your Partner in Building Innovative Software SolutionsMehedi Hasan Shohan
 
The Evolution of Karaoke From Analog to App.pdf
The Evolution of Karaoke From Analog to App.pdfThe Evolution of Karaoke From Analog to App.pdf
The Evolution of Karaoke From Analog to App.pdfPower Karaoke
 
Try MyIntelliAccount Cloud Accounting Software As A Service Solution Risk Fre...
Try MyIntelliAccount Cloud Accounting Software As A Service Solution Risk Fre...Try MyIntelliAccount Cloud Accounting Software As A Service Solution Risk Fre...
Try MyIntelliAccount Cloud Accounting Software As A Service Solution Risk Fre...MyIntelliSource, Inc.
 
The Essentials of Digital Experience Monitoring_ A Comprehensive Guide.pdf
The Essentials of Digital Experience Monitoring_ A Comprehensive Guide.pdfThe Essentials of Digital Experience Monitoring_ A Comprehensive Guide.pdf
The Essentials of Digital Experience Monitoring_ A Comprehensive Guide.pdfkalichargn70th171
 
Building Real-Time Data Pipelines: Stream & Batch Processing workshop Slide
Building Real-Time Data Pipelines: Stream & Batch Processing workshop SlideBuilding Real-Time Data Pipelines: Stream & Batch Processing workshop Slide
Building Real-Time Data Pipelines: Stream & Batch Processing workshop SlideChristina Lin
 
buds n tech IT solutions
buds n  tech IT                solutionsbuds n  tech IT                solutions
buds n tech IT solutionsmonugehlot87
 
Building a General PDE Solving Framework with Symbolic-Numeric Scientific Mac...
Building a General PDE Solving Framework with Symbolic-Numeric Scientific Mac...Building a General PDE Solving Framework with Symbolic-Numeric Scientific Mac...
Building a General PDE Solving Framework with Symbolic-Numeric Scientific Mac...stazi3110
 
Der Spagat zwischen BIAS und FAIRNESS (2024)
Der Spagat zwischen BIAS und FAIRNESS (2024)Der Spagat zwischen BIAS und FAIRNESS (2024)
Der Spagat zwischen BIAS und FAIRNESS (2024)OPEN KNOWLEDGE GmbH
 
ODSC - Batch to Stream workshop - integration of Apache Spark, Cassandra, Pos...
ODSC - Batch to Stream workshop - integration of Apache Spark, Cassandra, Pos...ODSC - Batch to Stream workshop - integration of Apache Spark, Cassandra, Pos...
ODSC - Batch to Stream workshop - integration of Apache Spark, Cassandra, Pos...Christina Lin
 
Russian Call Girls in Karol Bagh Aasnvi ➡️ 8264348440 💋📞 Independent Escort S...
Russian Call Girls in Karol Bagh Aasnvi ➡️ 8264348440 💋📞 Independent Escort S...Russian Call Girls in Karol Bagh Aasnvi ➡️ 8264348440 💋📞 Independent Escort S...
Russian Call Girls in Karol Bagh Aasnvi ➡️ 8264348440 💋📞 Independent Escort S...soniya singh
 
Implementing Zero Trust strategy with Azure
Implementing Zero Trust strategy with AzureImplementing Zero Trust strategy with Azure
Implementing Zero Trust strategy with AzureDinusha Kumarasiri
 
Project Based Learning (A.I).pptx detail explanation
Project Based Learning (A.I).pptx detail explanationProject Based Learning (A.I).pptx detail explanation
Project Based Learning (A.I).pptx detail explanationkaushalgiri8080
 

Recently uploaded (20)

Intelligent Home Wi-Fi Solutions | ThinkPalm
Intelligent Home Wi-Fi Solutions | ThinkPalmIntelligent Home Wi-Fi Solutions | ThinkPalm
Intelligent Home Wi-Fi Solutions | ThinkPalm
 
Professional Resume Template for Software Developers
Professional Resume Template for Software DevelopersProfessional Resume Template for Software Developers
Professional Resume Template for Software Developers
 
Short Story: Unveiling the Reasoning Abilities of Large Language Models by Ke...
Short Story: Unveiling the Reasoning Abilities of Large Language Models by Ke...Short Story: Unveiling the Reasoning Abilities of Large Language Models by Ke...
Short Story: Unveiling the Reasoning Abilities of Large Language Models by Ke...
 
What is Binary Language? Computer Number Systems
What is Binary Language?  Computer Number SystemsWhat is Binary Language?  Computer Number Systems
What is Binary Language? Computer Number Systems
 
What is Fashion PLM and Why Do You Need It
What is Fashion PLM and Why Do You Need ItWhat is Fashion PLM and Why Do You Need It
What is Fashion PLM and Why Do You Need It
 
(Genuine) Escort Service Lucknow | Starting ₹,5K To @25k with A/C 🧑🏽‍❤️‍🧑🏻 89...
(Genuine) Escort Service Lucknow | Starting ₹,5K To @25k with A/C 🧑🏽‍❤️‍🧑🏻 89...(Genuine) Escort Service Lucknow | Starting ₹,5K To @25k with A/C 🧑🏽‍❤️‍🧑🏻 89...
(Genuine) Escort Service Lucknow | Starting ₹,5K To @25k with A/C 🧑🏽‍❤️‍🧑🏻 89...
 
EY_Graph Database Powered Sustainability
EY_Graph Database Powered SustainabilityEY_Graph Database Powered Sustainability
EY_Graph Database Powered Sustainability
 
XpertSolvers: Your Partner in Building Innovative Software Solutions
XpertSolvers: Your Partner in Building Innovative Software SolutionsXpertSolvers: Your Partner in Building Innovative Software Solutions
XpertSolvers: Your Partner in Building Innovative Software Solutions
 
Call Girls In Mukherjee Nagar 📱 9999965857 🤩 Delhi 🫦 HOT AND SEXY VVIP 🍎 SE...
Call Girls In Mukherjee Nagar 📱  9999965857  🤩 Delhi 🫦 HOT AND SEXY VVIP 🍎 SE...Call Girls In Mukherjee Nagar 📱  9999965857  🤩 Delhi 🫦 HOT AND SEXY VVIP 🍎 SE...
Call Girls In Mukherjee Nagar 📱 9999965857 🤩 Delhi 🫦 HOT AND SEXY VVIP 🍎 SE...
 
The Evolution of Karaoke From Analog to App.pdf
The Evolution of Karaoke From Analog to App.pdfThe Evolution of Karaoke From Analog to App.pdf
The Evolution of Karaoke From Analog to App.pdf
 
Try MyIntelliAccount Cloud Accounting Software As A Service Solution Risk Fre...
Try MyIntelliAccount Cloud Accounting Software As A Service Solution Risk Fre...Try MyIntelliAccount Cloud Accounting Software As A Service Solution Risk Fre...
Try MyIntelliAccount Cloud Accounting Software As A Service Solution Risk Fre...
 
The Essentials of Digital Experience Monitoring_ A Comprehensive Guide.pdf
The Essentials of Digital Experience Monitoring_ A Comprehensive Guide.pdfThe Essentials of Digital Experience Monitoring_ A Comprehensive Guide.pdf
The Essentials of Digital Experience Monitoring_ A Comprehensive Guide.pdf
 
Building Real-Time Data Pipelines: Stream & Batch Processing workshop Slide
Building Real-Time Data Pipelines: Stream & Batch Processing workshop SlideBuilding Real-Time Data Pipelines: Stream & Batch Processing workshop Slide
Building Real-Time Data Pipelines: Stream & Batch Processing workshop Slide
 
buds n tech IT solutions
buds n  tech IT                solutionsbuds n  tech IT                solutions
buds n tech IT solutions
 
Building a General PDE Solving Framework with Symbolic-Numeric Scientific Mac...
Building a General PDE Solving Framework with Symbolic-Numeric Scientific Mac...Building a General PDE Solving Framework with Symbolic-Numeric Scientific Mac...
Building a General PDE Solving Framework with Symbolic-Numeric Scientific Mac...
 
Der Spagat zwischen BIAS und FAIRNESS (2024)
Der Spagat zwischen BIAS und FAIRNESS (2024)Der Spagat zwischen BIAS und FAIRNESS (2024)
Der Spagat zwischen BIAS und FAIRNESS (2024)
 
ODSC - Batch to Stream workshop - integration of Apache Spark, Cassandra, Pos...
ODSC - Batch to Stream workshop - integration of Apache Spark, Cassandra, Pos...ODSC - Batch to Stream workshop - integration of Apache Spark, Cassandra, Pos...
ODSC - Batch to Stream workshop - integration of Apache Spark, Cassandra, Pos...
 
Russian Call Girls in Karol Bagh Aasnvi ➡️ 8264348440 💋📞 Independent Escort S...
Russian Call Girls in Karol Bagh Aasnvi ➡️ 8264348440 💋📞 Independent Escort S...Russian Call Girls in Karol Bagh Aasnvi ➡️ 8264348440 💋📞 Independent Escort S...
Russian Call Girls in Karol Bagh Aasnvi ➡️ 8264348440 💋📞 Independent Escort S...
 
Implementing Zero Trust strategy with Azure
Implementing Zero Trust strategy with AzureImplementing Zero Trust strategy with Azure
Implementing Zero Trust strategy with Azure
 
Project Based Learning (A.I).pptx detail explanation
Project Based Learning (A.I).pptx detail explanationProject Based Learning (A.I).pptx detail explanation
Project Based Learning (A.I).pptx detail explanation
 

Cf objective2014 software-craftsmanship

  • 1. Kev McCabe CF Objective 2014 Thursday 15th May http://bit.ly/softwareCraft
  • 2. Software Craftsmanship Mentor @ General Electric • ColdFusion since 1996 (v2) • London CFML &Web Community Leader • Scrum Master • Kanban Practitioner • Agile Coach T: @bigmadkev W: BigMadKev.com http://bit.ly/softwareCraft
  • 4.  You may have questions to ask  Please note them, and put your email/twitter/name  I’ll follow up with you at a later stage  Or discuss here if time permits  Please place into the box at the front here
  • 5. Individuals and interactions over processes and tools Working software over comprehensive documentation Customer collaboration over contract negotiation Responding to change over following a plan http://bit.ly/softwareCraft
  • 6. We adoptedAgile and now things will be OK … and the AgileTransformation Era began. http://bit.ly/softwareCraft
  • 7. … people, interactions, team building, the ecosystem Process and Interactions became more important than technical practices http://bit.ly/softwareCraft
  • 8.  Many Agile projects are now, steadily and iteratively, producing shit crap mediocre software. http://bit.ly/softwareCraft
  • 9. We want to get things done... … but we are under pressure http://bit.ly/softwareCraft
  • 10. But what is to be Agile anyway? http://bit.ly/softwareCraft
  • 11. 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. http://bit.ly/softwareCraft
  • 13. 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
  • 14. Software Craftsmanship is all about putting responsibility, professionalism, pragmatism and pride back into software development http://bit.ly/softwareCraft
  • 15. How do we know we are building the right thing? How do we know we are building the thing right? http://bit.ly/softwareCraft
  • 17.  Automated testing  Test first  Test-Driven Development  Pair-programming  Continuous Integration http://bit.ly/softwareCraft
  • 18. Mastering the practices is hard … … and that's why we practice http://bit.ly/softwareCraft
  • 19. Perfect practice  (narrowing the gap) http://bit.ly/softwareCraft
  • 20. Software Craftsmanship is a long journey to mastery http://bit.ly/softwareCraft
  • 21. - Owning your career - Not a 9 to 5 profession - Practice - Boy Scout rule - Expecting promotions http://bit.ly/softwareCraft
  • 22.  Learn stuff all the time  Small and often  You don’t want to be out of work and having a large learn curve http://bit.ly/softwareCraft
  • 25.  Seniority is subjective and transient http://bit.ly/softwareCraft
  • 26. The attitude towards legacy code http://bit.ly/softwareCraft
  • 27. Why would we want to be better developers? http://bit.ly/softwareCraft
  • 28. … 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 http://bit.ly/softwareCraft
  • 30.  Stop...  … being miserable and negative  … spreading your frustrations http://bit.ly/softwareCraft
  • 31.  The only way to have people buying into what you believe is if they see you happy. http://bit.ly/softwareCraft
  • 32.  Craftsmanship is not enough to guarantee the success of a project but the lack of it can be the main cause of its failure http://bit.ly/softwareCraft
  • 33.  Agile and Craftsmanship complement each other and both are necessary.  Agile processes assume technical excellence and a professional attitude.  SoftwareCraftsmanship takes technical excellence and professionalism to a whole new level. http://bit.ly/softwareCraft
  • 34.  Meaningful Names  Short Functions  Single Responsibility Principal  Minimal Arguments  Show intent  No need for comments  Formatting  UnitTesting http://bit.ly/softwareCraft
  • 37.  Easy to scan  Expressive layout  Compact format  Code is written once and Read ∞ http://bit.ly/softwareCraft
  • 38.  1st edition 1974  2nd edition 1978  56 lessons  Most of which are still valid today  Book costs $150+ http://bit.ly/softwareCraft
  • 40. 1. Write clearly -- don't be too clever. 2. Say what you mean, simply and directly. 3. Write clearly -- don't sacrifice clarity for efficiency. 4. Replace repetitive expressions by calls to common functions. 5. Parenthesize to avoid ambiguity. 6. Choose variable names that won't be confused. 7. Write first in easy-to-understand pseudo language; then translate into whatever language you have to use. 8. Modularize. Use procedures and functions. 9. Don't patch bad code -- rewrite it. 10. Write and test a big program in small pieces. 11. Check some answers by hand 11. Make it right before you make it faster. 12. Make it fail-safe before you make it faster. 13. Make it clear before you make it faster. 14. Don't sacrifice clarity for small gains in efficiency. 15. Don't strain to re-use code; reorganize instead. 16. Make sure special cases are truly special. 17. Keep it simple to make it faster. 18. Don't just echo the code with comments -- make every comment count. 19. Don't comment bad code -- rewrite it. 20. Use variable names that mean something. 21. Format a program to help the reader understand it. 22. Don't over-comment. http://bit.ly/softwareCraft
  • 41.
  • 42.
  • 43.  Ebook on Lean Pub  Written by the London Software Craftsmanship Community Manager  https://leanpub.com/socra http://bit.ly/softwareCraft
  • 44.  Clean Code  Robert “Uncle Bob” Martin  Changes your thought process  +Videos  Also Clean Coders – More about your career http://bit.ly/softwareCraft
  • 45.  Extreme Programming Explained: Embrace Change  Kent Back  GoodTechnical Practices http://bit.ly/softwareCraft
  • 46.  Working Effectively with Legacy Code  Michael Feathers http://bit.ly/softwareCraft
  • 47.  Today @ 3pm  In ad hoc room (next to lunch room)  LearnTDD / BDD Principles without code  Open to all http://bit.ly/softwareCraft
  • 49. Happy to work with people over Google hangout / Skype. UKTime (After lunch EST/Before Lunch PST) FREE / AmazonWish list  T: @bigmadkev S:bigmadkev W: BigMadKev.com http://bit.ly/softwareCraft