SlideShare a Scribd company logo
1 of 7
Download to read offline
Software Craftsmanship
Develop your skills on a continuously enhancing
canvas to grow up the value chain.
!
Pallav Kumar 

SOFTWARE CRAFTSMANSHIP - PALLAV KUMAR 1
Having ten years of experience & having one year of experience
repeated ten times - huge difference!!!
Ten years spent working on different projects, with different technologies,
and for different clients is different from ten years working for the same client, on
the same project, and with the same people and same technology.
Seniority is transient as clients will demand different types of systems as
technology evolves and relative as we need to define the context/technology we are
referring.
What make the project fail?
Poor management | Competitor’s superiority | Time to market | Bad
business strategy | Ill-defined processes | Badly written code
To overcome this we need to raise the bar.
Software Craftsmanship – A Metaphor – is
about responsibility, professionalism,
pragmatism, & pride in software evolution.
It’s a lifestyle.
!
SOFTWARE CRAFTSMANSHIP - PALLAV KUMAR 2
!
!
Manifesto of software craftsman elucidates
Not only working software,
but also well-crafted software
Well-crafted software means that,
regardless of how old the application is,
developers can understand it easily. The
side effects are well known and
controlled. It has high and reliable test
coverage, clear and simple design, and
business language well expressed in the
code. Adding or changing features does
not take longer than it used to take at
the beginning of the project, when the
code base was small.
Not only responding to change,
but also steadily adding value
When we talk about steadily adding
value, we are not just talking about
adding new features and fixing bugs.
This is also about constantly improving
the structure of the code, keeping it
clean, extendable, testable, and easy to
maintain.
Not only individuals and
interactions, but also a
community of professionals
Be passionate and always strive to
better ourselves. Sharing and
mentorship should in heart, learn from
others and express your thoughts.
Not only customer collaboration,
but also productive partnerships
We believe in partnership and
professional behavior above all. Actively
contribute to the success of the project,
questioning requirements,
understanding the business, proposing
improvements, and productively
partnering with our customers or
employers.
SOFTWARE CRAFTSMANSHIP - PALLAV KUMAR 3
Traits of Software Craftsman
Focus & Determination – Define the direction, understand the vision, and
keep the long term goal in mind. Take requirements, break them down into
smaller pieces, and iterate. While working on small iterations, also keep re-
evaluating the project’s goals and adapting when necessary.
Project as investment - Invest the ever-increasing knowledge, passion,
time, dedication, and professional attitude in every project and measure the
throughput. Adopt good technical practices, build great new teams, and inject some
passion into the existing ones.
Craftsman get motivated by three things: autonomy, mastery, & purpose.
• Autonomy: It is when we are in control of what we do, how we do it,
and when we do it. That should always be the case in a true agile context.
• Mastery: It is when we are constantly learning and evolving—
becoming better professionals and better human beings.
• Purpose: It is when we feel that our job is important and we are
contributing to make things better—instead of just doing what we are told
without understanding why.
Aggressive Offering – Pro-active in thoughts, understand the prospective
and come out with value additions. Think as partner, have the flavor of strategy &
enhances the return on investment.
Reduce the technical debt - Maintain the code - Code is organic and
requires constant maintenance. In order to increase business agility and have a
good return on investment, keeping code quality high is paramount. Craftsman
understands the impact of bad code and re-factor it. It is backed by a good battery
of automated tests that can test the entire application in just a few minutes. Time
constraints or change in requirements is never used as an excuse for bad code, use
good design principles and techniques throughout the application life span. The
language used to explain the business feature is in sync with the language that is
SOFTWARE CRAFTSMANSHIP - PALLAV KUMAR 4
used in the code to implement it and have unit and integration test associated with
it. The test coverage is also verified by preparing various matrix.
Dealing with legacy code - If you don’t like something, change it; if you
can’t change it, change the way you think about it. Craftsman focus on small
parts of it, one at a time, and start improving them, gradually. Working with
legacy code is almost like solving a big jigsaw puzzle, the more you join pieces the
more you get clarity.
The Intellectual Toolbox – Apply techniques that are best for business.
Know the right tool for the job and knows how to use it correctly. Involved in
inception, scope & discovery phase and realize the vision.
Conquer Complexity – Divide a system into subsystems at architecture
level to focus. Define the contracts, abstract the behavior. Apply the principles of
design and make the system robust by handling the non-functional requirements to
the perfection. Define the relationship between the conceptual integrity of the
architecture and its low-level implementation. Define guidelines. Design
prototypes, proof of concepts, feasibility studies and define the technology stack.
The Right Thing versus the Thing Right - This is achieved through a
combination of practices and activities: visualizing work in progress, just-in-time
prioritization and planning, focusing on minimum marketable features (MMFs),
backlogs, stand-up meetings, burn-down charts, user stories, acceptance criteria,
scenarios, definition of done, cross-functional teams, regular demos, focusing on
technical practices and providing a quick and short feedback loop on the quality of
our code. Craftsman encourages the adoption of best practices, technologies, tools,
processes, methodologies for the job.
!
SOFTWARE CRAFTSMANSHIP - PALLAV KUMAR 5
Culture of Learning – The most efficient ways of injecting passion into a
company. Craftsman generally creates a book club where members read and share
their leanings. Have brown bag sessions in which members talk about different
technologies, approaches/techniques. Conduct group code reviews and hands-on
coding sessions. Engage in pet projects, communities, practices.
Driving the technical challenges – Identify the problem arenas, defines
which category it falls like lack of awareness, less experience, time crunched,
failed, not able to vision. Be confident, honesty and transparency are core values.
Craftsman establish trust by consistently delivering quality software, expose and
demonstrate passion. Gain expertise and lead by example.
Pragmatic –Primary focus is customer satisfaction. Besides quality, time
and cost are part of this satisfaction. Code cannot be considered well-crafted code if
it doesn’t provide value. Craftsman writes clean and well-crafted code to give the
ability to quickly and safely make changes according to the business needs.
Quality is always expected but it should not be expensive. As big ball of mud
increases, bug increases, time to develop new features increases and hence the
cost, so craftsman produces quality code, lowers the cost of quality.
!
!
!
!
!
!
SOFTWARE CRAFTSMANSHIP - PALLAV KUMAR 6
Being a Software Craftsman
It’s all about the passion.
It’s a life of continuous dedication to the art of writing code. It’s a constant
search for better and more efficient ways to deliver value through software. Be
curious & experiment new things. Focus first on solving problems, not on writing
code, then write quality code that is testable, easy to understand, and easy to
maintain.
Be honest, courageous and provide solutions/options.
Software craftsmen wake up in the morning to make things better and to
change the world we live in. Being a software craftsman is far more than writing
well-crafted code or being a software developer.
It’s a lifestyle—a commitment to excellence. Embrace it. Be proud of the role
you play in the evolution of our society.
SOFTWARE CRAFTSMANSHIP - PALLAV KUMAR 7

