Refactoring allows the code to evolve incrementally, thus enabling the design of an application to adapt itself to its context, while tests guaranty its functionalities. It is necessary to continue to deliver value at the same pace with a growing code base. This is the kaizen of code.
Developers are more and more working on aging software. To cope with an important need for scalability, new features, or organizational changes within little time, refactoring the structure of your software is much needed, while keeping it shippable at the same time. You need radical changes. This is kaikaku.
We will talk about how we inverted a dynamic call routing application from a kernel centric logic to a client/server voicexml architecture in one month, with 100 KLOC of java. Or change all the home made statistic layer of a 160 java KLOC mobile video service with an AMQP broker, continuing to deliver other features with a 5M statistic events per day traffic.
In this session, we will see together :
We kept an empiric, test based and teamwork based vision and we think it’s worth sharing with the community.
You can get the source code of this session on github: bamthomas/remaniement_architecture.