I was recruited as a Freelance (Technical Referent) in a solid company in order to build a new version of their mobile app that I suggested them myself.
We need you because your skills are scarce and we really enjoyed your personal mobile app, that you showed us during interview. If you accept, you will lead the project.
I am very experienced in programming fields so the proposal interested me.
I started a prototype and even added some great features, when both chiefs came and told me this weird thing:
We love what you built at this time for our next mobile app, but your skills and your code quality are too high to be understandable by all the developers team. We had a meeting (without me so), and we dropped some methodologies you recommended:
- No more Test-Driven Development and no more unit tests.
- No such high-demanding code reviews.
- Some copy paste from the old version of the application, in order to go fast for other developers. (The old version code was totally unreadable and ugly; believe me).
No need to tell you: I had some hidden tears hearing that...
It's true, I'm perfectionist.
It's true, software programming is my main passion.
It's true that I have uncommon skills for programming (according to many developers I know).
It's true, I expect a very high quality of coding.
It's true, I wanted/want to help the team to improve itself, with free lessons from me, detailed code reviews etc.
My chiefs keep expecting of us a good quality of software, because they aim to be the country's app leader in their field.
I struggle to accept those new "guidelines" because it's against my professionalism about software.
Two days ago, I saw a mountain of code from other developers aiming to be integrated into the application that makes the whole work badly. If it goes on like this, soon it will be too late.
How should I convince chiefs (non-programmers) that to end up with a really good software requires all the methodologies I tried to impose and good developers (I don't dare to reveal to them my thoughts about the other developers' poor skills)?
In one month, I will decide whether I renew my contract (they want) or search for another mission.
I just talked with the client (company's director) about this situation.
Now, I understand the whole:
They were clearly not aware that I work here on behalf on my own enterprise named "XXX".
The reason is that my headhunter sold me as a simple consultant of HIS company, a simple resource so, rather than presenting me as an enterprise's president, aiming to provide services on my own.
I've just learned it!
So the client admitted that as seen as a "simple ressource, besides having the title of expert", I was too much a decision taker on the project that was entrusted to me; that "scared" people.
He understands my attitude and my misunderstanding of the situation.
In my mind, I was acted as a completely and autonomous separated entity, aiming to provide a service, although being present locally, in open space.
On my contract with this headhunter, it was written that I will act as a representative of XXX, not as "Michael".
As XXX and to increase my reputation, I expected such strict methodologies of development in order to build a great product, and not be braked by the "poor" qualities of the global team.
Note that only two people worked with me on this project, not 10.
It should not be those two co-workers (that clearly claimed not wanting to evolve and learn methodologies of coding) that would avoid me to produce a really good product.
I have to talk seriously to this headhunter right now...
Good lesson for me.