Presentation is loading. Please wait.

Presentation is loading. Please wait.

Software Craftsmanship Raising the bar for software development

Similar presentations


Presentation on theme: "Software Craftsmanship Raising the bar for software development"— Presentation transcript:

1 Software Craftsmanship Raising the bar for software development
Southern Fried Agile October 2015

2 Who am I? Chris Mair Software developer/architect at Wells Fargo.
Open source: CodeNarc, GMetrics and MockFtpServer projects; Uptime Jenkins plugin.

3 What is Craftsmanship? Long journey to mastery

4 What is Craftsmanship? Improving Software Development Gaining mastery

5 What is Craftsmanship? More than just “high-quality work”
Mindset and attitude

6 What is Craftsmanship? Reputation Integrity

7 What is Craftsmanship? Long-term career

8 A Brief History The Pragmatic Programmer, 1999
Software Craftsmanship, 2001 Manifesto for Software Craftsmanship, 2009 The Clean Coder, 2011 The Software Craftsman, 2014

9 The Pragmatic Programmer:
From Journeyman to Master Andrew Hunt and David Thomas, 1999

10 The Pragmatic Programmer
Care about our craft Sign our work

11 The Pragmatic Programmer
Options, not excuses Knowledge portfolio

12 The Pragmatic Programmer
Culture of testing Responsibility

13 Software Craftsmanship:
The New Imperative Pete McBreen, 2001

14 Software Craftsmanship
Antidote for software engineering Developer skill and experience

15 Software Craftsmanship
Developer portfolio Maintainability Apprenticeship

16 Software Craftsmanship
Controversial Longevity

17 Software Craftsmanship
Controversial Outsourcing

18 Software Craftsmanship
Controversial Maintenance is high-status Right of refusal

19 A Code of Conduct for Professional Programmers
The Clean Coder: A Code of Conduct for Professional Programmers Robert C. Martin, 2011

20 The Clean Coder Craftsmanship Professionalism Responsibility Humility

21 The Software Craftsman: Professionalism, Pragmatism, Pride
Sandro Mancuso, 2014

22 The Software Craftsman
Technical excellence Care for your craft Invest in your career

23 The Software Craftsman
Sharing Mentoring

24 The Software Craftsman
Controversial “Many Agile projects are now, steadily and iteratively, producing crap code.”

25 Why? Agile hangover

26 Why? Lack of technical excellence

27 Why? Poor design and sloppy code Lack of confidence

28 Why? Software must remain easy, safe and inexpensive to change.

29 Why? Culture Quality and maintainability

30 Why? Autonomy Mastery Purpose

31 Values Professionalism Integrity Responsibility Reputation
Continuous learning Pragmatism Humility

32 Professionalism Say “no” when necessary
Clear and unambiguous commitments Mentoring

33 Professionalism Controversial Learn and practice on your own time

34 Professionalism Controversial Manage your own time

35 Professionalism “I didn’t say it was your fault,
I said I was blaming you.” – Winston Churchill

36 Professionalism Controversial Is good code impossible?

37 Professionalism Controversial Is good code impossible?

38 Professionalism Controversial A series of unfortunate events…

39 Professionalism Controversial A series of unfortunate events…

40 Integrity Adherence to principles and values Courage

41 Responsibility Personal responsibility For your work
For your personal development For your profession

42 Responsibility Responsibility accepted, not assigned

43 Reputation Quality Successful projects Satisfied customers

44 Continuous Learning Read Practice Fail

45 Pragmatism “Idealism is fine, but the cost becomes prohibitive as it approaches reality” – William F. Buckley

46 “Nothing so needs reforming as other people’s habits.”
Humility “Nothing so needs reforming as other people’s habits.” – Mark Twain

47 Humility Honest about shortcomings Respect for others

48 Practices Consistent Shaped by values

49 Extreme Programming Software development discipline
Values, principles and practices

50 Extreme Programming Test-Driven Development (TDD) Pair Programming
Refactoring Continuous Integration Coding Standard Sustainable Pace …

51 Adopting Practices Productivity

52 Automated Testing Engineering rigor; hygiene Required

53 Automated Testing Controversial Not a separate task

54 Automated Testing Defect Cost Increase (DCI)

55 Automated Testing Testing is a skill Testing improves design

56 Automated Testing

57 Automated Testing Manual testing

58 Other Stuff …

59 Code Quality Productivity Transparency Procrastination

60 Code Quality Quality is always expected!

61 Legacy Code Scary codebase Tests and “seams”
Working Effectively with Legacy Code Tests and “seams”

62 Your Career

63 Your Career Controversial Getting promoted away from your craft

64 Managers Collaboration Enlightened managers Transparency

65 Compensation Controversial Pay based on value

66 Compensation Controversial More valuable than managers

67 Craftsmanship vs Agile
Complementary Process versus technical discipline Building the right thing; building it right

68 The Manifesto for Software Craftsmanship
2009

69 The Manifesto for Software Craftsmanship
“As aspiring Software Craftsmen we are raising the bar of professional software development by practicing it and helping others learn the craft. Through this work we have come to value:”

70 The Manifesto for Software Craftsmanship
“Not only working software, but also well-crafted software”

71 The Manifesto for Software Craftsmanship
“Not only responding to change, but also steadily adding value”

72 The Manifesto for Software Craftsmanship
“Not only individuals and interactions, but also a community of professionals”

73 The Manifesto for Software Craftsmanship
“Not only customer collaboration, but also productive partnerships”

74 Criticisms of Manifesto
Impossible to disagree

75 General Criticisms Romantic notions and nostalgia

76 General Criticisms Prima donnas

77 Challenges Developer discipline

78 Challenges Customer responsibility Economics

79 Challenges “Adolescent surety”

80 Challenges Internal quality

81 Call to Action Raise the bar

82 Call to Action

83 Call to Action Passion and Mentoring

84 Call to Action Maintenance as a high-status job

85 Call to Action Technical practices

86 Call to Action Testable and maintainable

87 Call to Action Skepticism and resistance

88 That’s All Folks… Thank you

89 References Extreme Programming Explained: Embrace Change, 2nd Edition, Kent Beck, and Cynthia Andres, Addison Wesley, 2004. Working Effectively with Legacy Code, Michael Feathers, Prentice Hall, 2004. The Pragmatic Programmer: From Journeyman to Master, Andrew Hunt and David Thomas, Addison- Wesley, 1999 The Software Craftsman: Professionalism, Pragmatism, Pride, Sandro Mancuso, Prentice Hall, 2014 Software Craftsmanship: The New Imperative, Pete McBreen, Addison-Wesley, 2001 The Clean Coder, Robert C. Martin, Prentice Hall, 2011 Drive: The Surprising Truth About What Motivates Us, Daniel Pink, Riverhead Books, 2011. “Programming is not a Craft”, Dan North, 2011 ( craft/) The Manifesto of Software Craftsmanship, 2009 (

90 Image Credits


Download ppt "Software Craftsmanship Raising the bar for software development"

Similar presentations


Ads by Google