Latest Entries »

Top virtues for a manager are to be able to select great professionals, to create a happy workplace and to promote innovation, learning and creation of ideas.

There are books and books written on how to achieve this, but many companies are struggling with unmotivated, chaotically hired employees that are “just working somewhere” and from that source they expect great achievements and to win in the market. Unfortunately, that doesn’t work.

As was I already writing in the past, the key problem in every business is conceived when owners are not able to verbalize what are goals and what they are trying to do with their investment. First and most valuable layer of goals should be around expected profit margin and its growth. “How to do things” is allowed from owners only if that is a distinctive business value that generates revenues otherwise, just confuses and clutters the pipeline. If you instead of growth (measurable, not to be “better”) you set goals as “create good product”, you will fail because “what is good?” and “why do you think that good product means profit?”.

When you have understandable goals (as profit growth), management has to hire top technology person that will start creating philosophy and products that will generate revenue that will be transferred into a profit. That person has to also be personally motivated and to have share of that expected profit. By using of that top technologist, you start hiring senior and a lot of junior professionals that will be “flash” of your creativity. They have to be from diverse backgrounds (to be able to provide different ideas) but they have to generally share same philosophy around some key aspects.

Seniority represents a trust. Do not hire too many senior professionals compared to juniors. You as a manager will entrust a lot of decision power to your top technologist and some to senior professionals. Think about it during hiring process. Never try to create amorphous mass, a goo of indistinguishable people because that will kill their productivity. Try to have them competitive between groups, but also to understand that majority of productiveness happens when they work as a team. If you setup them well, they will generate great value automatically and you will have a really good prerequisites for a success.

Different companies are using different techniques to keep employees motivated. Some of best I’ve experienced are to show that each of them can do a contribution that will be recognized and appreciated and let them be productive. Productiveness is the best motivator for technology professionals so clear space to let that happen. Build teams that are proud of accomplishments and happy to show successes. Create showrooms, create town hall meetings where you will let everyone to show great accomplishments and “what I’ve learned”.

No islands. You have to explain that everyone should be connected to hands-on creation. That will promote learning and staying up to date with technology. You do not want to have architectural boards if all of members will not sit with everyone, one-on-one, even with most junior developers to make connection and to detect potential issues by talking about ideas and solutions. One bad example is to have “diagram architects” and to create a body where developers present their technology changes to that board and get approvals. If you check principles of modern agile, you will see that architect role is dramatically changed and now is more an advisor, a guide or a coach than an executive and a decision maker. For that reason, architects are members of teams and not a separate body.

To be able to achieve this, in many situations you will have to bend rules and to let more chaos to happen than what you would like to have, but science shows that more control means less innovation and your job is to find a line where you get most from it. One of great approaches is cutting of waste and managing businesses by following lean business principles: have rules just enough and have control mechanisms to add new rules and to remove ones that are not longer needed. Also, sometimes you will do some practices as no one before and in the end if best practice is discovered, than all companies would follow that one and be equally successful and as you can see, that is not happening. Focus on delivery and results, not on process! A culture will create process, but process will not develop culture.

We all like to live and work in well established and organized environments. That is history of humans for last thousands of years. But, change started with emerging of individualism in England and later in other countries (as USA) something interesting happened. In many countries people started being more and more innovative because innovation was connected to their interests and that was to improve living conditions. Today’s wealth of top countries is based on that freedom and individualism.

In everyday business we see a diverse company management styles, but one that is distinctive is combination of lean business and promotion of innovation. You would say: distinctive in what? In output, in company value gains. To be big or to be small doesn’t need to have any impact on company health and future. The problem is because larger company is, it has more and more strict rules about every detail of business. But it doesn’t need to be the case. There are positive examples that have less waste than counterparts (Google, etc).