More Related Content

What's hot

Experteer for ICMA: Applied Machine Learning. Smart Process Automation with AI
Experteer for ICMA: Applied Machine Learning. Smart Process Automation with AIExperteer for ICMA: Applied Machine Learning. Smart Process Automation with AI
Experteer for ICMA: Applied Machine Learning. Smart Process Automation with AIAlexander Chukovski
 
Applied Deep Learning for Text Classification - Examples from the HR Industry
Applied Deep Learning for Text Classification - Examples from the HR IndustryApplied Deep Learning for Text Classification - Examples from the HR Industry
Applied Deep Learning for Text Classification - Examples from the HR IndustryAlexander Chukovski
 
#speakgeek - Agile development in iconnect360
#speakgeek - Agile development in iconnect360#speakgeek - Agile development in iconnect360
#speakgeek - Agile development in iconnect360Derek Chan
 
Artifical Intelligence and Machine Learning and what they are doing to hiring...
Artifical Intelligence and Machine Learning and what they are doing to hiring...Artifical Intelligence and Machine Learning and what they are doing to hiring...
Artifical Intelligence and Machine Learning and what they are doing to hiring...Alexander Chukovski
 
Introduction to agile
Introduction to agileIntroduction to agile
Introduction to agileunruliness
 
Introduction to agile
Introduction to agileIntroduction to agile
Introduction to agileunruliness
 
