Upgrade to Pro — share decks privately, control downloads, hide ads and more …

Time Driven Development

Time Driven Development

Software architecture is more than blindly following design principles or using design patterns. They come with trade-offs that you should keep in mind before deciding on the right architecture for your project. Use them as tools to achieve simpler code that's easier to maintain as opposed to goals that you aim to achieve regardless of the context.

Katerina Trajchevska

July 25, 2019

More Decks by Katerina Trajchevska

Other Decks in Programming


  1. Exclusive Developers’ Network Katerina Trajchevska • 1x Engineer & Mozilla

    Tech Speaker • Co-founder of Adeva, an exclusive developers’ network. • Consultant with startups and Fortune 500 @ktrajchevska
  2. @ktrajchevska What are we going to talk about? 1. How

    to design software for easy maintenance, extension and modification. 2. How to know when to stop and make better use of your time.
  3. @ktrajchevska Red Flags Controller knows too much and is open

    for modification. Methods depend directly on the CRM storage and their naming conventions. View uses arrays that should be replaced with Collections in future.
  4. @ktrajchevska What does it take to switch the storage? 1.

    Add Eloquent models to use with MySQL. 2. Change controller dependencies from CRM class to Eloquent. 3. Use Eloquent instead of CRM to pull data for the view. 4. Switch all variables to the new naming convention. 5. Change the way we access data in the views. 6. Adjust the unit tests to work accordingly.
  5. @ktrajchevska What does it take to switch the storage? 1.

    Add Eloquent models to use with MySQL. 2. Create MysqlCandidateRepository that implements CandidateRepositoryInterface. 3. Change the binding for CandidateRepositoryInterface in AppServiceProvider.
  6. @ktrajchevska Why Time Driven Development? • Software design practices come

    with trade-offs. Know them. • Software design principles should simplify your life, not complicate it. • Thinking about the bigger picture will help you create more than just software. It will help you create value.
  7. @ktrajchevska How to start practicing Time Driven Development? • Talk

    to your lead to understand the business goals before proposing an architecture. • Always have the context in mind when designing software. • Don’t shame others for not adhering to “the best” software design practices.