Rules are definitely welcome, but we have to be really careful not to overdo them. Businesses are trying to make perfect system where great rules and regulations make people irrelevant so everyone is replaceable. In real life, that doesn’t work. We have science supporting that, and even it is clearly visible by watching successful companies. Greatest companies are successful because they have successful and great individual innovators that have a vision and know what is the right path to achieve goals. For example, Steve Jobs return to apple rejuvenated that company and after he left, Apple has similar problems as before even it is much wealthier company. That is why clever businesses keep their innovators as “golden geese”.

Great managers have to nurture intelligent individuals that like to try new things, that think about solutions without dogmas learned in schools. For that reason, my experience as a manager in the university taught me to hire interns and people not too established. All of them became great IT professionals. They learned how to think freely and how to solve everyday issues. After working in the university, all of them became top tier IT professionals working for great international companies.

For that reason, if you start micromanaging people it will make them passive. Some companies hire more managers to “animate passive workers”, but that always fail. You have to promote a feeling of ownership and allow individuals to get cheers when something is good or to be responsible if something ended bad. Not to be understood wrong: you have to allow people to fail sometimes because without failures there are no innovations. I learned from one manager that you have to ask them: “what do you think?” before you say something. It is the same when you talk to a patient. Any opinion you say before patient says what he/she thinks only “pollutes” his/her opinion and removes some value from the conversation.

Do not hire people with only questions how they did something 10 years ago by focusing on technology. It is entirely irrelevant. In past experience you should research on person’s ideas, adaptability, critical thinking and problem solving ability. You are not hiring someone to solve your problems as 10 years ago, but to help your business to solve problems in the future. Especially knowing how dramatically technology changed only in the last few years.

In the future we do not know what technology we will have. Sometimes it is extremely hard even to predict. For now we see that open source, distributed computing, big data and high business responsiveness approaches are winning and for that reason ideas as NodeJS had great success. Also many others. Even some hard to change companies like corporate giant Microsoft did tremendous move forward with plans and architecture of new .Net Core by moving it to open source, opening C# and compiler to other IDEs and other servers then Microsoft. But how successful that will be, future will show.

Great individuals will make you successful as a manager. Do not even start thinking that you can be any good manager by yourself. Remember: manager is professional that manages resources in the name of owners. So, if you create great team of individuals and let them to be productive, it will return as a great success to you as their manager.

Remember, do not allow yourself to be caught in any dogma that will cut your ability to see the future clearly. Open your mind!

Today I will try to analyze one of top problems in today’s business. It is inability to detect waste and I can assure you that there is waste in every company, in every process in everything. If you do an audit, you will not be able to see anything because of waste.

What is waste? Waste are unnecessary processes and procedures or unnecessary phases that don’t bring any value. Why that happens? Definitely not because that was an intention, but because generally there aren’t established processes detecting it. You will hear rarely that anyone is at all talking about it despite the fact that waste can easily kill any business.

Who is responsible for managing waste? As with everything, if management is responsible for managing of resources, the same management is responsible if those resources are managed improperly and if there is unnecessary spending. But that doesn’t end with management. Everyone has to be focused on trimming waste as a part of daily activities. Management has to encourage people to find waste and suggest optimization for existing processes.

How to detect that there is a problem? Just pick any meeting. If you don’t hear two sides and someone asking why we are adding something and after added asking to measure its value and update if needed you definitely have a waste. It is natural process that waste is created, so if you do not have anyone talking about process of self-trimming of business complexity and cutting of not needed pieces you will have more and more waste every day.

Because of waste, you have lean business philosophy originated from Toyota, but developed further by others. It is very attractive and helps modern companies to be focused on high-value business activities and to keep costs under control.

Lean philosophy demands discussion how to have “just enough” complexity and to actively work on keeping business productive. It asks everyone to be able to critically review processes.

For example, if there is a phase where someone signs some form before car in a production line can leave factory and after review that signature is given to 100% cars even if they are malfunctioning, that signature is a waste.

Other example would be if you have testing department that never finds a flaw in a product and really you never have issues that means you are overpaying production. Why? Because, generally, producing personnel is more expensive per hour than testing personnel. You always have to have workload spread to different departments and to have everyone working on their level of high-value activity.

