## Problem to be solved in the design stageTo understand the problems that needs to be solved in the desiging stage, let me give you an example. Lets say "I am giving you a task of traveling from your office which is in the business dictrict to the airport which is on the outskirts of your city". Think about it "what is the real problem that you will have to manage while doing this task ?" Do you agree "The way one behavior can have multiple implementations .. similarly one problem can also have multiple solutions as well" Its true one problem can have one or more solutions .. This is also true for the problem I had asked you to solve. The problem given to you was to travel from our office to the airport which also has multiple solutions. The first solution is to walk down to the airport. The second solution is to take a bus to the airport. The third solution is to hire a cab to the airport. While the last solution is to take the service of charter helicopter to the airport. So think about it ... if your problem has four ways of solving the same .. then what is the real problem? The moment I pose this questions to my participants ... I start getting the right problems from them.. Most of them say "Cost", "Time", "Efforts", "Luxury Quotient to flaunt" etc. All the above are right ... but what are they ... Are they not the non functional constraints of the problem? I hope you will agree .... it is actually these non functional constraints which makes your problem extremely difficult as you will need to choose one of the four possible solutions which closely matches these non functional constraints. Please remember "Whenver there is a problem ... be it personal or professional ... A problem always will have to two parts .. one is the functional part of the problem while the second one is the non functional part of the problem". The current problem also has two parts . The functional part of this problem is "Traveling from your office to the airport" which is not the real problem .... as this can be achieved using any of the 4 possible solutions. While the non functional part of the problem is ..You have limited efforts, limited time, limited amount of money to spend and you want to flaunt a particular luxury quotient. The moment you super impose the non functional requirements on to the functional requirements , you will have a grid of problems to solve and your job as a designer is to find out one of the possible solutions which balances most of the non functional constraints. I am deliberately emphasising on the word "Balancing" because there is no such thing called as a perfect design or a perfect solution What is a perfect design or a perfect solution? A perfect design or solution ... is a solution which takes care of all the non functional requirements which is technically not possible [As you know most of the non functional requirements are directly or indirectly proportional to each other]. Saying this, let me share one more word of advice to you, "Never argue on designs and architectures". I have seen numerous situations which have turned ugly because of an argument that started because some one critizised a design decision of another stakeholder. I have seen numerous design discussions where in a person comes with a design saying this is the perfect solution without realising the fact that there cannot be a perfect solution and without realising that there are some non functional constraints this solution doesnt satisfies. The best way of putting across a design is to explain different possible solutions clearly describing the pros and cons of each of the possible solutions and then let the audience or the stakeholders decide on the solution based on the non functional constraints. The moment a person describes |