When you read the headline of this blog, you might think that we are going to explore some best practices to follow to avoid risk while building software, right?
But, this article aims at throwing some light on the very aspect of why you should question best practices, what should be the priorities and how not to be swayed away in the flow of either business aspect or technological aspect of the application.
There is always a gap between the business focused and technology-focused group of a company. The technology side prefers a solution-driven approach, improving efficiency, depends on work-roadmap, wants speed and needs investment. Whereas, the business side is more focused on the client experience side, immediate fix to an issue and how much profit they can make to sustain.
There is a dire need to make business and tech come together to achieve desired results so that both parties can be at ease and continue their work without taking their company towards DOOM.
Some of this gap got bridged with the introduction to DevOps, but that's not it, what we need are deliberate efforts, coupled with thoughtful steps, that often yield long-lasting positive results. The approach is more critical when it comes to a company adopting new technology as it can be quite challenging to undo a strategic or tech mistake at a later point.
To allow a company or software application product to know if they are doing it right, whether they are using technology and business concepts in a sense that people working for that are getting the benefits they desired, there is a model called
Sanity Model that we can refer to.
1st quadrant shows how technology and business if goes hand-to-hand can deliver growth, and how it's opposite can lead to a complete doom (3rd quadrant). Either of the things if are lacking within a company (2nd and 4th quadrant) can lead to frustration of one side or another, which if continued will be swayed away to doom.
This model clearly shows how a well-balanced approach can result in growth and if any of the sides (business or technology) gets unnoticed or is not properly funded (either through money or skilled people) can result in the DOOM of the organisation.
One example of growth could be of Tesla, how it uses its business to deliver a top-notch user experience and how far ahead its technology is in terms of e-vehicles. Now, it should not be taken as if every company should halt its daily operations and start following Tesla's model of work, it is more important to get our priorities right first.
As for DOOM, we can talk about Nokia's model of work, how they focused on the technology-driven market first, but later on, only tried to book profits without much going on their tech side.
We can all day discuss the sanity model and it is a topic of greater research and deliberations.
Here, let's focus on some points on what could be termed as a risk to our application program.
There are several companies that are going on and on about the benefits of using tech like AI (Artificial Intelligence), that even a common man would think he can solve everything with it. But it is fundamentally important to have figured out how their (company's) strategy or overall business model works and if they need tech like AI or not.
For example, just for the sake of it if a company deploys an ML model for a task that could be achieved with the help of traditional algorithmic style coding, and invest heavily in ML/AI for that task, then this approach puts AI program at a risk due to potential budget runs out as well as getting into a rabbit hole technology upkeep.
Whereas if they invested that amount of money in a vision of long term sustainable architecture, they would have been able to achieve growth.
Different vendors try to sell new technology like it is the only thing they need to solve some problem. What we need to understand is that using a new tech is okay, but using it for something that doesn't require it or not needed at this time can be a big mistake.
Just because someone else is doing it, it does not mean you should. Vendors only want to sell applications in name of best practices.
Take all advice you want, but getting priorities right is crucial.
For industries and organisations, it is important to have a certain number of human intervention. Most companies hire on a contract basis, which may look good and profitable in short term, but as the company grows it becomes more important to have FTE (Full Time Employees) because later on, these FTEs are the ones who are going to run the company and grow beyond.
Many fears that automation will eat humans job and put the company in a more profitable situation. In my honest opinion, they will never completely go into dark factory mode. Dark Factories are fully automated, robotic facilities where there are no humans.
But, if a company is only profit-centred, anything will look okay.
Taking humans out of the equation, making an extra profit while destroying a community around it, is not something any company would want to do.
It is important to know the risk it involves on many levels and be considerate of the employee's work that goes into it.
When you use tech in the right place it can be helpful, everywhere else it can be painful.
At last, I would like to highlight some points to avoid the kind of risk we discussed here:
- Use the given tech for the right reason.
- Use the given tech in right place.
- And, do not try to write-off human employees in the name of new tech.
Well, that was it from me. A very heavy blog maybe (for me at least), but I hope it lit a fire of question inside you about the work you do and how your company values it, knowing the risk it involves.
Try to ask those 3 points when you are starting something new or modifying given tech, so that in future you can look back and feel at ease, knowing your decisions were not wrong and it led the company towards growth.
Just starting your Open Source Journey? Don't forget to check Hello Open Source
Want to make a simple and awesome game from scratch? Check out PongPong
++ your GitHub Profile README? Check out Quote - README
Till next time!