Last example would be if you have two managers per employee. Why, because you are trying to better organize work. Why you need so many managers? Usual reason is when you have no trust on your senior professionals so effectively you are treating them as “entry-level”. This practice will bring many problems because managers are frequently not able to make professional decisions so they create enormous number of hours sitting in meetings for everyone. Those meetings are closely managed and guided so again value is lost. Members of the meeting are quiet and answer with “yes”, “no” and “maybe”. If you start telling someone what to do before you hear his opinion, you are losing the value of hearing unbiased opinion. How to detect this? You have very passive professionals and all activities are initiated by management which is not a good idea. And instead of actively working on getting professionals to be more involved you are trying to fix the problem with more managing.

Ok. Whose interest is to have low waste business? Primarily owner’s. Management will always inflate numbers to extremes because everyone wants to have larger budget and more employees to manage. To prevent that, owners have to connect well with top management, to share ideas with top management and also know how to measure performance and following of business goals. If owners are not able to do that, they have to add few very trusted board members that will represent owner’s interest and that will not have executive powers (to avoid conflict of interest). For the same reason it is not good idea to have Chairman and CEO in same person (if it is not the owner himself).

Everyone had an opportunity to sit in numerous meetings contributing in writing documents full of terms including mission, vision, goals, strategy, etc. But how many times you witnessed a creation of a real value document that helps all parties to understand simple questions:

  • why are we here?,
  • what are our goals?
  • what tools and activities we will use to reach our goals?
  • how to know that selected tools and activities are well aligned and effective in reaching goals?

Why are we here is relatively simple to answer. We are here to help the owner to reach its goals.

What are our goals? This one can be tough. Many companies fail to establish a clear and understandable goals so management and employees have to rely on assumptions and that can lead to clashes, establishment of clans and many different issues producing problems every day. How to detect this? I think the good test is if you cannot explain why you or your peers are doing something that you cannot connect to known goals. General confusion starts when people do not understand how daily actions are helping us to reach goals. Second issue is with companies that establish too generalized goals from the class of “nice to have” ones. A car factory can set its goal to “produce best cars worldwide”. Can we measure that? Yes if we declare that under “best” we consider highest sales or highest number of produced cars or highest profit margin or highest yield for investors. See, it is very helpful if you set your goals to be specific. Then, everyone will understand your actions and your business will perform as well oiled machine.

How to get there? This is the reason to employ great professionals because they will help you to select the best tools and methodologies for reaching goals. Also, in discussion with your “first layer of management”, generally a board of executives, you will put some possible dates, split your journey in short measurable phases and after that majority of your job will be to track its progress. When you discuss specific methodologies, you have to ask about why one is outperforming another and equally important: “how will we know that expectations are not met?”. Never allow tools to become goals. Example is that if buying of ocean-view apartments for real estate company will have the highest yield than it is aligned with goals, but if it is just to have a nice apartment portfolio owned, than we have a problem.

One really interesting thing I’ve learned at Harvard Business School are caveats when “someone is in love with its idea or solution”. Why caveats? Because in that case solution can be both a gold mine and a complete failure. Never forget that, usually, people who are in love with ideas are not objective. You have to invent a way how to measure that solution with numbers. In many cases it will really show that solution was a brilliant one, but that has to be proven by numbers and those numbers have to follow end goals of the business. You want assembly line to increase production from 30 to 50 cars in a day? If that is a goal, than measurement has to be some counting of produced cars.

Last piece is mingling among unclear and generalized goals. What then? Based on my experience, if you are an auditor, always trust actions you see more than goals you hear. Why? Because actions show what people think goals are. If you are buying a new machine that will help you to reach those 50 cars in a day and after one year you see that you decreased from 30 to 25 cars and in the same time your expenses doubled, you have a problem. Also, if everyone thinks that new machine is “bringing business to the next level”, never forget to ask yourself how everyone overheard you that goal was 50 cars in a day.

