CI/CD for outsourced software development

This time I’m back in the trenches after the high-flying in show business in the last post.

I’m still using film business as an example as I’m not allowed to talk about projects I’m doing as a employed consultant for different clients.

Introduction

As you may recall, the tool-chain for collaboration in film production is not scalable as we have a number of process bottlenecks. 

One way of solving those issues would be to develop custom integrations and custom apps for our users.

As we all know, custom development takes time, is expensive and costly to maintain. So if we develop an CI/CD pipeline and a software architecture for microservices, would custom development be more feasible?

I have also been in the IT business so long that I know that you can’t give free hands to developers if your want things to work together. At least not for a very long time.

Solution concept

We made an example of a high-level design that used micro-services three years ago, and we could probably re-use parts of those thoughts.

Our strategy is that we will not run any application servers on-premise. Everything should be on cloud as we don’t have internal resources for support.

Our main Directory and some of the applications (Microsoft Office 365) are in Azure. The other shared applications are hosted on AWS by their respective suppliers.

We also use Postlab in Cloud as a repository for film edits, and this service is based on github.

Solution concept

So far, this is more of a green-field operation as we only use COTS solutions. For those with legacy code, it’s much more complex.

If we look at a full CI/CD cycle, we talk about Edit code, Build, Test and Deploy in production, and at the same time assure software quality.

CD : CD flow.jpg

We also need to have environments for development, test and production. In addition to this we need test data.

But we don’t want it to complicated or expensive, therefore open source solutions is a good alternative. It also makes it easier to be vendor agnostic.

As the software we develop will give us a competitive advantage, (why bother otherwise), we need to protect our source code. Something that have an impact on using open source.

We assume that if we use containers for both our source code and tools, will it be easier to maintain them and to replace them later on.

Having a UNIX-background, unless going serverless, I would suggest Virtual Linux servers, Eclipse, Docker, Github , SonarQube and Jenkins as a start for the tool-chain, but also we need to evaluate Microsoft options.

If needed, we could even do a PoC on a new Raspberry PI as a server and host our hello world examples on a private GitHub in the cloud.

Summary

By using a standard CI/CD flow for all new software development, our assumption is that we can reduce the cost of developing and maintaining bespoke solutions.

The other question is when manual processes will be to slow and/or to expensive compared to development of new functionality.

Key Partners and Customers in an eco-system

Who and when are they key partners and customers in an eco-system for film? Unless you are one of the few major studios, you need to work with other parties.

Let’s do an example, Hollywood style, to illustrate some of the different parties in this business.

I have this fantastic idea for a feature film. It’s about a young successful female professional who starts to think about her priorities in life just before she is getting married.

Photo: Adobe stock

Photo: Adobe stock

First of all, I need an writer who can write a first draft of a manuscript. In US, the writer belongs to a guild and they set minimum terms and conditions for a script.

I will then the show this manuscript to a producer who will evaluate if this something he/she will work with. He/she need to find financiers to the film, as creating films are expensive endeavors. But the financiers are often reluctant to fund a film, unless you have a director and a lead actor tied to your film. A lead actor has an agent or is part of an agency, so the producer need to reach out to them first. Both directors and actors belong to guilds, but different guilds, and their T&C will have impact on the production cost and timeline.

The financiers would probably need a letter of intent from a major distributor in order to sign the checks. In order to get the proposals for the film correct, we also need legal advisors and financial experts.

We also need to think about sponsors, advertisers and those who sell merchandise based on the film as additional revenue streams. We may also receive grants from film bodies and tax deductions from governments.

Now over to the pre-production and production process in film production.

We need services from locations scouts to find the proper place to film our story and a casting agency to find the rest of the talent for our feature film. We also need to find the right crew behind the camera. One important role in this crew is the Director of Photography, who obviously belongs to yet another guild. There will also be a need for extras in the background of some scenes, and they need to be hired by the casting agency. Travel and logging is probably managed by a travel agency and we need to find someone to provide catering service on set.

For the production we use rental houses for technical equipment, wardrobe & make-up, set design and props, unless we purchase this ourself. For this film, we probably need a stunt-coordinator, but no need special effects for this particular film as I see it now.

After the film is in the can, the raw film / digital media goes to a post-processing house where an editor cuts the film and a sound editor edits sound, both with the guidance of the director and producer. You also need a composer for the music and acquire rights for all other music from record labels and artists.

Film is very much digital, therefore we need a lot of IT-service providers to deliver different platforms to be used in our film-making process.

Finally, your film is ready and you have a master copy to show-case at festivals and film markets all over the world, from Cannes to LA. This is where you find more distributors, for different channels (cinema, broadcast TV, DVD, Pay per view, subscription streaming services etc.) and geographical regions.

But the question still arise, who is your customer? It depends on your role in the ECO-system.

  • The customer for a writer is the producer.

  • The customer for the actual production, by a production company is the producer, but those involved in the production have the production company as a customer.

  • The customer for a producer is one or many distributors.

  • The customer for a distributor are those who will give access for the film to the viewers

In the end the final customer is either the viewer who pays and/or those companies who pays for the ads when viewing the film.

Welcome to show business.

Privacy by Design thinking

During the last weeks, I have given a number of examples of how I think about implementing Privacy by Design in an organization.

This is not a legal advise how to be GDPR compliant. But, as it is my own company I’m describing in the examples, I’m eating my own dog food.