CF Camp 2013 Software Craftsmanship for CFML Developers
-
Upload
kev-mccabe -
Category
Technology
-
view
434 -
download
1
Transcript of CF Camp 2013 Software Craftsmanship for CFML Developers
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 crapmediocre 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 toolsWorking software over comprehensive documentation
Customer collaboration over contract negotiationResponding to change over following a plan
That is, while there is value in the items onthe right, we value the items on the left more.
The invisible threat
Code
quality
Time per
feature
Manifesto for Software Craftsmanshipraising 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 softwareNot only responding to change,
but also steadily adding valueNot only individuals and interactions,
but also a community of professionalsNot 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