Managing of business is nothing but science. That means that dogmas are not welcome and that we have to question and measure everything and provide enough info for others to measure and reach similar conclusions. You have to be able to do all magic and use all your and your teammates knowledge to help business reach its goals.

Why a lean business is so hard to have?

Since introduction by Toyota, lean business principles are more and more used by some of most successful companies. But, why it is so hard to introduce lean business principles in majority of companies? Because everyone is against them, everyone except owners and market.

Lean business general thought is to cut all actions and procedures that are not proven to directly help production timeline and quality. Lean principles treat all other things as a waste and tend to eliminate them. That exposes key items of productivity and nearly all of them are measurable.

Management, senior and junior professionals will in general tend to do things that are not measurable. To fix that, you have to be really clever with picking people for managerial roles and intelligent in giving your management clear and strict instructions about how to introduce competition, promote learning and sharing of ideas and opinions and how you will be grateful for all actions that are helping in your business goal: quality product on time.

It is easy to say that, but how to know that there is a problem? You will see enormous production of papers and “tasks to be done” full of words like: “increasing visibility”, “making customers happy” and generally never words about how to do it, when and what is cost and expected result of that change. That will show that your teams do not understand that you are not paying them to do things but to have things done.

So why everyone is against lean business? Because lean business is cutting not needed positions, creating competitive environment and decreasing costs. Modern managers behave as they are leading roles in union more than “governing hands of the owner” as they should be. They will kill you with costs, they will kill your productivity and you will be lucky if you survive the market. From three different competitive strategies: first runner, quick follower, legally protected, if you are in first two (as most are) you can forget it.

How to fix it? Again, pick top managers that you will use to run for you and your interest. Reward them for any move toward business goals (speed and quality) and you will see that lean business will come automatically.

During his tenure in management, every manager has to understand that delegation of responsibilities plays extremely important role in everyday business. Because a lot of managers arise from other professionals, delegation is one of problems they do not address well often. From my experience, the top indicator that there is some problem is if manager is “tired”. Generally, that tiredness is created not by managerial duties, but by a feeling that “I can do something better than my team” and then you have manager becoming a resource.

Manager has to trust his people. When you hire professionals you have to pick people that are professionally trustable and accountable. More senior position is, more you have to be able to trust them. When you delegate some responsibility, you will create a feeling of ownership which creates much better performance and leaves you more time for other managerial duties. If you have to check everything and approve everything it shows: 1. you are not able to hire people properly, 2. you are not well organizing your team, and in the end: 3. you are reducing productivity and output of the team you manage.

If I delegate everything, what should I do?”. This is very often remark that shows other problems. As I already wrote: you have to manage resources, not to be one. When manager is not properly delegating execution of some tasks to his team, he sacrifices some items that should be in the top of his list and that are: creation of strategy, creation of vision, evaluation of previous performance and creating an environment “to make it better next time”. If you have team members coming to you asking how to do something or/and what to choose for every detail, you can know that you broke the system. Team should be able to function without you making decisions for every detail. You will find companies with a lot of senior professionals without any trust to make any decision. That means that: 1. you are overpaying your people or more common: 2. you are not delegating responsibilities enough.

It is never too often to repeat that the top position in the list of duties for every manager is “increase of productivity”. Anything you do has to be oriented towards that and all optimizations of the procedure, changes, hiring and selection of technology has to be in the direction of increasing, communicating and maintaining of productivity:

  1. education of team members – creates people that are solving problems quicker and with more quality
  2. motivation of team members – increases their performance and ideas
  3. promotion of diversity of opinions – creates a much wider “knowledge bag” that will offer more diverse solutions to problems and requirement
  4. creation of feeling that everyone has an important position and role in the team – increases performance
  5. creation of feeling of responsibility – team members will start to fight for tasks they are assigned to, not to be passive and inert

