I just cam back from the ALT.NET meet-up (It was great!). I met with very interesting people and learned a few new things, right now I’m going over my notes from the session to try and sort the information in my head.
One of the sessions I participated in was about how to convince a company to start TDD/Unit testing or SCRUM.
Convincing my previous co-workers and friends that their team should use unit testing/TDD has been bugging me for quite some time and it was great discovering that I’m not the only one that had thoughts on the subject.
The following is a brief summery of the ideas I heard on the sessions along with my thoughts on the subject:
Convincing the Developers
It seemed that most of the participants of that session had some thoughts on how to convince a fellow developer to use unit testing/TDD:
1. Better Tools
- Better tools makes it easier for a beginner to benefit from unit tests from the start (think Resharper).
- Tools can generate high quality and easy to understand code the developer will be able to use it from “day one” easily integrating the new technology in his daily work and by working with the new technology will help asses its merits.
- Good tools help reduce the initial (an so painful) learning curve that every dev encounter when starting to use a new technology.
The other big advantage of a good tool is that the knowledge becomes available when a certain need raise.
2. Knowledge base
Obviously it is easier to learn a subject that has a lot of entry level information that can ease the transition.
- Blogs and forums
3. Show them how their current works becomes simpler/better
By taking an existing part of that developer/team code and using the new technology on it we can show its benefit.
In our case by showing how to implement a new feature using TDD we can convince other programmers of the benefits of using unit tests.
All of those will help convince a fellow developer (and perhaps a team/dev lead) to embrace the new technology – but what can we do to convince a manager (even our own manager) to use a new technology as part of the development process?
Convincing you manager
Although convincing a developer to use a new technology is important, in most organizations there is a need to convince a manager to allocate the needed resources.
On that point it seemed that the session participants had more problems then solutions…
Talk their talk
To convince someone you need to know what is important to him. So in order to convince a manager you first need to know what is important to them in the project he is managing.
If the manager cares about quality, development speed or happy employees then you need to be able to show how the new technology can do that.
Research on the subject that shows how the new technology impacts the development process will help you to validate your claims in the eyes of you manager.
Proof Of Concept or Demo
Doing a POC is good way to show your manager how the new technology can be used in the current project.
Perhaps you might be allowed to perform a such a demonstration or try to use the new technology for a while to asses it.
This is a great way to teach fellow developers on the new technology so they could also join your cause.
There are many ways to convince your own (or someone else) company to use a new technology I think that it is important to be positive and try to be persuasive.