This time I would like to open with two different stories and take the conclusions out of it.
As you all know I’m involved in many software projects this days and learn a lot from them.
In one of my projects one of the team leaders, a Java veteran, complained that the data scientists in the team liked to work and code their ideas in Python. He claims that python is compiler free and hard to manage code and he don’t like it.
It’s clear why data scientists use Python. It contains comprehensive tools and libraries for data and NLP manipulation. It’s clear why Java engineer don’t like it. Python is very fast to write language but hard to debug and not safe enough from engineering perspective.
The second story is about myself. In the last year I’m hearing a lot about microservices. Moving from monoliths, N-tier applications, from web services to small microservices architecture.
I tend to ignore this trend as it seems to me like yet another buzz word, calling same SOA -> WebServices -> REST architecture microservices.
Then I realized there is symbiotic connection between the stories.
The reason why micro-services is the write approach is the same reason why the data scientist can and should use Python while the team leader, engineering member can and should use Java or any Object oriented structured programing language.
Micro-services give the software development teams the flexibility to use in the same solution and same product the best tool or language for specific use.
It also enables loose coupling between components, and fail safe in case one of the components failed or break.
From this story I came to at least two conclusions. Everything has it proper use in the right time and need.
You should be open to other member’s ideas and be able to be a micro-service like by yourself to get the best from tools and best practices from everyone.
And at the end, use new paradigm and technology wisely to gain best results.