Conclusion. I know it is hard, but you have to see that top managers in the market spend a lot of time in creation of positive thinking, innovative culture and most important: they have people they can trust. Managers generally have really untied hands to do a lot of conventional and unconventional things for the benefit of the company so do not waste that trust from the owner and use that to create a difference.

Every manager tends to create more stable and more “quieter” environment for working. Outcome of that is elimination of all people thinking “progressive”, “different” and introduction of beautiful peaceful environment everyone would wish for. So what is the problem? The only problem is that that system is planned failure in long-term both for that manager and even more for the company.

Positive behavior. More senior manager you are, more you have to understand that you are here to introduce and promote positive behavior in all groups you manage. You cannot do micromanagement because it shows to your managers that you are not trusting them and also elevates the stress among non-managers. Also, you are responsible for the procedure and for organizing and by micromanaging you are giving a direct admission that you failed in that chapter. Ok. You have great managers under you, you have process and one day they discover that you have more and more yes-tellers around you. That only means you are sensitive and you positively react to all people agreeing with you in everything. Soon, you have “your people” against “other people”. Even people who do not agree with you will start to agree of risk to be out of deciding group and definitely out of list for promotions.

Pollution. Even in the most situations it is not intention, but when you start “game of thrones” everyone is loosing:

  1. your players because everyone start thinking that they value is based only on you. Every decision or statement they say is accepted as your and they start to be frustrated,
  2. opposition players because they become demotivated and inert with no contribution to the joint cause,
  3. you because you are spending more and more time to fix dramas and not do business. Later you start to have more and more issues with your superiors or with owners if you are senior manager and
  4. in the end company because you created a chaos that is doing everything opposite from your goals: decrease of productivity, decision instability, lack of trust, increased employees turnover, etc.

In the end: if you are not able to move back to the track you will bring business to the point that everything will stop and complete system will be oriented to fix problems you created with misbehavior. If you let it go too far, you are voluntarily putting you on the list for removal.

The root of the problem. Never forget that management is “managing of resources” and the most valuable resource we manage are people. We have to show the trust relationship with people we manage and build the feeling of responsibility. If we are successful, people start to be stand-alone professionals defending the interest of the company without your interventions. Then you are responsible to keep them motivated and promote positive culture. During hiring process, you have to hire diverse people that will help you in the future. Diverse backgrounds mean diverse experiences and in the end more possible solutions to “need to change” requirements. Completely opposite: if you hire only people that will follow your ideas and support whatever you say, you will never have some kind of internal check about what you do.

Science in management. Management is as many other branches of human activity based on scientific methods. That means that every decision has to be based on need, observation, plan and it should have verifiable success. Sometimes we succeed, sometimes we do errors, but we have to measure them and be able to explain every anomaly happening in the process. That makes us better and better managers every day. As in science, it is good to have independent audit or consult someone who is not “polluted” with our way of thinking to check if the methods we use are aligned with goals we have set and with regulations present in some industries (as HIPAA for healthcare, SOX for corporations, etc).

Way to fix it. Everyone had or will have the situation with lack of people that will make a contribution to our decision making process. As any change, we have to detect the problem, to have some plan and to correct it in some time. In the end we have to see positive impact. We should try to do all efforts to keep best players in the company, promote them to have and express diverse opinions and allow people to feel the ownership and to be productive. In modern business, the good practice is to create small motivated teams and to show everyone how every additional energy spent for the best interest of the company is well appreciated. Promote people that are trusted by others and that are respected without your interference.

Conclusion. Even many managers think that, but we are not here for anything but for the “best interest of the business” that is directly aligned with “best interest of the owners”. The best interest is increasing of value of resources business owns or uses, increasing of responsiveness and productivity which combined leads to increase of revenues. Good culture, motivated professionals, open panels and exchange of opinions dominate in every successful modern company. Reading that, you should think about your process, your people and try to find what could be better tomorrow: what could help and increase your output and quality even more?

