software as a service
DESCRIPTION
As programmers, we provide a service to our customers. To create the best possible experience for a customer, we must adhere to our values and beliefs.TRANSCRIPT
Software as a ServiceManifestation of a Manifesto
XP Values
Simplicity Communication Feedback Courage Respect
Values Drive Principles
• Not always the best means…• Complex business problem that needs to be
worked out first.• Process or policy that is difficult to automate.
Software is a means to an end
• If the customer could write the application, they would!• Bridging the communication gap!• Closing the feedback loop!
The customer is the architect
Principles Drive Practices
Tools Help Deliver Practices
VCS Unit Testing Frameworks Acceptance Testing Frameworks Build Tools Languages IDEs …
Frequency of Change
Values
Principles
Practices
Tools
Craftsmanship
Values
Principles
Practices
Tools
Understanding the challenges in writing software, and finding the most effective ways to mitigate or eliminate them.
Values & TDD
Simplicity› Tests enable you to refactor your code relentlessly.› Testing first makes you focus only on what is needed.
Communication› Tests provide objective documentation on current system
behavior. Feedback
› Tests tell you when you break something. Courage
› Tests setup a framework for you to fail safely.› Testing first puts you on solid ground when working out business
value with the customer. Respect
› Tests show respect to your organization by treating the code as the asset that it is.
Personal Examples of Craftsmanship (and lack of…)
Context› Big project, big budget, small company
Done Well› Iterative delivery approach proved
successful for organizational change Done Poorly
› Integrating the SAP team
isCraftsmanship
Writing unit tests under pressure Cleaning up when you are “done” Using acceptance tests to help new
developers understand the objectives
!isCraftsmanship
Meeting the “estimate” by all means Not offering solutions to suboptimal
designs Convincing yourself or others that a
workaround is “OK, for now” Hiring a developer for one month to
“get back on track”
Future Topics
What is the path to craftsmanship by studying just the practices?
How do you stand up to the man?