PMO Tools_Portfolio Reporting
PMO Tools_Portfolio ReportingPMO Tools_Portfolio Reporting
PMO Tools_Portfolio ReportingMatthew Jones
 
How to compare prices and assess estimations of outsourcing companies
How to compare prices and assess estimations of outsourcing companiesHow to compare prices and assess estimations of outsourcing companies
How to compare prices and assess estimations of outsourcing companiesMaciej Dziergwa
 
Agile development in iconnect360
Agile development in iconnect360Agile development in iconnect360
Agile development in iconnect360William Lim
 
Mca5020 advanced software engineering-de
Mca5020   advanced software engineering-deMca5020   advanced software engineering-de
Mca5020 advanced software engineering-desmumbahelp
 
NONPROFIT INSIGHTS
NONPROFIT INSIGHTSNONPROFIT INSIGHTS
NONPROFIT INSIGHTSlescar123
 

What's hot (20)

Experteer for ICMA: Applied Machine Learning. Smart Process Automation with AI
Experteer for ICMA: Applied Machine Learning. Smart Process Automation with AIExperteer for ICMA: Applied Machine Learning. Smart Process Automation with AI
Experteer for ICMA: Applied Machine Learning. Smart Process Automation with AI
 
Applied Deep Learning for Text Classification - Examples from the HR Industry
Applied Deep Learning for Text Classification - Examples from the HR IndustryApplied Deep Learning for Text Classification - Examples from the HR Industry
Applied Deep Learning for Text Classification - Examples from the HR Industry
 
Business Process Design 2008
Business Process Design 2008Business Process Design 2008
Business Process Design 2008
 
#speakgeek - Agile development in iconnect360
#speakgeek - Agile development in iconnect360#speakgeek - Agile development in iconnect360
#speakgeek - Agile development in iconnect360
 
Artifical Intelligence and Machine Learning and what they are doing to hiring...
Artifical Intelligence and Machine Learning and what they are doing to hiring...Artifical Intelligence and Machine Learning and what they are doing to hiring...
Artifical Intelligence and Machine Learning and what they are doing to hiring...
 
Introduction to agile
Introduction to agileIntroduction to agile
Introduction to agile
 
Introduction to agile
Introduction to agileIntroduction to agile
Introduction to agile
 
PMP Five Sample Questions - 3
PMP Five Sample Questions - 3PMP Five Sample Questions - 3
PMP Five Sample Questions - 3
 
PMO Tools_Portfolio Reporting
PMO Tools_Portfolio ReportingPMO Tools_Portfolio Reporting
PMO Tools_Portfolio Reporting
 
PMP,Lecture 1 Projects Frame Work based on PMBOK v5
PMP,Lecture 1 Projects Frame Work based on PMBOK v5PMP,Lecture 1 Projects Frame Work based on PMBOK v5
PMP,Lecture 1 Projects Frame Work based on PMBOK v5
 
Scale enteprise agile and Agile as a Service
Scale enteprise agile and  Agile as a ServiceScale enteprise agile and  Agile as a Service
Scale enteprise agile and Agile as a Service
 
How to compare prices and assess estimations of outsourcing companies
How to compare prices and assess estimations of outsourcing companiesHow to compare prices and assess estimations of outsourcing companies
How to compare prices and assess estimations of outsourcing companies
 
Agile development in iconnect360
Agile development in iconnect360Agile development in iconnect360
Agile development in iconnect360
 
Mca5020 advanced software engineering-de
Mca5020   advanced software engineering-deMca5020   advanced software engineering-de
Mca5020 advanced software engineering-de
 
