CF Camp 2013 Software Craftsmanship for CFML Developers

42

Transcript of CF Camp 2013 Software Craftsmanship for CFML Developers

Page 1: CF Camp 2013 Software Craftsmanship for CFML Developers
Page 2: 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

Page 3: CF Camp 2013 Software Craftsmanship for CFML Developers

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.

Page 4: CF Camp 2013 Software Craftsmanship for CFML Developers

We adopted Agile and now things

will be OK

… and the Agile Transformation

Era began.

Page 5: CF Camp 2013 Software Craftsmanship for CFML Developers

And then we spend 10 year

focusing on...

… people, interactions, team building, the ecosystem

Process and Interactions became more important than

technical practices

Page 6: CF Camp 2013 Software Craftsmanship for CFML Developers

The Agile Hangover

Many Agile projects are now, steadily and iteratively, producing crapmediocre software.

Page 7: CF Camp 2013 Software Craftsmanship for CFML Developers

We want to get things

done...

… but we are under

pressure

Page 8: CF Camp 2013 Software Craftsmanship for CFML Developers

The wrong notion of

time

Page 9: CF Camp 2013 Software Craftsmanship for CFML Developers

But what is to be Agile

anyway?

Page 10: CF Camp 2013 Software Craftsmanship for CFML Developers

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.

Page 11: CF Camp 2013 Software Craftsmanship for CFML Developers

The invisible threat

Code

quality

Time per

feature

Page 12: CF Camp 2013 Software Craftsmanship for CFML Developers

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

Page 13: CF Camp 2013 Software Craftsmanship for CFML Developers

What is Software

Craftsmanship?

Software Craftsmanship is all about putting

responsibility, professionalism, pragmatism and

pride back into software development

Page 14: CF Camp 2013 Software Craftsmanship for CFML Developers

Does context matter?

Does it always matter?

Page 15: CF Camp 2013 Software Craftsmanship for CFML Developers

How do we know we are building the right thing?

How do we know we are building the thing right?

Page 16: CF Camp 2013 Software Craftsmanship for CFML Developers
Page 17: CF Camp 2013 Software Craftsmanship for CFML Developers

Adding value through practice

Automated testing

Test first

Test-Driven Development

Pair-programming

Continuous Integration

Page 18: CF Camp 2013 Software Craftsmanship for CFML Developers

Don't discuss practices,

discuss value.

Page 19: CF Camp 2013 Software Craftsmanship for CFML Developers

Healthy Intolerance

How can you add more value and/or

have smaller feedback cycles when not

using our practices?

Page 20: CF Camp 2013 Software Craftsmanship for CFML Developers

Mastering the practices is hard …

… and that's why we practice

Page 21: CF Camp 2013 Software Craftsmanship for CFML Developers

Perfect practice(narrowing the gap)

Page 22: CF Camp 2013 Software Craftsmanship for CFML Developers

Software Craftsmanship

is a long journey to

mastery

Page 23: CF Camp 2013 Software Craftsmanship for CFML Developers

Software Craftsmanship

Attitude

- Owning your career

- Not a 9 to 5 profession

- Practice

- Boy scout rule

- Expecting promotions

Page 24: CF Camp 2013 Software Craftsmanship for CFML Developers

Seniority is subjective and

transient

Page 25: CF Camp 2013 Software Craftsmanship for CFML Developers

The attitude towards

legacy code

Page 26: CF Camp 2013 Software Craftsmanship for CFML Developers

Why would we want to be

better developers?

Page 27: CF Camp 2013 Software Craftsmanship for CFML 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

Page 28: CF Camp 2013 Software Craftsmanship for CFML Developers

Raising the Bar

Page 29: CF Camp 2013 Software Craftsmanship for CFML Developers

Stop...

… being miserable and

negative

… spreading your frustrations

Page 30: CF Camp 2013 Software Craftsmanship for CFML Developers

The only way to have people

buying into what you believe is if

they see you happy.

Page 31: CF Camp 2013 Software Craftsmanship for CFML Developers

Craftsmanship is not enough to

guarantee the success of a project

but the lack of it can be the main

cause of its failure

Page 32: CF Camp 2013 Software Craftsmanship for CFML Developers

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.

Page 33: CF Camp 2013 Software Craftsmanship for CFML Developers

Clean Code

Meaningful Names

Short Functions Single Responsibility Principal

Minimal Arguments

Show intent No need for comments

Formatting

Unit Testing

Page 34: CF Camp 2013 Software Craftsmanship for CFML Developers

Unit Testing

Page 35: CF Camp 2013 Software Craftsmanship for CFML Developers

Code Reviews

Page 36: CF Camp 2013 Software Craftsmanship for CFML Developers

Code Layout Matters

Easy to scan

Expressive layout

Compact format

Code is written once and Read ∞

Page 37: CF Camp 2013 Software Craftsmanship for CFML Developers

Books

Ebook on Lean Pub

Written by the London

Software Craftsmanship

Community Manager

https://leanpub.com/socra

Page 38: CF Camp 2013 Software Craftsmanship for CFML Developers

Clean Code

Uncle Bob (Bob martin)

Changes your thought process

Also Clean Coders –More about your career

Page 39: CF Camp 2013 Software Craftsmanship for CFML Developers

Extreme Programming

Explained: Embrace

Change

Kent Back

Good Technical

Practices

Page 40: CF Camp 2013 Software Craftsmanship for CFML Developers

Working Effectively with

Legacy Code

Michael Feathers

Page 41: CF Camp 2013 Software Craftsmanship for CFML Developers

Questions

Page 42: CF Camp 2013 Software Craftsmanship for CFML Developers

Contact Me

T: @bigmadkev

W: BigMadKev.com