During our work as programmers we often have the feeling of wanting to get the things done. We as programmers feel that cutting corners and taking big steps is a safe way. Until the bugs kick in! And when the changes in the already written software are so painful! This is why for us FAST is safe.
FAST is for us the short word that represents software the best.
F from Fix bugs
A from Add features
S from test System core
T from remove Technical debt
Working in this way enabled us to be fast:
- We fix the bugs as soon as they appear. We write automated tests to ensure the bug is really fixed and we did not add defects to the software.
- When adding features on existing code we are carefully evaluating our understanding of the system. We make sure we understand the system and document our understanding by writing Characterization and Integration tests.
- It is essential for our FAST development cycle to make sure the core of the system doesn’t fail, because otherwise the company looses money. These modules need the defect filter represented by automated tests. If no tests exist, we start with characterization tests, break dependencies and respect good design rules like maximizing clarity and minimizing duplication.
- When we are working on existing systems we want to minimize technical debt as fast as possible, because it is a massive iron ball chained to the hands and feet of our developers. We take the time to improve the code continuously and we respect the Boy Scout rule. This is how we become FASTer in time.
In short, this is how we are FAST. We learned it from books, own experience with very messy software systems and pairing with people. We are always thinking how to continuously improve the speed of a snail-speed software team to a real FAST team.
We learned these techniques, ideas, concepts and we want to give you this knowledge. We want to teach you how you can be Working FAST on Existing Systems. So are you in?