Typically one of the first steps in the data science process, would involve problem formulation. During problem formulation, you'll be attempting to identify a business issue that needs to be addressed and then try to put that into terms that are both understandable and actionable. The problem formulation will be a key part of your early project because it can often identify what the reason or driver is for the project and also what the requirements for the project will be, as far as being understandable. The problem formulation needs to be described in terms of business needs and actionable in that it should outline high level direction as to the approach that can be taken to actually solve that particular problem. So to start with, it's a good idea to frame the problem by writing down a description of what it is that you're trying to solve. Now this should be done very clearly and imagine that you're going to hand your description off to someone else, for them to actually develop the solution. So in this way, it will require you to think through the steps very clearly clarifying your intentions and ensuring that the description of the problem is clearly understandable to anyone. For example, you might say something like the organization is collected enough demographic data about our customers but there isn't a process in place that leverages the data in a way that is helping our business. And so we could frame the problem and in context something along those lines, now, additionally, we need to understand what the driver is for solving the problem. And so there's a number of aspects to consider. First of all, we need to identify why the problem needs to be solved. And this rationale will then help us to do things like evaluate the results of the project and also to make any appropriate compromises that may be necessary during the project. We also need to identify, how the organization will benefit from the solution and by doing this, we may be able to get buy in from stakeholders or the necessary support of resources from the organization. And once again, knowing what the benefit to the organization will be, will help us to then evaluate our success at the end of the project. We also have to think about who will end up using the solution and how long it will be used, what this is going to affect to a large extent is how polished the solution needs to be, how long we're going to need to be able to support it. And also just exactly what deployment requirements may be necessary as well. So if we're very clear about these kind of things, it will help us to ensure that we are solving the right problem and we're solving that problem in a way that is actually going to produce benefits to the organization. As we go through the process. We want to provide background information that will help to solve the problem and make sure that we document these things. So for an example, usually will be starting out with some assumptions at least. And so we need to document things like sources of data that we have deemed acceptable or sources that are unacceptable. And perhaps the reasons for that, any kind of special operating requirements that would be necessary for the solution. Perhaps, some of the software libraries that we have chosen require a particular platform. Maybe even, we have a solution that is designed to run on top of Lenox or something along those lines rather than windows. And we also need to document the business context and constraints, things like project timelines, who will use the solution and so on. It's also a good idea to document any reference problems. So perhap,s we've worked on similar problems or projects in the past. And if we document these as references, then they may help us to select the best approach towards implementing a solution ourselves. Now, just because we've gone through all of these steps, it's really important at this point that we determined now that we understand the problem, whether this problem actually is best solved through data science or not. So clearly defining the problem and exploring whether it is more appropriate to solve it through data science or through traditional programming is a very important decision to be made at this point. Data science problems, rely on data obviously, and if the quantity or quality of the data available to solve the problem is insufficient, then that could make data science a poor candidate for solving the problem. And of course data science problems, could potentially become more expensive and time consuming depending upon the nature of the problem. And that could outweigh the benefits of using data science as a solution. So if there is a simpler, more cost effective solution through traditional programming, then we should consider using that here in really the first phase of our project. We should ask ourselves and also our colleagues, whether the solution can be developed using simpler methods and strategies. Remember that what we're trying to do, is we're trying to serve the business needs first. And if the usage of data science can't be justified, then we should choose an alternative approach.