If you want to write a piece of software, you need to make a design effort before writing the code. But if you have a complex situation, you need to do a bit of architecture work before the detailed design and we always start with why.
Why? Film production is a labour intensive process and involves lots of individuals in different roles, and our mantra is “Better and better stories, together”. This is the reason behind our need for a good platform to manage information about individuals and their roles.
What? We use terms as customer, supplier, employee, contact etc in our business language and this information is stored in lots of different systems, and in many cases without integration.
When we look at our processes and existing IT applications, it’s obvious that we need a better way of managing master data. Therefore, the priority is integration of this type of information.
The other type of major assets we use is media, and we will describe how this is managed separately.
How should the solution look will be defined by our requirements, strategies & principles and taking into account the constraints and risks. My preferred way of this is to develop several logical scenarios, and evaluate them to see what works best for us.
Do nothing, continue with all manual processes until later
One master where all updates are made, and then pushed to other systems
Each system is updated separately, and the master is then updated, and push to the other systems
Each system integrates to each other and make updates
One single system that manages everything
For each of these scenarios, we do a SWOT analysis and the compare. Within this analysis, we also need to look at costs and benefits in a business case.
To understand what is doable in reality, we need to know how our processes work and what kind of integration point each system have. The constraint so far is that StudioBinder don’t have any integration points at all. The Visma and Microsoft products all have public API’s. We will probably add more systems or change applications as the company hopefully grows.
We are detailing our main process, film production, for different types of productions since a long time ago. The sales process is also being documented and depending on the type of sale, it’s either simple, e.g. a hire or more complex for a production of a feature.
With what is the next question? Should we go serverless with Azure Functions or have a traditional web-application in a Linux environment. AWS or other cloud provider? Relational database or not? Language(s) of choice for development. Open source or paid products? Implementation time-line and features in first version?
We are now talking about the choices we do when we are making a more detailed design. A very hard choice to make, without having answer to the questions earlier, thus the need for enterprise architecture.