PMP Exam Sample Questions Set 7
PMP Exam Sample Questions Set 7PMP Exam Sample Questions Set 7
PMP Exam Sample Questions Set 7
 
PMP Sample Questions Set 5
PMP Sample Questions Set 5PMP Sample Questions Set 5
PMP Sample Questions Set 5
 
PMP Exam Sample Questions Set 6
PMP Exam Sample Questions Set 6PMP Exam Sample Questions Set 6
PMP Exam Sample Questions Set 6
 
Uday
UdayUday
Uday
 
Offline pmp course
Offline pmp courseOffline pmp course
Offline pmp course
 
NONPROFIT INSIGHTS
NONPROFIT INSIGHTSNONPROFIT INSIGHTS
NONPROFIT INSIGHTS
 

Viewers also liked

La medicina power point
La medicina power pointLa medicina power point
La medicina power pointmatii_ezze
 
Intro Photo: Quiz
Intro Photo: QuizIntro Photo: Quiz
Intro Photo: Quizakn4fotos
 
Culture: The Byproduct of Your Story and Strategy
Culture: The Byproduct of Your Story and StrategyCulture: The Byproduct of Your Story and Strategy
Culture: The Byproduct of Your Story and StrategyJames O'Gara
 
Japanese cafe Culture landscape
Japanese cafe Culture landscapeJapanese cafe Culture landscape
Japanese cafe Culture landscapeKaz Iwasa
 
Cardiopatías en caninos
Cardiopatías en caninosCardiopatías en caninos
Cardiopatías en caninosLupita Lavìn
 
Nom 034 ssa3 2013
Nom 034 ssa3 2013Nom 034 ssa3 2013
Nom 034 ssa3 2013avepokia
 
Improve Modulo Trace (tracciabilità)
Improve Modulo Trace (tracciabilità)Improve Modulo Trace (tracciabilità)
Improve Modulo Trace (tracciabilità)nextsrl
 
SCALE-UP OF MICROCHANNEL REACTORS FOR FISCHER-TROPSCH
SCALE-UP OF MICROCHANNEL REACTORS FOR FISCHER-TROPSCHSCALE-UP OF MICROCHANNEL REACTORS FOR FISCHER-TROPSCH
SCALE-UP OF MICROCHANNEL REACTORS FOR FISCHER-TROPSCHJohn Glenning
 
Centro de convivência para idosos
Centro de convivência para idososCentro de convivência para idosos
Centro de convivência para idososBatista Manancial
 
VaimuKeha 22/01/17 - Sirle Truuts
VaimuKeha 22/01/17 - Sirle Truuts VaimuKeha 22/01/17 - Sirle Truuts
VaimuKeha 22/01/17 - Sirle Truuts VaimuKeha
 
My SIWES Presentation
My SIWES PresentationMy SIWES Presentation
My SIWES PresentationTaiwo Dada
 
TRIAGE veterinario
TRIAGE veterinario TRIAGE veterinario
TRIAGE veterinario QUIRON
 
Stress Ulcer Prophylaxis in ICU
Stress Ulcer Prophylaxis in ICUStress Ulcer Prophylaxis in ICU
Stress Ulcer Prophylaxis in ICU敏雄 福岡
 
Business Process Improvement (BPI 7) Process Training Module
Business Process Improvement (BPI 7) Process Training ModuleBusiness Process Improvement (BPI 7) Process Training Module
Business Process Improvement (BPI 7) Process Training ModuleFrank-G. Adler
 

Viewers also liked (18)

Sincronizzando 9
Sincronizzando 9Sincronizzando 9
Sincronizzando 9
 
La medicina power point
La medicina power pointLa medicina power point
La medicina power point
 
Intro Photo: Quiz
Intro Photo: QuizIntro Photo: Quiz
Intro Photo: Quiz
 
