Author: Dr. Kostja Siefen
As a Technical Account Manager in the mathematical optimization software industry for many years, I have had the opportunity to work with a wide variety of customers on their implementation projects.
Although each customer’s mathematical optimization application is unique, I have noticed that each project follows a similar, common pattern: Every mathematical optimization project (from initial idea to actual implementation) is a journey.
A solver like the Gurobi Optimizer is not a simple, “plug-and-play” type of software tool – it is a sophisticated AI technology that empowers companies to tackle their toughest problems, make the best possible business decisions, and realize optimal business outcomes.
Developing and deploying a mathematical optimization application in your organization is a challenging endeavor that requires not only the right technologies, but also the right expertise and the right approach. To achieve a successful implementation, you must be able to integrate and align mathematical optimization technologies with your existing software systems, your processes, and your people.
Reaching this goal is (as I said before) a journey – which takes time and effort, but can be successfully completed if you take the right steps. An important part of this journey is research and education. You’ll learn a lot along the way and some things may turn out differently than you expected.
At Gurobi, our team of experts is there to accompany you throughout this journey – to provide support, guidance, and assistance and help you navigate your way to a successful implementation of a solution powered by mathematical optimization.
In this series of blogs, I will try to give you a general sense of what you can expect on your journey, highlighting the key steps that you will take, the major milestones that you will reach, and the possible pitfalls that you may encounter. Just like a real journey, this implementation process can be challenging, and proper planning, good communication, and resourcefulness are critical when things don’t turn out the way you expected.
So – without further ado – let’s begin this journey together…
Taking the First Steps
The Chinese philosopher Lao-Tzu once said, “The journey of 1,000 miles begins with a single step” – and this is true of your mathematical optimization journey.
So, what’s the first step on your journey? The first step is to have a discussion (or series of discussions) with all relevant stakeholders across various functions in your organization (including IT, R&D, Finance, Analytics, Data Science, Supply Chain, C-Level, and others) – and it would be wise to invite external, expert consultants from the mathematical optimization software industry as well.
It is imperative to invite all these stakeholders to these initial discussions, ask them questions, and get their ideas and perspectives – as failing to do so may ultimately result in issues later on in the implementation process such as:
- Lack of agreement and alignment among stakeholders on the goals of the project.
- Lack of understanding on how to use and support the solution after it’s implemented.
- Lack of clarity on IT requirements – which can have a negative impact on the performance of the solution.
Be aware that mathematical optimization systems are normally deeply embedded into a framework of systems and processes – so lack of alignment among stakeholders can become a major source of problems.
The way this initial discussion is framed will vary from company to company – as every company is starting their mathematical optimization journey from a different place. Maybe your company (like many companies out there) has identified a business problem that you think could be addressed with mathematical optimization, or maybe you a clear idea of a possible application, or perhaps you have already developed a prototype of an actual application.
But no matter what your starting point is, the aim of this initial conversation is the same: Get a full picture of your implementation landscape – which can be used to help create a roadmap for your implementation project. It is important to note that this picture and roadmap are by no means set in stone – you should always expect the unexpected and be prepared to change course if necessary.
The “getting a picture” analogy is particularly appropriate here – as mathematical optimization software implementations are more of an art than a science. Each company’s mathematical optimization application is unique, and each project begins essentially as an empty canvas. The main reason is that the technology itself is so universal that it can be used in nearly any time scale (from operational to strategic) at any level of automation.
In this initial project kick-off discussion, you – along with the other stakeholders and external experts present – will try to develop a picture of your entire implementation landscape with the software application on one side, the users on the other side, and the IT architecture in between. You should strive to define your underlying business problem as well as the overarching IT infrastructure for the software implementation as clearly as possible. Make sure this picture is based on “what is possible” – not strictly “how”. In this early phase, you should also define functional and non-functional goals (also known as “user stories”), not tasks.
By doing this, all the stakeholders in your company can gain visibility over the entire implementation project, identify possible problem areas and issues that need to be addressed, and figure out how to design, develop, and deploy a mathematical optimization application that fits your business needs.
Be prepared to struggle with organizational barriers as soon as processes involve different departments with different goals and perspectives. It is not unusual to see internal competition and conflicting targets. Keep in mind that “optimization” always necessitates choosing a certain perspective to quantify the quality of an outcome. By synchronizing this perspective across all stakeholders, you avoid confusion and conflicts right from the beginning.
Key Factors to Consider
In this initial exploratory conversation with internal stakeholders and external experts, there are several key factors to consider as you try to develop a clearer picture of your mathematical optimization implementation:
- Users: You need to determine who will be developing, deploying, and using the application in your organization and whether you have the right people with the right skill sets in-house (or whether you need to bring in a partner to help you with a particular aspect of the implementation like building a mathematical optimization model). Conducting this sort of “maturity assessment” – especially with an expert consultant – can help you flag any skills gaps you have and decide on how best to fill them.
- Use cases: You should also determine how the application will be used by figuring out:
- Which business problems the application will be used to address and which decision-making processes the application will be used to support and improve.
- When and how people are going to use the application in those business processes – as these scenarios will be used to estimate the usage intensity and enable greater process integration.
- How critical the application will be to your business operations – i.e. whether it will be used simply to validate manual planning and processes, or if it will function as a vital, mission-critical application.
- Which level of automation you aim to achieve – i.e. whether the application will be used to support manual processes, as a decision support tool, or as a fully automated decision-making tool.
- IT infrastructure: You should take stock of your current IT infrastructure to ensure that you have the necessary resources – hardware and human – to set up, run, and manage a mathematical optimization application. You should think not only of your IT infrastructure needs today, but also in the future – because if you want your mathematical optimization application to scale, you will need to have a flexible IT environment in place to support this growth. Of course, many companies today look to the cloud as the new state-of-the-art way of scaling applications on virtual hardware (depending on the system load) – so this is definitely something you should consider.Maintaining your own IT infrastructure can be time- and cost-intensive. Machines need to be provisioned and deployed, maintained, scaled, etc. The tradeoff of relying on a third-party provider instead of running on-premises needs proper risk assessment.
By talking about and thinking about these three key factors, the full picture of your mathematical optimization implementation will begin to come into focus.
Once the big picture becomes clear, you will have a much better sense of how mathematical optimization technologies could integrate and interact with your company’s systems, processes, and people.
As always, communication is key. You must be able to ensure that – at this early stage – you get buy-in from all stakeholders, and have the green light to proceed on your mathematical optimization journey.
Gaining this holistic understanding of how mathematical optimization could fit into your business ecosystem is the first step (and a major milestone) on your journey.
For me as a Technical Account Manager, there is nothing more rewarding than accompanying and assisting customers as they progress on their mathematical optimization journeys from the first steps (the initial discussions and brainstorming described here) to the final goal (implementation and utilization).
Throughout their journey, customers can leverage the Gurobi team’s expertise (along with that of our consulting partners) to help them on the problem side (identifying which business problems should be addressed with mathematical optimization and how to solve them), on the tool side (figuring out how use a solver), and on the IT side (determining how to integrate the mathematical optimization application into their existing IT infrastructure).
In the next blogs in this series, I will take you through the next steps in your journey including evaluating and choosing a solver, designing a deployment architecture, creating a mathematical model of your business problem, and conducting development and testing of your mathematical optimization application.