Software Craftsmanship

Slides:



Advertisements
Similar presentations
Assertiveness KNR 253 Jakubowski & Lange, 1978 Much information on Internet.
Advertisements

James Tam User Centered Design Why User Centered Design is important Approaches to User Centered Design.
Computer Engineering 203 R Smith Agile Development 1/ Agile Methods What are Agile Methods? – Extreme Programming is the best known example – SCRUM.
Welcome to my conference! February th grade Taneal.
Software Craftsmanship Raising the bar for software development
Do my 8 th grade science students know how to search the internet to find accurate information?
LB160 (Professional Communication Skills For Business Studies)
Being a Good Listener. QUOTE: “Everyone should be quick to listen, slow to speak.” (Bible)
Monday. In 2-3 sentences, explain what you think this quote means… “Before I can walk in another’s shoes, I must first remove my own.”
Reported Speech (Junior Secondary) Poon, Ka Chun Jason; Lee, Fung King Jackie The Education University of Hong Kong 1.
Applying and Interviewing
Communication skills How speaking and listening make life easier, more productive, and more fun!
ENGLISH FOR PROFESSIONAL COMMUNICATION
Helping you succeed in promoting your club
Planning Your Courses   The Planning phase of course development is a necessary activity for any successful E-learning project. The steps below should.
Questions and Ponderings On “Life”
What is a CAT? What is a CAT?.
When asked to name the most common skills gaps they encounter in recruiting, responding HR professionals noted CRITICAL THINKING and PROBLEM-SOLVING, professionalism.
MULTIPLE LITERACIES & LIBRARY INSTRUCTION
Classroom management Organization, organization, organization!
Welcome to 3rd Grade Mathematics
Research Skills Workshop
Measuring Sources of Brand Equity: Capturing Customer Mind-Set
Know Your Talents, Grow Your Strengths
The Talking Together Programme
Providing Excellent Customer Service in HFS
Ethical Dilemmas in Leadership
Reading Workshop 1st November 2017
The Need for Algorithms 2 days
Thursday Lesson 15, Day 4.
Software Quality Engineering CS- 449
Ethics and Financial Services
Testing testing: developing tests to support our teaching and learning
What are the literal and figurative meanings of these sentences?
مهارات الاتصال الفعال2 اعداد د.حسين محمد أحمد عبد الباسط
INF 103 Education for Service-- tutorialrank.com
College & Career Awareness
HOW TO SUCCEED AT JASPER PLACE HIGH SCHOOL
Training Students at ICDC
Various Leadership Concepts
English I Bell Work 6 May 2016 On the top of your sheet, answer the following question: How do advertisers try to influence customers?
Decomposition.
Teaching Listening Based on Active Learning.
Writing the Document Based Question (DBQ) Essay
Personal Mastery (Senge’s Five Disciplines)
Exemplary Ethics: The Five Principles of Ethical Power!
Talking about Implications for
Reading Nonfiction.
RESILIENCE Assembly.
Tesomajärven koulu Primary School: Classes 1-6 (7-13-year-olds)
Reader’s Notebook Goal: I will use my Reader’s Notebook to help facilitate my comprehension of my novel by completing activities using reading skills.
Recap of Aristotle So Far…
Responsibility and Organization
Developing a Plan Chapter 2.
FS Online Module Teacher's Manual
Making the Least Dangerous Assumption
The Why and How of Poetry Analysis
Hard Skills vs. Soft Skills
Mrs. Fisher’s Class Procedures
We know who they are and what they do, but how do we help them?
Habit #5 – Seek First to Understand, Then Be Understood (Part 1)
Networking Workshop (2)
Human Resources Management: Module 3 Setting Performance Goals
Understanding How We Learn
YOUR FUTURE AND INFORMATION TECHNOLOGY
How to be an effective Learning Helper in the classroom
Serving the Reference Needs of Non-textbook Students
Habit #5 – Seek First to Understand, Then Be Understood
Habit #5 – Seek First to Understand, Then Be Understood (Part 1)
Active Listening 28 Aug 02 MSL102_06 - Active Listening.
Presentation transcript:

Software Craftsmanship Jerry Fitzpatrick

Some Definitions Extracted from www.dictionary.com Engineering – Art – The art or science of making practical application of the knowledge of pure sciences (e.g. physics or chemistry) Art – Any field using the skills or techniques of art (the class of objects subject to aesthetic criteria) Craft – An art, trade, or occupation requiring special skill Copyright 2009 Software Renovation Corporation. All rights reserved.

Software Engineering From Pete McBreen – “A key failing of the software engineering metaphor is that it fails to place people at the center of the software development process.” “A very big gap separates requirements specifications and design specifications, and when we forget this distinction, we may confuse ourselves into thinking that software development is easy. Skilled developers are the only way to [ bridge the gap between requirements and design ].” Copyright 2009 Software Renovation Corporation. All rights reserved.

Traits of a Professional A group exercise: what are the traits of a professional – in any field, not just software? Copyright 2009 Software Renovation Corporation. All rights reserved.

