I have added the slides for my OdinStar 2017 keynote to Slideshare.
This 45 minute talk stressed 5 main points:
- abstract for precision not reuse
- synchronise effectively
- automate tactically and strategically
- automate tasks, processes, flows - not ‘testing’
- create architecture not frameworks
A good question on the talk was “How do you move from automating tactically to strategically?”
And I think you do it by a process of refactoring, experimentation and seeing what works.
On previous projects we have:
- compared approaches that we are doing tactically and discussing pros and cons, also risks for the future and limitations
- gradually refactored code to make it flexible enough to support our needs
I don’t think any of the approaches were - ‘rewrite to better’ they were always: refactor, evolve, adapt.
Books I recommend to support this are:
- Working Effectively with Legacy Code by Michael Feathers
- Implementation Patterns by Kent Beck
- Growing Object Oriented Software Guided By Tests by Steve Freeman, and Nat Price
I also recommend learning how to model well. A modern book on modelling is Domain Driven Design by Eric Evans.