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
Choose the evaluation license that fits you best, and start working with our Expert Team for technical guidance and support.
Request free trial hours, so you can see how quickly and easily a model can be solved on the cloud.