Traits of a Professional (continued) Competent – Has suitable skill, knowledge and experience for some purpose Is ethical – Follows established rules or standards of conduct Is introspective – Is aware of things she knows and things she doesn’t know Has pride in workmanship – Prefers a job done well over a sloppy job Does not pretend to have knowledge or skills she doesn’t have Aspires to improve – Seeks more knowledge, more skill and better techniques Copyright 2009 Software Renovation Corporation. All rights reserved.

Ignorance Ignorance means a lack of knowledge Completely different than “stupid” All of us are ignorant about many subjects Five orders of ignorance were defined in an ACM article in October 2000 – Somewhat tongue-in-cheek Psychological studies have shown somewhat surprising results about ignorance Story about bank robber and invisible ink. Copyright 2009 Software Renovation Corporation. All rights reserved.

The Dunning-Kruger Effect The Dunning-Kruger effect is a mental bias in which unskilled individuals assess their ability to be much higher than it actually is. Conversely, highly skilled individuals tend to underestimate their competence, assuming that tasks which are easy for them are also easy for others. An irony from David Dunning – “If you’re incompetent, you can’t know you’re incompetent… the skills you need to produce a right answer are exactly the skills you need to recognize what a right answer is.” This quote is perhaps exaggerated. However, it reminds me of the old saying about “Knowing just enough to be dangerous.” Copyright 2009 Software Renovation Corporation. All rights reserved.

What is Software Craftsmanship? Software Craftsmanship is simply an ideology that promotes professionalism in software development Not only doing things right, but doing the right thing The craftsmanship metaphor is based on age-old traditions in other fields Novices learn from junior craftsmen Junior craftsmen learn from senior craftsmen Senior craftsmen learn from master craftsmen There are many paths to experience But only a few paths lead to real skill or enlightenment Most people need a guide to find one of the paths to enlightenment An ideology is a manner of thinking or system of thinking. Experience itself does not lead to skill or enlightenment. Many paths lead nowhere. The trick is to find a guide who can put you on one of the paths to enlightenment. Copyright 2009 Software Renovation Corporation. All rights reserved.

The Craftsmanship Manifesto 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 http://manifesto.softwarecraftsmanship.org/ Copyright 2009 Software Renovation Corporation. All rights reserved.

A Story From Sandro Mancuso (1) Asked to work for a very respected manager named Namur. On his first day, Sandro was assigned a small task and given a week to finish it. Sandro Mancuso is a developer, and author of the popular book “The Software Craftsman: Professionalism, Pragmatism, Pride”. Copyright 2009 Software Renovation Corporation. All rights reserved.

A Story From Sandro Mancuso (2) To impress Namur, Sandro worked until midnight, slept a few hours, arrived early the next morning and rushed into Namur’s office saying “It’s done. I finished it. And it is working.” Copyright 2009 Software Renovation Corporation. All rights reserved.

A Story From Sandro Mancuso (3) Namur stopped typing, turned to Sandro, then said “Making things work is the minimum I expect from someone who is paid for it.” From “The Software Craftsman”, preface, page xix. Copyright 2009 Software Renovation Corporation. All rights reserved.

A Story From Sandro Mancuso (4) Namur spent an hour reviewing the 200 lines of code with Sandro, asking many questions and describing how the code could be improved. At the end, Namur said “How it is done is as important as getting it done. “Do you feel you could write this code in a better way now?” From “The Software Craftsman”, preface, page xix. Copyright 2009 Software Renovation Corporation. All rights reserved.

A Story From Sandro Mancuso (5) After Sandro nodded yes, Namur deleted the entire code file and said “Excellent. Since you still have three days left, do it again.” From “The Software Craftsman”, preface, page xix. How do you feel about this? This may seem harsh, but Namur did two important things: 1) He emphasized his expectations of developers, and 2) He taught Sandro that the ability to write code is less important than writing GOOD code. Copyright 2009 Software Renovation Corporation. All rights reserved.

Points to Ponder Arrogance is not an accurate measure of competence Arrogance is more likely to indicate ignorance Experience is not an accurate measure of competence A person can have years of experience, yet have few skills Trying is necessary for competence, but not sufficient Trying, by itself, does not produce competence Performance is the only true measure of competence The person can apply their knowledge to create something that not only works, but also is well-crafted Copyright 2009 Software Renovation Corporation. All rights reserved.

Final Notes There is a famous scene from Star Wars: The Empire Strikes Back, where Yoda asks Luke Skywalker to use the Force to lift his spacecraft from a swamp – Luke: All right, I’ll give it a try. Yoda: No. Try not. Do, or do not. There is no try. Boxers don’t succeed by working out and being clever. They succeed by winning boxing matches. Copyright 2009 Software Renovation Corporation. All rights reserved.

References Software Craftsmanship: The New Imperative, Pete McBreen, Addison Wesley, 2002 The Clean Coder: A Code of Conduct for Professional Programmers, Robert C. Martin, Prentice Hall, 2011 The Software Craftsman: Professionalism, Pragmatism, Pride, Sandro Mancuso, Prentice Hall, 2015 Copyright 2009 Software Renovation Corporation. All rights reserved.

Questions & Comments Copyright 2009 Software Renovation Corporation. All rights reserved.