In this post I want to talk about internal quality of software for non-developers, especially the major benefits for your business when doing offshore outsourcing with an agile team.
In Apiumhub, we are committed to the quality of our code. We are not satisfied by just giving to the customers the features they want. For our teams in Barcelona and Vietnam it’s crystal clear: a good architecture and “good code” matters a lot.
We were having beers a few days ago with some Barcelona fellows and we noticed that this is something that is not always understood out of the development team. The pressure to deliver in the shortest time possible and a with minimal budget can make us doubt of the importance of “detail”.
If you’re not a programmer, terms like agile outsourcing, TDD, test coverage, continuous integration, design patterns, emerging architecture and refactoring can be confusing. And their benefits can get mysterious. In order to shed some light regarding this subject for non-developers, I’ll explain here the main benefits for the business of doing offshore outsourcing with an agile team.
Offshore outsourcing, benefits of an Agile team
“In computing, 80% of what we do is called curiously ‘maintenance’: the act of repair.” (“Clean Code”, 2008 Robert C. Martin).
Most likely, sooner or later, someone will have to come back to the code. A direct consequence of bad practices applied in software development is a drastic increase in time/ resources/ cost required to upgrade or maintain the application. It is often necessary to even redesign the entire application.
Working with proven design patterns and scalable architecture allows us, for example, to add new features, increase the maximum number of users or reduce the loading time of an application much more quickly and effectively.
RESPOND TO CHANGES QUICKLY
The early bird catches the worm. In a world where technology changes and evolves at breakneck speed, this can make the difference between viability of the project and premature death of the project.
“An agile team is focused on business priorities and adapts quickly to emerging customer needs.” – Agile Estimating and Planning, 2005 Mike Cohn.
Thanks to continuous integration, customers can follow the project day by day as someone else inside the development team and through agile planning, change or add requirements throughout the project life.
By using good programming practices, you get less bugs and can fix them faster.
A 2008 research compared the evolution of 8 projects of IBM and Microsoft. In 4 of those projects, TDD was applied, and in the other 4, it wasn’t. The results were conclusive. In projects where it TDD was applied, the quality increased and number of bugs decreased.
Moreover, as Martin Fowler tells us in his blog, continuous integration helps us find and fix bugs more quickly.
The most valuable asset of a company is its team and for a developer with thirst for knowledge, code quality matters.
We live in exciting times in the world of software development. Time for change. New programming languages, new technologies, new devices, new ways of working are out there.
In an agile company or agile team, the programmer is no longer an operator at the end of the assembly line. By getting involved in the planning process, the developer gains importance. The quality code dignifies and rises the profession to the level of other great engineerings. Some practices as “the automation of the build” or “deploy”, release the programmer from tedious repetitive tasks, focusing on more creative and exciting work tasks.
I leave you with a list of great software development companies in Europe in case you are considering outsourcing IT services.