In the first 2 articles in this series I talked about what is motivation and how developers can find meaning in their work. An effective development team is a team that is engaged in their work, feels as though their contribution is valued and that the work they are doing has real benefit for the business.
In this 3rd part of the series I want to talk about innovation and how you can encourage it within your teams. Being able to innovate is something every developer should want to do, but you need to control the innovation process properly otherwise you can end up with a team just doing their own thing and taking their eye of the ball for the business.
What is Innovation
“Innovation is the application of better solutions that meet new requirements, in-articulated needs, or existing market needs. This is accomplished through more effective products, processes, services, technologies, or ideas that are readily available to markets, governments and society. The term innovation can be defined as something original and, as consequence, new that “breaks in to” the market or into society. One usually associates to new phenomena that are important in some way. A definition of the term, in line with these aspects, would be the following: “An innovation is something original, new, and important – in whatever field – that breaks in to (or obtains a foothold in) a market or society.”
As the quote above says, innovation is the application of better solutions that meet new requirements. I believe it is important to try and foster a culture of innovation in a software development team as your developers (I am including QA’s, UI designers, and anyone technical in this too) are the brains behind your companies systems. Innovation can come in many forms. It could be an idea for a completely new system, or it could be an enhancement to an existing system or process. If your innovation could end up taking a large amount of time to implement, maybe you can do a proof of concept first to sell the idea to your management or business sponsors.
I want to give an example of a recent innovation that has come from my team and talk about how it has benefited the business. This is an example that ended up being a large revenue generator, even though the actual ideal was quite simple and didn’t take that long to implement.
This example is an improvement to an algorithm (although calling the original version an algorithm is stretching the truth a little) that one of my developers spotted. As a consumer finance company we lend money to customers, which means we have to do in-depth credit checks and income assessments against our customers. For the credit check we use a popular credit reference agency in the UK. When you make a service call to this company, you will either get back a credit file, or you get no result.
The point of sale system has free text fields on the customer registration screens which means there was no structure to how a customer service representative entered customer addresses into the system. This could mean that in a lot of cases, for example, the customers post code (or zip code for my American readers) might get entered into any number of fields, which routinely happened.
This meant that when it came to filling out the service request for the credit agency call, it was hit or miss as to whether the postcode ended up in the correct field. If it wasn’t entered correctly, then the credit agency wouldn’t be able to fully identify the customer and would return no credit file. As well as post code we have a similar issue with a house number, house name, or flat number as part of a larger house.
Let’ say for the sake of argument that this happened 15% of the time (I won’t divulge the actual number). That’s 15% of customer’s where we potentially won’t lend too. One option was to fix the Point of Sale System, but that was deemed very high risk for various different reasons plus. Plus that system was managed by a totally separate team and with being a legacy Delphi Fat client, it was a nightmare to deploy to nearly 600 retail stores.
One of my engineers, Hugh, saw an opportunity to improve this 15% figure by doing some clever address and string manipulation and fuzzy matching. The change in this one piece of code reduced that no credit file rate by 2 thirds, which had a direct correlation to extra revenue as that was potentially up to 10% extra customers that we could lend too. The business were delighted, that we managed to do this change without affecting or breaking anything else. During this project it would have been unfeasible to change the point of sale system and deploy it into all the stores as well as change the underlying database tables that held everything together.
Creating a Culture of Innovation
Innovation is something that we should all strive for in our day to day work, but I feel you need to have an environment where you can innovate safely. By this I am referring to technical systems within your IT department that can guard you from mistakes being made whilst people are innovating. I am talking about having a robust continuous integration pipeline in place where code being checked into the source control repository will automatically get built, unit tests run and then installation packages created. By enforcing the running of unit tests across your systems you can help to guard against changes being made breaking code in other areas. If you do not have a continuous integration pipeline in place, then you have no way of telling instantly if a change made in one part of a system has knock on effects to other areas.
You do not want to just rely on unit tests though, you need a decent suite of integration tests, and hopefully acceptance tests to help to mitigate against accidental breakages. In the example of the address matching used during the credit scoring process, we already had an extensive suite of tests in place, so when the address matching rules were changed we could see the impact across the system.
Automated testing isn’t perfect and its success in this case depends on the completeness of the tests implemented by the developers, but it should guard you against a lot of problems if your team are disciplined.
From Cost Base to Revenue Generating
If you work in a technology focused company then this probably won’t apply to you as much, but if like me you work in an IT department supporting a business then your department will be considered a cost to the business as opposed to a revenue generator. Being considered a cost is something that has always worried me as during tough times a company will look to cut costs. Something I have been very keen to do at my current company (in financial services) is make us a department that can generate revenue above projects that are already initiated by the business. This is where innovation comes in as it is the extra changes and innovations that you make that can help bringing in extra revenue for the company.
I have already given one example about the address matching that had a direct revenue impact for the business, but my team has put in many different changes that have had revenue impacts. It is important to work with your business partners to track this revenue and record them so that over a fiscal year you can report (with evidence) the impact your team has had above and beyond your normal projects.
This article has talked about the importance of innovation in your team and the benefits it can bring to a business. I gave an example where a member on my team saw an opportunity to innovate by tweaking a process which actually had a large revenue impact for the business. Being able to innovate is great, but you need to be in a technical environment where you can innovate safely. This means having things like continuous delivery, unit tests, integration tests are very important because as you try things out you can see immediately if you have broken anything in your systems.
I also discussed briefly that if you work for an IT department that serves a business, then you are a direct cost to that business. By trying to innovate solutions you could get your department to a point where it is generating revenue.
The final part in this series talks about different leadership styles and which ones lend themselves to team motivation and innovation.