Upload
dave1010uk
View
247
Download
0
Tags:
Embed Size (px)
Citation preview
Code of Conduct
Carry out your professional responsibilities with due care and diligence in accordance with the Relevant Authority’s requirements whilst exercising your professional judgement at all times
Developers● Skilled, Passionate, Healthy,
Focused, Disciplined● Conferences, user groups, meet ups● Read books, blogs, code● Write code, Open Source
contributions
● Less testing● Less planning● Less communication● Don't improve tools /
processes● Overtime● Outsource
thisismoney.co.uk
Consequences● Less time on new features● Higher cost of new features● Harder to estimate new
features
We need to recognize that our job isn't about producing more code in less time, it's about creating software that is stable, performant, maintainable and understandable (to you or someone else, a few months or years down the road).
Matthew Gertner
Domain-Driven Design
● Model the domain completely in classes that don't touch the UI, database or framework
Refactoring● Restructuring without
changing behaviour● Makes it easier to read,
understand, test, change, add new features to
Refactoring● Inject dependencies● Eliminate dependencies● Create interfaces to type hint to● Extract functions● Rename● Reduce cyclomatic complexity● http://refactoring.com/catalog/
Estimating● Estimates for new features
need to include refactoring– (if you don't want to increase
technical debt)– Refactoring doesn't add perceived
value so it's hard to sell
● Help you deliver faster in the short term
● Long term strategy● Disposable prototype● Just don't need to write clean
code
Sprint vs MarathonSprint (example) Marathon (example)
Peripheral component (logs) Central component (DB)
Trivial (make a CSV) Complex (search algorithm)
Few consequences of bugs (game) Important (nuclear reactor)
Isolated (contact form) Reused (authentication)
Abandonable (migration script) Continued updates
One developer Big team
Time & money to pay technical debt later
Long term delivery