I'm currently in a trouble I never encountered before.
I'm technical expert (freelance) for 5 months for a well-known French company.
My goal is/was to:
- Create a mechanism interfering with their backends to allow push notifications (iOS, Android) on several of their mobile apps (more than 10 apps).
- Create a completely new version of one of their most famous mobile app.
The first goal was completed very successfully.
They were very satisfied.
I started the second in a great way too, starting by architecting the whole project, up to a really well-achieved MVP.
Here's the thing:
I was expected to build a completely new app using modern technologies with this rule:
"The look and feel and features of this second version of the application should look EXACTLY the same than the actual version on the stores."
As a very experienced programmer, I chose to start implementing use cases (based on some user stories), following the Test-Driven Development methodology that I well master.
I was working alone on the project since I was the unique person there being able to do it in a very clean way (according to them).
They were very happy to see a nice and bug-free app on a demo meeting.
Two weeks ago, in a meeting (10 persons), my chief told me:
"The app development isn't so fast, I don't see the exact look and feel of EVERY screen; it lacks some PNG icons!".
As an expert and professional, I explained him that it's far better to focus on invisible but real significant improvement (like algorithms of use cases), than a very simple CSS to put some icons.
10 minutes after the meeting, I integrated those icons in the app to show him and he was very amazed/happy. At this moment, I decided to put far more graphical elements as the app evolves day after day to satisfy him.
To give you an idea of the app's size, it took me about 10 000 lines of code to achieve the whole first use cases in a very very cleanly way. So my implication was substantial and I was very proud of my product.
People around (even the director) were very amazed by the quality of the product and experienced developers about the quality and readability of the source code.
I was very happy to work there and totally motivated to continue building this challenging app.
Two days ago, a specific meeting occurred about the application.
They announced me that thing has changed, and that all my GUI part (layout) and navigations mechanisms should be thrown away; and even some of my modules about algorithms!
Reason: They will be subcontracted to an external agency for a reason I ignore.
I immediately asked: "Why ???? The app is perfect as it is, and you told me that you were impressed!".
Given answer: "We didn't decide, instructions come from "above"".
They accepted to show me some of their screens that I've never seen before (and first delivered source code about some algorithms), and note that they agreed they sounded far less professional than mine (weird decision so).
In other words, I would not be the technical leader of the project.
Some tears, remembering all the tricky things I've done to have a perfect app, including GUI.
I wrote a mail to my both chiefs to point out that I was very disappointed given that new information and that I want to understand why they didn't explain me that 2 months ago (they revealed they knew it 2 months ago!). Frustrating to have made a great product for ... the trash.
In short, in a mail:
I was recruited as being the technical leader of the project. It sounds that I will not master a lot of decisions about the technical aspects of the app and it's not pleasant to know it, please explain why you were hiding this to me.
After reading this mail, they don't talk to me any more; like if I was a ghost in the open space.
Not even a minimal "apology" for the thrown code, nothing.
I was very upset this morning but a colleague told me to take it easy; to not think about leaving; that I was a very good and scarce developer and that the team clearly needs me for future development of the same app.
I don't know what they have in mind.
Why would a chief sidestep one of his best employee? Why don't they dare to answer my e-mail?