Culture: The Byproduct of Your Story and Strategy
Culture: The Byproduct of Your Story and StrategyCulture: The Byproduct of Your Story and Strategy
Culture: The Byproduct of Your Story and Strategy
 
Japanese cafe Culture landscape
Japanese cafe Culture landscapeJapanese cafe Culture landscape
Japanese cafe Culture landscape
 
Cardiopatías en caninos
Cardiopatías en caninosCardiopatías en caninos
Cardiopatías en caninos
 
Nom 034 ssa3 2013
Nom 034 ssa3 2013Nom 034 ssa3 2013
Nom 034 ssa3 2013
 
Improve Modulo Trace (tracciabilità)
Improve Modulo Trace (tracciabilità)Improve Modulo Trace (tracciabilità)
Improve Modulo Trace (tracciabilità)
 
siwes Cover page
siwes Cover pagesiwes Cover page
siwes Cover page
 
SCALE-UP OF MICROCHANNEL REACTORS FOR FISCHER-TROPSCH
SCALE-UP OF MICROCHANNEL REACTORS FOR FISCHER-TROPSCHSCALE-UP OF MICROCHANNEL REACTORS FOR FISCHER-TROPSCH
SCALE-UP OF MICROCHANNEL REACTORS FOR FISCHER-TROPSCH
 
Centro de convivência para idosos
Centro de convivência para idososCentro de convivência para idosos
Centro de convivência para idosos
 
VaimuKeha 22/01/17 - Sirle Truuts
VaimuKeha 22/01/17 - Sirle Truuts VaimuKeha 22/01/17 - Sirle Truuts
VaimuKeha 22/01/17 - Sirle Truuts
 
My SIWES Presentation
My SIWES PresentationMy SIWES Presentation
My SIWES Presentation
 
TRIAGE veterinario
TRIAGE veterinario TRIAGE veterinario
TRIAGE veterinario
 
Downey
DowneyDowney
Downey
 
Brown
BrownBrown
Brown
 
Stress Ulcer Prophylaxis in ICU
Stress Ulcer Prophylaxis in ICUStress Ulcer Prophylaxis in ICU
Stress Ulcer Prophylaxis in ICU
 
Business Process Improvement (BPI 7) Process Training Module
Business Process Improvement (BPI 7) Process Training ModuleBusiness Process Improvement (BPI 7) Process Training Module
Business Process Improvement (BPI 7) Process Training Module
 

Similar to Software Craftsmanship

Scrum 18 months later
Scrum 18 months laterScrum 18 months later
Scrum 18 months laterCraig Brown
 
Resume Platform. In todays competitive job market,
Resume Platform. In todays competitive job market,Resume Platform. In todays competitive job market,
Resume Platform. In todays competitive job market,Chelsea Cote
 
Xp(Xtreme Programming) presentation
Xp(Xtreme Programming) presentationXp(Xtreme Programming) presentation
Xp(Xtreme Programming) presentationMuaazZubairi
 
Integrating Ux And Agile
Integrating Ux And AgileIntegrating Ux And Agile
Integrating Ux And AgileDaniel Jaeger
 
Induction Proposal - Synergetics India
Induction Proposal - Synergetics IndiaInduction Proposal - Synergetics India
Induction Proposal - Synergetics IndiaSynergetics India
 
Productive Developer - Synergetics India
Productive Developer - Synergetics IndiaProductive Developer - Synergetics India
Productive Developer - Synergetics IndiaSynergetics India
 
Inductionproposal - Synergetics India
Inductionproposal - Synergetics IndiaInductionproposal - Synergetics India
Inductionproposal - Synergetics IndiaRuchi
 
How to outsource Scrum projects guide
How to outsource Scrum projects   guideHow to outsource Scrum projects   guide
How to outsource Scrum projects guideLeszek Leo Baz
 
How to outsource Scrum projects - a guide
How to outsource Scrum projects - a guideHow to outsource Scrum projects - a guide
How to outsource Scrum projects - a guideXSolve
 
