Date post: | 14-Apr-2017 |
Category: |
Software |
Upload: | paulwpagel |
View: | 455 times |
Download: | 0 times |
Software Craftsmanship
Agile ManifestoWe 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 actions 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.
• Individuals and actions over processes and tools
• Working software over comprehensive documentation
• Customer collaboration over contract negotiation
• Responding to change over following a plan
• Individuals and actions over processes and tools
• Working software over comprehensive documentation
• Customer collaboration over contract negotiation
• Responding to change over following a plan
• Craftsmanship over crap!
software craftsmanship summit
Publication
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:
the software craftsmanship manifesto
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:
the software craftsmanship manifesto
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:
the software craftsmanship manifesto
Raising the bar
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:
the software craftsmanship manifesto
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:
the software craftsmanship manifesto
Not only working software, butwell-crafted software
Not only responding to change, butsteadily adding value
Not only individuals and interactions, but alsoa community of professionals
Not only customer collaboration, butproductive partnerships
Modern Apprenticeship
• Internship • College • Code Schools
Student
• Immersive learning • Theory and practice • Teacher driven
Student
• Goal is to find vocation
Student
Vocation is the deliberate decision to combine your passions and aptitude to a life-long pursuit of craft.
Vocation
“Code is an end in itself, not just a means.” —Brian Marick
• Training focused • Entry level employment • Apprenticeship programs
Resident
• Deliberate practice • Teaching and Mentoring • Delivering value
Resident
• Goal is to find a mentor and practice writing software.
Resident
Humanizes the material and can use empathy to create motivation or inspiration.
Mentor
• Suzuki method - Katas, randori • Breakable toys - constrained wild
Deliberate Practice
• Working with a team on a project • Delivering quality code • Full time employment
Craftsman
• Continued learning • Building intuition • Code of ethics
Craftsman
• Goal is professionalism !
Craftsman
• System 1 vs. System 2 thinking • Concentration - pomodoro, pairing
Intuition
Software code of ethics
Apprenticeship
Utilitarianism
Proper course of action is the one that maximizes utility and reduces suffering.
John Stuart Mill
Veil of Ignorance
Blocks off knowledge, such that one does not know what burdens and benefits of social cooperation might fall to him/her once the veil is lifted.
John Rawls
• We do X. !
• We do not do Y.
well-crafted software
• We humbly demonstrate our expertise by delivering quality software.
!
• We do not inflate our abilities or claim expertise where we have none.
• We continually master a variety of technologies and techniques.
!
• We do not let unfamiliarity dissuade us from using the best tools.
• We take responsibility for the correctness of our code by testing it thoroughly.
!
• We do not tolerate preventable defects.
• We estimate with diligence. !
• We do not let fear or pressure make us promise what we can't deliver.
steadily adding value
• We always apply our best efforts to complete our work.
!
• We do not make excuses.
• We work at a sustainable pace. !
• We do not burn out.
a community of professionals
• We embrace differences of opinion and personality.
• We do not allow our current practice to impede improvements.
• We prefer open source tools that we can inspect, evaluate, and improve.
• We avoid proprietary products that lack transparency.
• We teach anyone with the willingness to learn.
• We do not hoard our knowledge or practices.
productive partnerships
• We show respect for our customers and fellow craftsmen.
• We do not act unprofessionally or unethically.
• We communicate our progress honestly and openly with our customers.
• We do not conceal or embellish.
• We partner with our customers to understand their business.
• We do not propose solutions until we are sure we have found the problem.
Deontology
“Act only according to that maxim whereby you can, at the same time, will that it should become universal law”
Immanuel Kant
Doctors
Do no harm
Hippocratic Oath
Lawyers
Prisoner must be brought to trial/ protect the individual against wrongful imprisonment
Habeas Corpus
What is universal law for Software?
Agile ManifestoWe 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 actions 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 are in search of universal laws in software.