Legacy. Bad code can be covered with tests, and works fine. And sometimes more then enough. Don't mark it as a Legacy if you think that it's just look bad Bad Code is not always a Legacy Code Paul Taykalo, UMT 2016 7
legacy code. If you know people who are writing the code, and you can reach them - they writing kind'a ok code. In case if they left their job, for some reasons people automatically tend to think that code of people who left is legacy. by default. Other people's code is not a Legacy code Paul Taykalo, UMT 2016 8
asks to make feature really fast. But some lazy developers tend to use Unmaintainable code generators 4 So called "Technical Debt" Paul Taykalo, UMT 2016 21
cases it's better to avoid additional library. You just can't allow to add to your code even more complexity Unmaintainable code generators 4 So called "Technical Debt" 4 Code without Tests 4 Yet Another Architecture 4 Super Awesome Library X Paul Taykalo, UMT 2016 24
is known Unmaintainable code generators 4 So called "Technical Debt" 4 Code without Tests 4 Yet Another Architecture 4 Super Awesome Library X 4 Other people* Paul Taykalo, UMT 2016 25
able to add more legacy to it. Also, it's obviously that reading few lines of code is way simpler than reading 200 Stop writing code! 4 More code - more legacy code 4 Less code - less errors 4 Less code is easier to read Paul Taykalo, UMT 2016 29
code to make it more readable. The Idea here is to make code readable and understandable. Check two exampes above Less code exceptions mViewModels.value.map { $0.map { $0.map { $0.price }}} mViewModels.value.map { sections in sections.map { items in items.map { item in item.price } } } Paul Taykalo, UMT 2016 31
If you don't write tests you will never learn how to write them, its better to write bad tests then not to write any — https://t.co/KgfdqTbOSr Paul Taykalo, UMT 2016 34
project size So here, depending on the side of the project, if project is small, you would probably wont' receive any time saves, just beacuase o fproject size. So technically test setup and runs will take you way more precious time to do. Paul Taykalo, UMT 2016 36
means, that you can predefine some parts to be in templates. This will decreas amount of time to rewrite things, and also Make templates for classes or big code parts Paul Taykalo, UMT 2016 39
these classes/methos usage across the prohect. You don't want really bad code to spread around more than it does now Deprecate unwanted code Paul Taykalo, UMT 2016 47
you cannot fix it now, but you unrestood what next possible steps should be Leave a comment. This will prevent you or other people for re- reading and rethinking the complex part of the code. Leave comments Leave warnings Paul Taykalo, UMT 2016 48
sure that "new way" written code won't become Legacy in short We're forcing to have tests for the new functionality as well as when we're changing old parts of code those without tests Add tests on changes you make Don't use "Change and Pray" approach Paul Taykalo, UMT 2016 50
big desire to try some new better approaches to do something in new way. Try to avoid this as much as possible. i.e KVO vs manual observing vs Notifications. Stick to the same architecture within the project* Paul Taykalo, UMT 2016 53
an option to put some parts of the project into the library. This will prevent logic leaking through All the layers of the project, and also decrease main project size. This could take a while, but it worth it. In worst case, we could try to make another application insteead of doing everthing in one app. Decrease project size Paul Taykalo, UMT 2016 54
rewrite code again and again and again until it will be "perfect" At least for some time Features delivery We aren't paid for fighting with Technical Debt Paul Taykalo, UMT 2016 65
From the other hand, focus on feature while doing it And don't spend any time on rewriting old functionality - Put TODOS, comments etc. 90/10 Principle* Paul Taykalo, UMT 2016 70
Results need to be checked at retru // TODO: Other reports Measure 4 Crash-free users/sessions 4 Number of days since last incident 4 Amount of bugs create in the last X days 4 Regressions count Paul Taykalo, UMT 2016 74