Many machine learning (ML) projects are doomed to fail. This can be due to various reasons and often they occur in combination. To avoid failure, all involved stakeholders need to understand the technical and organizational requirements of the project.
Besides all preliminary discussions that define the project, it is important to summarize the project-relevant information in a comprehensive proposal. It should cover the technical and organizational requirements, possible problem areas and technical restrictions. In this article, I will describe the most important modules in machine learning project proposals. For a software provider like dida, the project proposal is the first step towards meeting the needs of the customer.
The Problem Definition
Finding processes and tasks for which it is desirable to automate them is not difficult. But this alone does not give you a proper basis for an ML project. Defining the exact scope of an ML project is crucial to understand the requirements and the additional value for the business.
First of all, the maturity level of the software to be developed must be clarified: Is the project
The latter means that the goal is to integrate the solution into the current workflow. In particular, clarifying this question will help determine whether it is mandatory to develop all requested technical features. For the development of production-ready software this would usually be the case, whereas research-oriented projects often admit more flexibility.
Defining the software's expected maturity level should should come hand-in-hand with an initial iteration of the target performance and evaluation measures. In this way, the project managers and developers get a good idea of the technical feasibility.
Next, one needs a description of the input to be processed and the output to be generated. This includes specifying whether the solution will act as a support or as a stand-alone decision-making system, and whether human control will be part of the process. Based on this information, project managers can assess the critical technical steps, and the developers can also already think about suitable methods and algorithms.
The project definition should also include an estimate of the return on investment. This ensures that all stakeholders, including non-technical ones, understand the benefits and limitations of the project.
The contractor and the client should, of course, discuss these points before writing the proposal. In any case, the proposal is important to summarize the technical and business objectives.
Data is a key factor in machine learning. Thus, for a successful ML project it is crucial to have a detailed overview of the underlying (labeled) data. An overview of data availability and data quality is essential for assessing the technical feasibility and also has an impact on the financial planning.
The main characteristic of the data is the data source. It could be e.g. open source, in-house or commercial data, which have different advantages and disadvantages:
Open source data are free and easy to access but might be of low quality.
In-house data are often of high quality and free but might be unorganized.
Commercial data are of high quality but might exceed the financial scope.
The assessment of the data quality depends on different factors. These are e.g. spatial resolution, temporal resolution, diversity of data points, etc. Their influence on the achievement of technical objectives depends on the problem itself: for some projects low-quality data can be sufficient, for others there is no way around high-quality data. The evaluation allows to determine the limits of accuracy of the solution and whether the project is more research intensive
Another important characteristic is the amount of data and whether it is already labeled. Since most of the standard ML algorithms need a lot of labeled data for the training process, the size of the datasets is another factor determining the technical feasibility and target performance. Based on this, one can also identify technical drawbacks. If data labeling is part of the project, it can have a major impact on financial and time planning: the labeling process is time-consuming and requires a lot of staff, which has to considered in the project plan. It also allows developers to research techniques that address the limitations of having too little labeled data.
As explained above, the database and its characteristics determine the technical feasibility of the project. Thus, customer and contractor need to analyze the data before the project. This makes it possible to assess suitable methods, target performance and technical limitations.
To use machine learning models and its processing steps in production, they need to be deployed. This might include the integration into an existing IT infrastructure. Additionally, one has to link the model to a data pipeline. When no data pipeline exists yet, creating it would be an extra implementation step. These steps particularly affect the scalability of the solution and the time planning.
First, the customer has to define how the workflow should access the model outputs: how does the output influence subsequent processes? Either they serve as input for other automatic processes or humans (the staff, customers, ...) continue to use them. This determines whether one has to integrate the model and its processing methods into an existing IT infrastructure or develop an interface allowing access to the model results. This is directly reflected in the planning of time, financial and technical resources. Also, the parties have to agree on how the contractor’s and client’s IT teams work together to carry out the deployment as smoothly as possible.
The model complexity has an impact on the technical requirements for the deployment and the scalability of the model itself. Depending on the expectation of scalability and model response time, the developers can identify technical limitations as well as appropriate design and optimization methods. This includes to assess hardware requirements and suitable tools for the deployment.
The deployment of an ML model is as important as the implementation and training of the model itself. It has particular influence on the usability of the solution, the scalability and the financial planning. Thus, the parties should define technical specifications and expectations for the deployment prior to the project.
The project plan is an important factor of an ML project and summarizes all relevant information. It includes all technical steps, time horizons, planned personnel and the financial budget.
Project plans do and should change during the course of the project, because changes are always necessary in software development projects. But project plans are still useful for an overview of the critical phases and to keep an eye on the technical objectives.
The project plan should be structured into work packages. In this way, the project is divided into clear steps, which are reasonably separated from each other and otherwise logically built on each other. The work package description comes with an estimate of the duration. The duration of a work package is indeed just an estimate, as unexpected technical problems can often occur. Still, it helps not to lose sight of the project in total and its objectives.
Additionally, for major technical objectives and implementations belonging together it makes sense to define milestones. These milestones set clear time horizons at which the team plans to complete technical steps. They have the purpose to measure the progress toward the ultimate project goal.
For each work package, it is reasonable to give an estimate of the planned personnel and their working hours (or days or months). This gives an estimate how much effort each work package requires.
As already mentioned, the project plan is not something to strictly follow. Changes are always necessary and desired in software and ML development projects, especially for agile software development. It guarantees that the project team can adapt to problems as they arise. Notwithstanding, a project plan helps to structure a project and gives an overview of the next technical steps and involved personnel.
Developing and rolling out software is not for free, obviously. Besides the personnel costs, budget for extra resources is necessary: hardware, computing power, third-party software for deploying, testing and maintenance, and more. Thus, one has to determine which additional resources are required. This includes to identify which resources are already available and which have to be purchased.
For some resources, e.g. the computing power or the amount of time for completing the project, one can only give an estimate in the beginning. Hence the customer and the contractor must reach an agreement on how to deal with the case when the budget is exhausted. In this way, conflicts and the failure of technical goals due to funding are avoided.
The above points are the most important factors when it comes to planning an ML project. Each has a big impact on a successful completion of the project. They should not only be part of the preliminary negotiations, but also of the concrete preparation of the proposal. It includes all agreements made and ensures that all parties involved can refer to them at any time.
Depending on the nature of the project and the relationship between the client and the contractor, certain items may be less relevant. But according to dida's long experience in ML projects, it is always worthwhile to deal with these points in a project proposal. I also recommend our article on the most important questions we ask our customers before a joint ML project.
I hope this article is a helpful outline for writing an ML project proposal leading to a value-added business process automation.