“You pushed your ideas.”
Have you ever heard this? I have, and as a negative. We as developers work in a very collaborative way, so at first it’s understandable where this could be viewed poorly. However, when developing products for a client, how does one know when they are pushing idealism vs. professionalism?
So I posit: Idealism builds brand new things. Professionalism builds those things right.
After review of the code, having recently moved out of Dojo to Durandal, the code was structured, but fractured. Nothing was testable (a quality desired by both client and team). My answer was to bring in solid architectural principles based on the design of AngularJS. The shop was already using Durandal with future plans to move to Angular 2.0, so it seemed natural. I offered the ideas, was encouraged to share, and gave an informative (albeit direct) presentation to the back-end and front-end developers of what I dubbed a “client side data layer” to handle our communications. The Java developers grilled me hard, but we all agreed this was nothing more than a back and forth about understand the fullness of the design, not an argument. My team disagreed, thinking I had pushed too much. I later confirmed with the Java team this wasn’t the case.
Until I got push back, from my own team.
2 iterations after being allotted sprint time by the client my team lead had still been reallocating my time to bug fix tasks. I don’t mind helping, but 2 sprints of fixing bugs after such a successful start can be, truthfully, annoying. Along with other personal problems my work time suffered. The UI firm and I parted ways. Aside my time, “You pushed your ideas”, was the only other thing mentioned.
Idealism or professionalism, what have I witnessed? Should a developer strive to provide the solutions to the problems presented him, or should they earn money from the client through hand holding the client while they decide what they want? The first I truly know to be a right way. There are honest people that earn money doing the second. Is their title “Developer”, “Architect”, or “Programmer”? It’s obvious my opinion is no. I believe my experience is exactly what I am hired for, and in a niche where misinformation is rampant, clarity is key.
I understand many UI firms have a certain image they promote: “Creative Support” I like to call it. Help them believe your ideas are their own. I see a fundamental flaw when this approach is applied to code development.
What are your thoughts?