We started tracking time and metadata in a simple Excel spreadsheet. The next step is to get better reporting out of the time tracking tool.
To do that, we need to classify and categorize all of our data entries. As we get more advanced, we can convert this solution to not just an application but a modernized one based in the cloud. However, before we get too far ahead of ourselves, we need to focus on the problem at hand. Our current application is fairly useless and provides very little decision-making analysis.
What is cool about the process of building an application out of an Excel workbook, is that we can use this process to better understand fundamental aspects of modern applications. So, to make our application useful, let’s review the essential traits of modern applications. This list is based on one of the best resources for understanding Modern Applications and “Modernization,” which is The Twelve-Factor App.
We currently have no codebase at all, as all we have done is just track time and categories in a spreadsheet. My options for a single codebase are pretty limited but powerful:
This is a good design note that we will use as hard guidance. In other words, we will make sure that anyone who wants to use this understands what they need:
We need to make sure there are simple application checks for all infrastructure dependencies.
Same as #3, but could be an overkill for these early attempts.
Later, if we swap out the logic of Excel for something more elegant, we will make sure to continue follow these criteria.
What does that mean? It means that none of the processes will be data-dependent (stateful). That means the data and the code which automates need to be separate. This includes metadata. We will come back to this.
Right now, this is just a single-user app. We won't be able to do much with this criteria until we remove Excel as the brains of the operation.
But if we are going to modernize the application, it also means that we will need to break all services down to their bare minimum. The solution needs to scale up, scale-out, scale in and scale down. More simply, this solution needs to optimize how it consumes cloud resources. The cloud can be expensive if it is consumed wrong.
This means that the app is broken into simple processes which can be started and stopped instantly. If we are disciplined enough, we hope to host the logic on microservices.
Just as before, we want to make sure our processes, which are the components of the application that are changing the data, are not also holding on to the data.
Management of the application services is a separate set of processes that are not directly tied to the application’s internal machinations. “How do you eat an elephant?” “One bite at a time.” Let’s start with step one: a single codebase.
Since we have done everything so far using Microsoft toolsets, I’m going to start with my favorite IT Automation toolset; PowerShell.
The IT industry has an interesting solution to most data problems... more data. As we modernize the solution by leveraging the above principles, the key to making sense of all this data is to categorize and organize. We do this through metadata. In short, the key to organizing the data is to add more data.
Metadata (data about our data) is magical. Metadata is not just a new way for us to look at our data. It is what makes our data more valuable and useful in the digital transformation journey. A key secret about modern applications is the amount of metadata they generate and share with other applications.
But understand how we can get the most out of the data we have been tracking from, we need to plan the classification strategy (aka the taxonomy). Our goals for mining our entries for more valuable reporting are simple:
One of the unsung hero solutions in Microsoft 365 is Microsoft SharePoint Online. One of the capabilities of SharePoint Online is that it manages tons of document metadata at no additional cost (it is built into the Platform-as-a-Service). It is very likely that SharePoint will become the storage infrastructure we require for this digital transformation time-tracking method to become a useful application.
To learn more and keep up with the digital transformation process, check out our latest posts on the topic. And don't forget to subscribe to the blog and contact us if you want to chat more about digital transformation!