We use cookies on our website to give you the most relevant experience by remembering your preferences and repeat visits. By clicking “Accept All”, you consent to the use of ALL the cookies. However, you may visit "Cookie Settings" to provide a controlled consent.
Necessary cookies are required to enable the basic features of this site, such as providing secure log-in or adjusting your consent preferences. These cookies do not store any personally identifiable data.
Functional cookies help perform certain functionalities like sharing the content of the website on social media platforms, collecting feedback, and other third-party features.
Analytical cookies are used to understand how visitors interact with the website. These cookies help provide information on metrics such as the number of visitors, bounce rate, traffic source, etc.
Performance cookies are used to understand and analyze the key performance indexes of the website which helps in delivering a better user experience for the visitors.
No cookies to display.
Advertisement cookies are used to provide visitors with customized advertisements based on the pages you visited previously and to analyze the effectiveness of the ad campaigns.
Other cookies are those that are being identified and have not been classified into any category as yet.
We all know that implementing optimization models is nothing like “normal” software development. You cannot define a simple to-do list upfront and execute the tasks according to a strict schedule. You need creative freedom, hours of research, and many failed attempts. It takes courage, creativity, and perseverance. Your colleagues should not ask for a plan. In fact, they should just leave you alone during this tough period until you tell them, “It’s done.” Optimization is an art. There is no other way. Right?
I have worked with many teams over the years, each with its own way of working when it comes to implementing optimization in practice. Some share the mindset above, while others take a different stance. Having seen the full spectrum, I tend to side with the ones applying best practices from other disciplines. In this article, I will show what that looks like in practice.
Before writing a single line of code, there are three things you want to have readily on hand.
Time to get cooking! Instead of implementing your complete model formulation before running anything, try taking an iterative approach. It takes a bit of discipline but is more rewarding in the long run.
The reason for applying an iterative approach is that you can validate your work continuously. The earlier you can do this, the more likely you are to find mistakes at a time when it’s still relatively easy to solve them. Implementing (or worse, deploying) a large optimization model at record speed is not that rewarding anymore if one bug after another surfaces. Here’s how to avoid that:
The ideas above are not unique—in fact, they are being applied in many software development teams working on topics including (but definitely not limited to) optimization. They are not a guarantee for success either; most likely after completing the last part of your formulation, you will need to start looking into performance, code refactoring, and additional tests. But the next time you hear about best practices “out there,” ask yourself whether we, as operations research practitioners, are really that different. There’s always something to be learned.
Technical Account Manager – EMEAI
Technical Account Manager – EMEAI
Ronald van der Velden holds a MSc degree in Econometrics and Operations Research at the Erasmus University in Rotterdam. He started his career at Quintiq where he fulfilled various roles ranging from creating planning and scheduling models as a software developer, to business analysis and solution design at customers worldwide, as well as executing technical sales activities like value scans and "one week demo challenges". He also spent two years as a lead developer at a niche company focused on 3D graphics in the entertainment industry before going back to his mathematical roots at Gurobi. In his spare time he loves spending time with his wife and two sons, going for a run on the Veluwe and working on hobby software projects.
Ronald van der Velden holds a MSc degree in Econometrics and Operations Research at the Erasmus University in Rotterdam. He started his career at Quintiq where he fulfilled various roles ranging from creating planning and scheduling models as a software developer, to business analysis and solution design at customers worldwide, as well as executing technical sales activities like value scans and "one week demo challenges". He also spent two years as a lead developer at a niche company focused on 3D graphics in the entertainment industry before going back to his mathematical roots at Gurobi. In his spare time he loves spending time with his wife and two sons, going for a run on the Veluwe and working on hobby software projects.
GUROBI NEWSLETTER
Latest news and releases