How To Put Subject Matter Expert On Resume
How To Put Subject Matter Expert On ResumeHow To Put Subject Matter Expert On Resume
How To Put Subject Matter Expert On ResumeLindsay Adams
 
Resume Sample For Quality Manager. Invest in your
Resume Sample For Quality Manager. Invest in yourResume Sample For Quality Manager. Invest in your
Resume Sample For Quality Manager. Invest in yourHolly Bell
 
Resume Platform. Place Your Order: Choose the serv
Resume Platform. Place Your Order: Choose the servResume Platform. Place Your Order: Choose the serv
Resume Platform. Place Your Order: Choose the servBecky Gulson
 
Successful Agile Transformation - The NCS Story
Successful Agile Transformation - The NCS StorySuccessful Agile Transformation - The NCS Story
Successful Agile Transformation - The NCS StoryNUS-ISS
 
Sapple Systems Corporate Profile
Sapple Systems Corporate ProfileSapple Systems Corporate Profile
Sapple Systems Corporate ProfileSubhasit Ratnam
 
The Agile Manifesto (and a brief history lesson)
The Agile Manifesto (and a brief history lesson)The Agile Manifesto (and a brief history lesson)
The Agile Manifesto (and a brief history lesson)Adrian Howard
 
Five Powerful Skills To Boost Programme career
Five Powerful Skills To Boost Programme careerFive Powerful Skills To Boost Programme career
Five Powerful Skills To Boost Programme careerRock Interview
 
Project Requriement Management Vs Agile software development
Project Requriement Management Vs  Agile software developmentProject Requriement Management Vs  Agile software development
Project Requriement Management Vs Agile software developmentbizpresenter
 
Velvet Resume. Timely Delivery: We understand the
Velvet Resume. Timely Delivery: We understand theVelvet Resume. Timely Delivery: We understand the
Velvet Resume. Timely Delivery: We understand theClaire Flanagan
 

Similar to Software Craftsmanship (20)

Scrum 18 months later
Scrum 18 months laterScrum 18 months later
Scrum 18 months later
 
Resume Platform. In todays competitive job market,
Resume Platform. In todays competitive job market,Resume Platform. In todays competitive job market,
Resume Platform. In todays competitive job market,
 
Xp(Xtreme Programming) presentation
Xp(Xtreme Programming) presentationXp(Xtreme Programming) presentation
Xp(Xtreme Programming) presentation
 
Integrating Ux And Agile
Integrating Ux And AgileIntegrating Ux And Agile
Integrating Ux And Agile
 
Induction Plan - Synergetics India
Induction Plan - Synergetics IndiaInduction Plan - Synergetics India
Induction Plan - Synergetics India
 
Induction Proposal - Synergetics India
Induction Proposal - Synergetics IndiaInduction Proposal - Synergetics India
Induction Proposal - Synergetics India
 
Productive Developer - Synergetics India
Productive Developer - Synergetics IndiaProductive Developer - Synergetics India
Productive Developer - Synergetics India
 
Inductionproposal - Synergetics India
Inductionproposal - Synergetics IndiaInductionproposal - Synergetics India
Inductionproposal - Synergetics India
 
How to outsource Scrum projects guide
How to outsource Scrum projects   guideHow to outsource Scrum projects   guide
How to outsource Scrum projects guide
 
How to outsource Scrum projects - a guide
How to outsource Scrum projects - a guideHow to outsource Scrum projects - a guide
How to outsource Scrum projects - a guide
 
How To Put Subject Matter Expert On Resume
How To Put Subject Matter Expert On ResumeHow To Put Subject Matter Expert On Resume
How To Put Subject Matter Expert On Resume
 
Resume Sample For Quality Manager. Invest in your
Resume Sample For Quality Manager. Invest in yourResume Sample For Quality Manager. Invest in your
Resume Sample For Quality Manager. Invest in your
 
Resume Platform. Place Your Order: Choose the serv
Resume Platform. Place Your Order: Choose the servResume Platform. Place Your Order: Choose the serv
Resume Platform. Place Your Order: Choose the serv
 
