This guest blog by Felipe Haro, of Noorjax Consulting, follows his AnyLogic Project Life Cycle webinar. The webinar investigates how best to manage simulation projects and can be found at the foot of the blog. This blog provides simulation project management context and introduces the main themes of the webinar.
A discussion on how to develop successful simulation projects
Building a successful simulation project is a complex endeavor that can lead to failure if proper tools and best practices are not used. The webinar objective was to discuss, for each phase of a project, how to work optimally.
A story about purpose...
As a stakeholder in a project, you are responsible for defining what the project is trying to accomplish. With a clear definition, you set good foundations to develop on. A poor definition might lead to a simulation that does not help solve the root problem, it will likely cause delays and could threaten project completion — no matter how perfect the simulation model is. Let’s look at an example.
Not long ago, I received a specification for a simulation model of operational processes in an emergency department. The simulation should demonstrate a year’s utilization of beds, waiting areas, and other resources throughout the department. The simulation model needed to show the emergency department management board the potential of new strategies. The purpose of the simulation model was clear — or so I thought.
I did have questions, but they were open questions about which modeling libraries to use. My questions related to the Pedestrian Library's features and whether they were necessary for the simulation. Using the library when simulating a year's worth of emergency department activities would produce a slow simulation compared to using the Process Modeling Library. With that in mind and without unlimited resources, the project went ahead, without the Pedestrian Library. We were simulating operational processes after all.
...and assumptions
On delivery of the simulation model to the client, it became apparent that the design choice was basically wrong. A comment revealed that the most important information from the simulation would be that which related to how COVID transmits between people — to help define social distancing policies. This was new information. The model gave clear insights into emergency department processes, but it did not provide insight into person-to-person transmission dynamics.
From the specification, I had sought to model operational processes. The COVID context had been assumed by the client but not specified and the outcome was a model that was really very different from what was needed.
So, what was the problem here? Straightforward miscommunication was what the problem was. And the lesson? Always double-check what deliverable is expected, no matter how clear the request seems.
What is obvious to both parties, client and modeler, may not be common to both. Clarify the deliverable, check the specification, and check it again. Is there any room for doubt? Not getting the specification right can delay a project, increase costs, and cause a good portion of frustration.
Project management tools
Once the project is clearly defined, the next step is to have a robust project management methodology and process. From experience, I recommend two individual concepts: version control and agile development.
Version control allows you to keep track of all versions of a simulation model. This is particularly useful when working in a team. It also allows a team to merge models when different individuals of that team are working together on the same model. AnyLogic uses SVN version control, but Git is also a popular example of version control change tracking software. If you have never used either of these methods, I recommend checking out some of the many resources available online.
Agile development is a popular software development method, based on making incremental changes, that allows a team or even individuals to be adaptive and responsive to changes in requirements. In the simplest case, it works as a to-do list, but in the most advanced scenarios, it comprises several best practices, including making the best of the team spirit and productivity.
For agile development, there are also several courses for learning the most popular techniques, such as Kanban and Scrum.
Learning an agile development technique will most likely improve the quality of your simulation models, especially if you work in a team or as a project leader.
The simulation development journey
Developing a simulation model can be a complex undertaking and a successful outcome depends on many factors. Not least, a mix of soft skills related to communication and leadership, and technical skills for that ensure flexible and robust development. In my opinion, there are four key points to remember when tackling any simulation project:
- Understand what you are doing. This seems obvious, but it is easy to fall into the trap of just adding pieces to a model, without fully thinking through the implications. You need to think about what the addition represents in the real world. Each addition to a model needs a justified purpose that agrees with the real world. In short, if you are not sure about something, stop and think.
- Focus on flexibility. The model you are working on right now will have to change. This is almost certain. So, you need to develop your models in a way that gives you the least number of headaches when the goalposts are moved.
- Test, always. Don’t accumulate errors, isolate sections for independent testing, understand what your model outputs should be, and test those outputs against your predictions. And, when making a change, be aware of the knock-on effects on other areas of a model.
- Validate. When you are ready to show your model to a stakeholder, be sure to validate your model, find all applicable techniques, and use them. That way, you will be ready to justify your design decisions and model workings. Make sure the model you created accurately represents reality.
If you follow these guidelines, your project life cycles will flow smoothly, you will be able to handle project re-structuring, and you will minimize headaches when change requests arrive.
Hear more from Felipe Haro in the webinar AnyLogic Project Life Cycle.