software as a service

Post on 20-May-2015

668 Views

Category:

Technology

1 Downloads

Preview:

Click to see full reader

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?

top related