16.02 – Project Milestones

iCFM now contains the ability to schedule Project “Milestones”. Milestones are phases or tasks within a Project, and are assigned to a Producer.

Milestones create bars in the Schedule just like regular bookings, but they are not shown within the same space. They are kept out of the main Schedule and will only be visible when you open a View that contains the word “Milestones”.

Usually, this View would contain the Producers from a specific Depot – so you can see how busy each Producer is likely to be in that date range.

Milestones render on the Schedule page in stacks – so when a Producer has more than one Milestone happening at once, they will appear vertically stacked up.

This allows you to gauge how busy a Producer is by glancing at how many rows are used for a Producer at any one time.

Milestones do not have to be assigned to the same Producer as the main Project, and each Milestone can have its own information, including:

  • Producer Name
  • Type (Bidding, Production, Shoot, Approvals etc)
  • Title / Description
  • Start / End Date
  • Estimated Days Required
  • Percentage Complete
  • Status (New, Active, Complete, Cancelled etc)

This is still a work-in-progress, but it is already so useful right now that we thought we would release it early.

The next feature we will be adding to Milestones is the ability for Producers to log time against them – which can become billable to the Project if required.

16.02 – New tab layouts

The Project page was becoming overloaded with controls. The tabs across the middle of the page could scroll off to almost twice the width of a standard Macbook display, so we decided to do something about it.

As part of our UI overhaul, we have built a new system that allows us to build configurable tabs and menus from JSON text.


Example JSON code for the Project Tabs

In this release, we with have applied this to the Project page. Changes to other areas (Jobs, Dashboard etc) will come very soon.


The Project page Tabs

In an upcoming release, your CETA Administrator will be able to completely redefine what items show in the tabs, and will even be able to add links to their own content.

Until then, each tab has an ID – which means that if you want to hide any of them it is still easily done using the user.css file.

16.02 – Gekko Engine

Thanks to our new Gekko Engine – iCFM is about to get a whole lot faster!

In iCFM we monitor and report on all sorts of utilisation and financial data. There are many types of service to keep track of within the application, from Scheduled Resources and Purchase Orders to Delivery Notes, Food and Taxis. We need to keep track of it all, and we need to be able to report on it quickly. Sometimes this can be millions of rows of information and it changes by the second.

This reporting feature is called “Gekko” – named after the fictional trader, “Gordon Gekko” from the ‘Wall Street’ movies.

The way we have kept track of all this reporting information up until now, was that any time a user changed something in iCFM, we processed that change and updated all related values in the “Gekko” table in real-time.

The Gekko table records things such as:

  • Project Number
  • Producer / Client / Product
  • Service Code (ratecard)
  • Date
  • Booked / Actual / Billed Quantity
  • Booked Revenue / Cost
  • Actual Revenue / Cost
  • Billed Revenue / Cost

Having all this information in one table makes reporting much easier – but keeping it in sync takes some serious CPU. It often means the user experience is slowed down while waiting for background reporting data to rebuild. Something as simple as saving a Job, adding a Food cost or applying Actuals would always need to check what effects any changes would have on the entire Project.

Since revenue is usually fixed for a whole Project, no matter how many Jobs are booked – we would also need to recalculate how much revenue is allocated to every aspect of that Project – every time any change is made to anything, ever.

While we have never had any complaints about this part of the software being slow – it is the actually number one reason that anything in iCFM takes any time at all.

In this latest update we have moved all of the Gekko calculation code out to another program known as the Gekko Engine – which is always running behind the scenes. We have massively improved the efficiency of how this data is updated, and the number of read/writes to the database has been drastically reduced because of it.

This means that the user no longer has to wait for Gekko calculations to complete before they are returned to a usable system. Saving a Job now simply saves the Job and tells the Gekko Engine to rebuild the reporting data as soon as it can.

The result is fewer hourglasses, and a much faster user experience.