Successful Agile Transformation - The NCS Story
Successful Agile Transformation - The NCS StorySuccessful Agile Transformation - The NCS Story
Successful Agile Transformation - The NCS Story
 
Sapple Systems Corporate Profile
Sapple Systems Corporate ProfileSapple Systems Corporate Profile
Sapple Systems Corporate Profile
 
The Agile Manifesto (and a brief history lesson)
The Agile Manifesto (and a brief history lesson)The Agile Manifesto (and a brief history lesson)
The Agile Manifesto (and a brief history lesson)
 
Five Powerful Skills To Boost Programme career
Five Powerful Skills To Boost Programme careerFive Powerful Skills To Boost Programme career
Five Powerful Skills To Boost Programme career
 
Project Requriement Management Vs Agile software development
Project Requriement Management Vs  Agile software developmentProject Requriement Management Vs  Agile software development
Project Requriement Management Vs Agile software development
 
Velvet Resume. Timely Delivery: We understand the
Velvet Resume. Timely Delivery: We understand theVelvet Resume. Timely Delivery: We understand the
Velvet Resume. Timely Delivery: We understand the
 
Lect7
Lect7Lect7
Lect7
 

Software Craftsmanship

  • 1. Software Craftsmanship Develop your skills on a continuously enhancing canvas to grow up the value chain. ! Pallav Kumar 
 SOFTWARE CRAFTSMANSHIP - PALLAV KUMAR 1
  • 2. Having ten years of experience & having one year of experience repeated ten times - huge difference!!! Ten years spent working on different projects, with different technologies, and for different clients is different from ten years working for the same client, on the same project, and with the same people and same technology. Seniority is transient as clients will demand different types of systems as technology evolves and relative as we need to define the context/technology we are referring. What make the project fail? Poor management | Competitor’s superiority | Time to market | Bad business strategy | Ill-defined processes | Badly written code To overcome this we need to raise the bar. Software Craftsmanship – A Metaphor – is about responsibility, professionalism, pragmatism, & pride in software evolution. It’s a lifestyle. ! SOFTWARE CRAFTSMANSHIP - PALLAV KUMAR 2
  • 3. ! ! Manifesto of software craftsman elucidates Not only working software, but also well-crafted software Well-crafted software means that, regardless of how old the application is, developers can understand it easily. The side effects are well known and controlled. It has high and reliable test coverage, clear and simple design, and business language well expressed in the code. Adding or changing features does not take longer than it used to take at the beginning of the project, when the code base was small. Not only responding to change, but also steadily adding value When we talk about steadily adding value, we are not just talking about adding new features and fixing bugs. This is also about constantly improving the structure of the code, keeping it clean, extendable, testable, and easy to maintain. Not only individuals and interactions, but also a community of professionals Be passionate and always strive to better ourselves. Sharing and mentorship should in heart, learn from others and express your thoughts. Not only customer collaboration, but also productive partnerships We believe in partnership and professional behavior above all. Actively contribute to the success of the project, questioning requirements, understanding the business, proposing improvements, and productively partnering with our customers or employers. SOFTWARE CRAFTSMANSHIP - PALLAV KUMAR 3
  • 4. Traits of Software Craftsman Focus & Determination – Define the direction, understand the vision, and keep the long term goal in mind. Take requirements, break them down into smaller pieces, and iterate. While working on small iterations, also keep re- evaluating the project’s goals and adapting when necessary. Project as investment - Invest the ever-increasing knowledge, passion, time, dedication, and professional attitude in every project and measure the throughput. Adopt good technical practices, build great new teams, and inject some passion into the existing ones. Craftsman get motivated by three things: autonomy, mastery, & purpose. • Autonomy: It is when we are in control of what we do, how we do it, and when we do it. That should always be the case in a true agile context. • Mastery: It is when we are constantly learning and evolving— becoming better professionals and better human beings. • Purpose: It is when we feel that our job is important and we are contributing to make things better—instead of just doing what we are told without understanding why. Aggressive Offering – Pro-active in thoughts, understand the prospective and come out with value additions. Think as partner, have the flavor of strategy & enhances the return on investment. Reduce the technical debt - Maintain the code - Code is organic and requires constant maintenance. In order to increase business agility and have a good return on investment, keeping code quality high is paramount. Craftsman understands the impact of bad code and re-factor it. It is backed by a good battery of automated tests that can test the entire application in just a few minutes. Time constraints or change in requirements is never used as an excuse for bad code, use good design principles and techniques throughout the application life span. The language used to explain the business feature is in sync with the language that is SOFTWARE CRAFTSMANSHIP - PALLAV KUMAR 4
  • 5. used in the code to implement it and have unit and integration test associated with it. The test coverage is also verified by preparing various matrix. Dealing with legacy code - If you don’t like something, change it; if you can’t change it, change the way you think about it. Craftsman focus on small parts of it, one at a time, and start improving them, gradually. Working with legacy code is almost like solving a big jigsaw puzzle, the more you join pieces the more you get clarity. The Intellectual Toolbox – Apply techniques that are best for business. Know the right tool for the job and knows how to use it correctly. Involved in inception, scope & discovery phase and realize the vision. Conquer Complexity – Divide a system into subsystems at architecture level to focus. Define the contracts, abstract the behavior. Apply the principles of design and make the system robust by handling the non-functional requirements to the perfection. Define the relationship between the conceptual integrity of the architecture and its low-level implementation. Define guidelines. Design prototypes, proof of concepts, feasibility studies and define the technology stack. The Right Thing versus the Thing Right - This is achieved through a combination of practices and activities: visualizing work in progress, just-in-time prioritization and planning, focusing on minimum marketable features (MMFs), backlogs, stand-up meetings, burn-down charts, user stories, acceptance criteria, scenarios, definition of done, cross-functional teams, regular demos, focusing on technical practices and providing a quick and short feedback loop on the quality of our code. Craftsman encourages the adoption of best practices, technologies, tools, processes, methodologies for the job. ! SOFTWARE CRAFTSMANSHIP - PALLAV KUMAR 5
  • 6. Culture of Learning – The most efficient ways of injecting passion into a company. Craftsman generally creates a book club where members read and share their leanings. Have brown bag sessions in which members talk about different technologies, approaches/techniques. Conduct group code reviews and hands-on coding sessions. Engage in pet projects, communities, practices. Driving the technical challenges – Identify the problem arenas, defines which category it falls like lack of awareness, less experience, time crunched, failed, not able to vision. Be confident, honesty and transparency are core values. Craftsman establish trust by consistently delivering quality software, expose and demonstrate passion. Gain expertise and lead by example. Pragmatic –Primary focus is customer satisfaction. Besides quality, time and cost are part of this satisfaction. Code cannot be considered well-crafted code if it doesn’t provide value. Craftsman writes clean and well-crafted code to give the ability to quickly and safely make changes according to the business needs. Quality is always expected but it should not be expensive. As big ball of mud increases, bug increases, time to develop new features increases and hence the cost, so craftsman produces quality code, lowers the cost of quality. ! ! ! ! ! ! SOFTWARE CRAFTSMANSHIP - PALLAV KUMAR 6
  • 7. Being a Software Craftsman It’s all about the passion. It’s a life of continuous dedication to the art of writing code. It’s a constant search for better and more efficient ways to deliver value through software. Be curious & experiment new things. Focus first on solving problems, not on writing code, then write quality code that is testable, easy to understand, and easy to maintain. Be honest, courageous and provide solutions/options. Software craftsmen wake up in the morning to make things better and to change the world we live in. Being a software craftsman is far more than writing well-crafted code or being a software developer. It’s a lifestyle—a commitment to excellence. Embrace it. Be proud of the role you play in the evolution of our society. SOFTWARE CRAFTSMANSHIP - PALLAV KUMAR 7