Professional Documents
Culture Documents
Development
A road to effective design and clean code
I am a developer
•
I am a coach
•
I am your guide
It is unstable in production
•
Top-down
•
Bottom-up
•
Why do we do this?
Adapt to feedback
•
Learn!
7 © 2008 Dan North, ThoughtWorks
What we would need
Streaming requirements
•
Evolving design
•
- Me :)
- Domain-Driven Design
•
- Systems Thinking
Enough is enough
•
...agree on “Done”
•
Outside-in
•
Interactions
•
As an Anaesthetist
I want to view the Patient’s surgical history
So that I can choose the most suitable gas
In Ruby:
Given “we have a patient on file” do
@patient = Patient.create
end
In Java:
@Given(“we have a patient on file”)
public void createPatient() {
patient = patientFactory.create();
}
…and documentation
•
Automation is key
if (portfolioIdsByTraderId.get(trader.getId())
.containsKey(portfolio.getId())) {...}
Becomes:
•
if (trader.canView(portfolio)) {...}
The stakeholders
•
The BAs
•
The QAs
•
The developers
•
Any questions?
dan.north@thoughtworks.com
•
http://dannorth.net
•
http://lizkeogh.com
•
http://jbehave.org
•
http://rspec.info
and
•