Regardless of if we are changing the delivery route for our goods or changing the application used by our employees or users every change of business process has to comply with the process of change. Process is needed even we have smallest business and really small impacting change. Process should be trimmed to really simple one (especially if we follow lean principles).  There are few phases before we start with a change:

  1. detect, describe and understand a need for change
  2. create an idea about what has to be changed
  3. create a plan in steps to introduce the change
  4. create a measurement tools of success for every step
  5. describe and understand potential risks during change

A need for change. Before we do any change, we have to first declare that some change is needed and to describe why. If we do not have this, first phase any move forward will lead us to change of status that is risky and that doesn’t have verifiable outcome. That is definitely not wanted scenario for any business regardless of size of business or size of change.

What to change. If we know what has to be changed, we have to use professional capacity of our team members to create the best idea about what is needed to be changed. Change is very often process and it creates new value for the business. To have the best performance in change, top businesses are investing a lot into creating of teams of diverse players. Diversity promotes ideas and in the end makes business benefit more than if we have group of similar thinkers.

Plan in steps. Never do change in large moves. Large moves have large risk for business. Because we have to try to keep risk in controllable state we cannot allow escalation of size of change steps. Doing change in steps does not mean that change will be slower, but that in the end it should have better stability in the end. Steps allow us to plan much better and to detect any deviation from the original plan.

Measuring of success. Continuing from previous section, every move have to be able to be measurable. All people that are executing the change are somehow biased about the change. For that reason, business needs to develop some system that will allow more or less independent measuring of the success of change. Sometimes it is done by the same team members where we have to focus on numbers that are not easy to misinterpret. In perfect world it should be done by independent peer review where we remove bias. It is more expensive measurement, but creates much more precise data. Decision should be based on impact of change and potential risks.

Risk of change. Every change, even tiniest one has its risks. In many businesses you will see groups of people unable to move anywhere because of ultimate fear to introduce any change. If that is paired with disoriented management you have more and more intensive issues with business performance and in the end business tends to fail. Thinking about that, we have to put all risks in the equation and understand that sometimes change with more risk will remove risk that will accumulate and destroy our business. The complete concept of lean business is partly answering this problem with proper dosing of intensity and complexity of the procedure. Generally there is more risk of business failure because of not having the ability to change or to be adaptable/responsible enough than of risks emerged during the change. As managers, you have to keep in mind that there are always quicker and more responsive business and because we are operating in the free market we cannot afford bad business practices.

Conclusion. Business management, especially management of IT is sensitive because it impacts whole enterprise. We have to understand the procedure, understand majority of principles of good management and do intelligent moves in proper time. Even managing is complex activity, that doesn’t mean that it cannot be done well and better and better every day. After you complete some task, do retrospective and try to make it better in the future. Grow in knowledge and easy adapt.

Different companies are doing different businesses on a completely different way. But many companies are losing money because of lack of understanding of the position of management. If you follow books: “managers are entrusted by owners to do business as eyes and hands of company owners by respecting owners best interest”. That said, what is the problem? Many managers do not know, care about or understand that statement. You will see a tendency of bureaucratization in every management and also transition of management to do their jobs as “union leaders”. If anything will increase the value of staff you manage, do it but do not forget who you represent.

From my experience, common error in communication between owners or upper management and lower management is question as: “how you will fix xyz?”. That is not the question. The right question should be: “how you will use your team, create a lean and effective procedure following quality standards to resolve tasks management above you or/and owners put on your list to do?”. No one want to answer that question and upper managers and owners will rarely ask that one even that is the only proper question for a manager. As I said in one of previous articles: to learn management best practices you have to be able to learn from your and other people’s errors. First error is that managers are playing as “resources” and not managers. In the meeting, they have opinion about all professional topics and they will rarely or never ask their team to help them with something. Also, you will see micromanaging that promotes chaos, dissolves trust and introduces complete demotivation especially with senior staff and always ends with a failure.

