Uncategorized

We Generalize (in technologies and domains)

“I only work in Healthcare”. “I only design for iOS.” “I only write Java.”

These are not phrases we say.

Our mission is to catalyze enterprise transformation through software. Well, the world is big and full of diverse organizations. There are countless technologies and industries out there, with a baffling array of software languages, design systems, frameworks, platforms, user experience metaphors, and more. When clients come to us, we don’t force a single technology stack or design system upon them.

This means that we always have to be ready to apply our craft in a variety of languages, tech stacks, design systems, and industries. Languages like Java, Kotlin, Javascript, Go, and dozens more. Backend web frameworks like Spring MVC, Ruby on Rails, Express, and Phoenix. Batch and ETL frameworks. Distributed systems frameworks. Unit, functional, and system testing frameworks. And of course we have to know how to leverage cloud technologies like Kubernetes, Docker, our many Tanzu offerings, AWS, GCP, and Azure. And that’s not even diving into build tools, CI/CD systems, databases, and message queues!

This may sound daunting. You might be saying, “there’s no way one person could know all of those things.” And yet, there are many of us who have learned all of these things, and more. Within Tanzu Labs, we have a truly unique opportunity to work in a wide variety of business domains, design systems, languages, and technologies. And our learning and pairing culture helps us spread knowledge incredibly fast.

The more business domains, languages, frameworks, and technologies we’re exposed to, the easier learning new ones becomes. In reality, they have more similarities than differences. And we also hone the most essential skill that anyone should have: we learn how to learn.

An avowed specialist—someone who focuses exclusively on a narrow set of skills—is by and large a liability for us as a consulting organization. If someone only specializes in one or two technologies, industries, or design systems, they limit the number of clients they can help, and there is no guarantee that we’ll have projects available that match their narrow skill set.

If an organization is full of specialists, the organization is limited in its ability to react to an ever changing list of challenges; this is true for product as well as services orgs.

To be clear, we do turn down projects, but we want to do so because we and the prospective client are not a good fit for one another, not because we can’t – or refuse to! – work in their tech stack or learn their business. For a services org, allocations (the process wherein leadership decides who works on what) is already an incredibly challenging problem even with an office of generalists. When everyone in an office specializes, instead of generalizing, allocations become impossible. These are the reasons why Tanzu Labs advocates so hard for full-stack development and domain generalists.

Within Tanzu Labs, we have an intrinsic passion for exploring our profession. We try out new languages, frameworks, and problem-solving techniques with each other. And we write blog posts. And we attend meetups (or organize them ourselves!). And we give talks in the offices or for our regions. And we present at conferences. We don’t just do all of these things for VMware; we do it for ourselves, and our career, and for the community ❤️.


< We Care About More Than Engineering | We Specialize (in craft) >