Refactoring is a technique for improving the design and overall maintainability of a piece of software without changing its observable behavior. It is a risky endeavor in the sense that we could introduce a bug (bad-fixes), or change the application behavior making the users and stakeholders community angry. What we mean by “controlled” refactoring is a way to learn how to do it properly and to always remember to respect certain rules and principles in order to reduce or eliminate the risk of doing harm instead of good. I can help developers facing the need to refactor legacy code or just to improve the codebase of recent or greenfield projects, doing so in the proper way.
Want to know more? Check out how this service is usually delivered, problems it helps you to solve, and benefits gained.
This service helps you solve or alleviate the following situations
- Almost all changes done by developers, trying to improve the codebase, result in a new bug introduced or some key functionality being affected.
- Development teams see the need to improve the codebase of the products they support, but fear to touch those because they lack automated tests in place or just can’t define a proper strategy.
- The time required to change and understand the existing code is steadily increasing, and you don’t know how to balance business needs (Time-To-Market), with technical requirements or Technical Debt.
Benefits to your organization
- Reduce the risk of bad-fixes.
- Improve Time-To-Market.
- Reduce staff turnover due to demotivation.
- Reduce Total Cost of Ownership of yours products by controlling their structural quality characteristics.
How this service is usually delivered
- By creating awareness and common understanding of the factors involved in the “improper refactor” practice. Specifically by training your staff in Refactoring and Test Driven Development (TDD).
- Code & Refactoring Coaching: by helping developers in their daily tasks especially when facing complicated refactoring situations.
- Intervention Strategy Definition: by analysing your products codebase, having workshops with maintainers (developers), and (jointly) defining an intervention strategy to “rescue” legacy applications.
Interested? Request a quote or let me contact you to better understand your needs.