What kinds of arguments do you use? What kinds of arguments actually work?
What strategies for transitioning to the "new" have you proposed, and what has actually worked out in real life?
1–10 of 47 posts
What kinds of arguments do you use? What kinds of arguments actually work?
What strategies for transitioning to the "new" have you proposed, and what has actually worked out in real life?
asking beforehand for me always led to a wide variety of different arguments of why we can't use a different language. the most common two being the following ones.
* we can't find new developers with that experience
* our developers don't know it
I don't remember what happened clearly but I am able to recount one instant..
My father is a pro C# guru. His organization was having hard time investing in a proprietary library. High costs had him thinking. I suggested him to use a python based open source library. He asked me to mind my own business and not to meddle in his affairs. That night when I came to his room to good night, he was sitting reading the python documentation!
We use PHP for most of our web stack at work. This includes long-running consumers that are part of our growing service-oriented architecture. PHP all over. It's hard to say "no" when everyone is familiar with it.
We've dealt with pretty crappy performance, compared to other solutions, using this setup. It puts a lot of backpressure on our publishers (we use RabbitMQ as our messaging layer) and it causes queue build-up, which requires manual intervention, etc etc.
I had mentioned how we should switch to a better language: didn't go that well. We have a lot of code written already: nothing insurmountable to rewrite, definitely try something new. It has to be a more sure shot.
One of our developers, though, wrote a test application in Java to show how much faster we could be consuming and processing messages. He actually replicated one of our simpler services, which isn't much more than turning the messages into rows in a MySQL database. I believe the Java consumer had a ten-fold performance increase over the PHP one.
So, now, we have a few internal working groups for various tracks of improvement to our product, and one of those groups is exploring Java as a possible language to switch to for this area of our infrastructure. We have people dedicated to actually vetting it, not just talking about it at the bar or something.
Long story short, and to echo everyone else: you can't just tell people there's something better, you have to show them something better.
Depending on the environment, the change will bring its own set of difficulties and those will need to be addressed. Sometimes, it's a matter of the people involved. For instance, you are the only one passionate about a new language and others are not or is willing to learn and others are not, etc, then you suddenly have a new problem that may not have existed before, including having to support your colleagues through the transition.
As for arguments, etc, those should arise from your situation. If the current system is not working, make that clear. You may have to repeat yourself to get the point across. But do your homework first. Know what's broken and how your suggestion will fix it. Know the advantages of the current system and the distadvantages of the new one. "Trying something new" does not seem like a good reason; surely there's a reason why you use language X?