With the current crisis in Ukraine increasing the focus on attacks against government systems, it...
Modern Applications: What Are They & How Can They Help?
The key to modernization is understanding the principles of modern applications.
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.
Modern Applications are distinguished by several key principles:
1. A single codebase controlling all of the data between various parts of the application. This code is tracked through some revision control systems.
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:
- Native Application Macros in Excel
- PowerShell (this is my favorite)
- Low Code/No Code solutions like Power Automate
2. All dependencies needed for this application to run on any platform will be spelled out precisely.
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:
- Has the latest version of Excel
- Has PowerShell
- Has the proper PowerShell modules
3. Configuration of storage, networking, security, management, and anything else is included with the application.
We need to make sure there are simple application checks for all infrastructure dependencies.
4. All additional data center applications, infrastructure, and foundational services are also included with the application.
Same as #3, but could be an overkill for these early attempts.
5. Building the application will be managed "DevOps style" with an isolated environment for development and for running the application where users (and hopefully you) will be able to access.
Later, if we swap out the logic of Excel for something more elegant, we will make sure to continue follow these criteria.
6. Our goal is that all processes that make up the application are stateless.
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.
7. While we want to support multiple users, we want all users to access the application the same way; through the same methods.
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.
8. We need to be able to support more than one user accessing the application at once.
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.
9. The solution scales up and down quickly.
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.
10. In true "DevOps style", we will try to minimize any deltas between the application phases:
11. All transactions (components that change, add, and delete data) needed to be tracked and logged.
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.
What Comes Next?
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.
It’s all about the Metadata
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:
- How can we make it easier to tag the data with the appropriate classification labels?
- Where should we automate (or what is consuming most of our time throughout the day)?
- How can we reduce the amount of time we spend searching?
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.
Want to learn more about Digital Transformation?
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!