Rebuild It Better: App Modernization Using the Swift Method

August 24, 2021 Derrick Harris

Over the years, hundreds of VMware Tanzu Labs clients have modernized their applications with the help of our experts and the guidance of the Swift method. And although the techniques weren’t exactly a state secret, they weren’t something we spoke about too much publicly. Lately, however, we’ve been talking more about the practices—including Swift—that help Tanzu Labs help its clients so successfully. You can read all about them at the Tanzu Developer Center (the deep dive on Swift is here).

You can also get all the colorful details by listening to a series of Cloud & Culture podcast episodes featuring Shaun Anderson, one of Swift’s creators and master practitioners. The first in the series is titled “App Modernization 101: Intro to the Swift Method.” In addition to discussing how Swift works, Anderson shares some tips on how clear thinking can help organizations take advantage (and avoid the pitfalls) of platforms like Kubernetes, and why you don’t want to let perfect be the enemy of good enough when your hands are tied.

Here is Anderson’s 90-second summary of Swift from the first episode: 

"What we're trying to do with Swift is understand how the system wants to behave from a business perspective. That's a different approach than just saying, ‘Let's take a technology-first approach.’ 

“So Swift goes through a process of event storming to understand more of what the service candidates are, what are the pieces of the system. I look at it the same [as] if you have a teenager with a messy room, or you're trying to clean out your garage. It's a lot easier to understand a little bit about the buckets that you're going to be putting things into and start approaching it that way than just to madly start moving things around. 

“Understanding how the system wants to behave helps us go to the next step, which is the Boris exercise, which is where we start to model the system. Not from modeling your existing system, but more modeling from the business perspective—the software wants to behave a certain way to enable the business, and that's ultimately what we're trying to do. And with Boris, we're able to model that and test it and and see that, oh, OK, it makes sense to organize things a certain way.

“And then from that, we continue digging down into more detail about what technical patterns, how are we going to actually start coding, and so forth. But in the end, going from event storming to Boris to SNAP-E . . . we can go in a matter of a week or two from not understanding the business at all, to having a really good notional architecture and a direction to take as you're modernizing your software.”

A high-level walkthrough of the Swift experience

Finally, here’s another quote from the episode, in which Anderson addresses how Swift can help organizations break concerns over data gravity that can sometimes stymie other aspects of application modernization:

“If you come from an application development point of view, your application is: You've got the presentation, you've got the business logic, and the data is handled by somebody else. And when we figure out how the system wants to behave, the big part of Swift is talking through the data itself—not from the database-specific example, but more of [determining how to make each component] responsible for their own flavor of data . . . It helps us understand what are the constraints, what is keeping us from getting to this point. 

“And often it is that data gravity, but at least we start mapping out where the data can live in the next iteration . . . [O]nce we figure out the landing pad where that data should live, it makes it easier for us to start plotting a course to get that data owned by that particular component and really break that data gravity and identify cases where you have business logic in the data, or you're doing data migration from Point A to Point B that really doesn't need to be there anymore.

“It is a tough problem, but the data is a cornerstone of all of these applications, and if you do one without the other you're going to be a little better off, but you're not getting the full advantage that you may be able to get to with just a little bit more iteration.”

More on the Swift Method

Modernization and Money: Applying Swift in Financial Services

Why Competing in E-Commerce Means Customizing Your Software


Ready to untangle the core business applications hindering a better experience for your customers? Learn more about Tanzu Labs and contact us at tanzu.vmware.com/application-modernization.

About the Author

Derrick Harris

Derrick Harris is a product marketing manager at VMware.

More Content by Derrick Harris
Previous
Modernization and Money: Applying Swift in Financial Services
Modernization and Money: Applying Swift in Financial Services

How financial services firms are modernizing their software with help from the Swift method and VMware Tanz...

Next
Shopify's Approach to Managing Innovation and Remote Engineering Teams
Shopify's Approach to Managing Innovation and Remote Engineering Teams

Shopify VP of Engineering Farhan Thawar shares his insights on leading software teams, including during the...