The main focus of every team and every manager should be measurable productivity. In IT, a modern CIO has to use architects to create framework for responsiveness, stability and scalability of products. He has to introduce culture of learning and adaptiveness. As every other manager he has to create a positive culture that will increase productivity and quality and that is his best contribution to company he is entrusted to manage. As manager is hired on basis of significant trust, hiring process of all staff members has to follow similar principles. If you are hiring senior position staff member, you have to be able to entrust some task and to rely of his/her decisions. If not, you hired junior staff member as a senior one or you hired wrong person for needed position.

In modern time, good companies’ managers provide really impressive project plans, show dedication and good culture creation which promotes them to A-grade leaders. As a manager, you have to respect the feeling of owners that they are spending too much and that everything can be cheaper. You have to show them all benefits of your decisions and to emphasize ways how to use their money as an investment that brings benefits for the company. You have to have intensive communication on appropriate language with everyone. If you are CIO, you are called to help company in creating longterm strategy and goals in IT. Today, by following of TOGAF architectural principles: “IT is everyone’s business”. It influences all parts of the company so it has to be really reliable and enable company’s growth. When you select best technologies for your business, do not forget that technology is not a goal, but only a path to achieve business goals.

To conclude: As a manager, you have to improve your management skills every day. You have to learn from others, both their successes and failures. After you complete one phase or some task, use some time to analyze what could be better done. If you are not able to find anything wrong, you will not be able to grow and improve your skills in time which leads to deterioration of managers value in time. Ask people for opinion, try to use all resources to improve your performance which will bring fruits both to you and to a company you manage. Never forget: be focused to your team’s productivity because in many cases that is the only visible and important outcome of your work!

Today, more and more engineers are offering and pushing for use of NoSQL technologies. It has better performance, infinite scaling and it is much cheaper. But after some time spent in the same debate I think the question is completely wrong. The real question is are we aware that we cannot use databases as anything else but data storage and also that for connected layer (direct applications use) we can start forgetting about joins and relations between tables.

SQL technology started in 1970-es and it was revolutionary in every point: it allowed structured storage of data, it created a system for not repeating of data (normalization) and it allowed security and easy maintenance. Today, we have large established SQL systems as Microsoft SQL Server, Oracle, MySQL, Postgres, and many more. But with invention of NoSQL technology solved important problems and created grim future for SQL as an approach of storing of data.

What SQL databases were missing? Well, with SQL everything is good if you have small data. If you have a bit more of data you have to start archiving old data and that is the reason your bank account cannot show all data from the past but only predominantly last 12 months of activity. We are all used to it and banks decided to archive everything older to allow new data speed and good performance. And after that you have second example as e-mail accounts that can store infinite number of e-mails from the future (as Google, Yahoo, Hotmail, etc.). Same with Facebook. You do not see disclaimer that “only posts from the last 12 months will be visible”. Why? Because they use NoSQL.

But can we conclude that we have to use NoSQL because it is “better”? Yes and no. My opinion is that NoSQL brought different architecture of data storage, but if you start thinking about why NoSQL can scale indefinitely you will see that SQL can mimic that benefits, but it has to renounce “what is good in SQL”. The first to be shoot is normalized data structure and constraints. Why? Because if data is normalized you cannot store different parts on different servers. Especially if you have strict constraints validation. For example, if you have table of doctors with 100k doctors and other table of patients with 1m patients and if they have relationship you have to keep them together if you want to have any performance. If not, adding a new patient will demand search through all locations of doctors table data to check if that doctor exists which will make whole system really bad performance.

To conclude, I think the real answer is to reduce or even eliminate data normalization wherever it is possible. Also, you have to stop using databases as an integration layer for different systems and different management studios of databases as UIs to change data (as many companies does). As I always say: you can violate all these rules, but if you go with highly normalized SQL it will be really few times more expensive, demand more people for maintenance and will need some compromises for user experience. Every of two technologies should be selected based on use cases: reason, not emotions.