Yesterday, I started a recap of the talk that I gave at WordCamp San Diego 2016 in which I discussed what it’s like to be running a business in technology.

The Beaches of La Jolla

The Beaches of La Jolla

If you haven’t read the article, the general points were:

  1. Technology drives our business
  2. We should elegantly solve problems
  3. This helps us; This helps our users

And that was the first part. The second half deals with how actually to keep up with technology, especially as it changes seemingly every single week.

This part of the talk focused on those who are managers of developers, those who are developers managed by someone else, and those who are self-employed.

Keeping up With Technology (While Running a Business)

The second challenge of running a business while also keeping up with technology can be challenging specifically from a developer’s standpoint because there’s a level of familiarity we’re expected to bring to the table when we’re solving problems.

Stephen Carnam talking about WP-CLI

Stephen Carnam talking about WP-CLI

To be clear, this is not elevating developers over any other persona in a business. I’m simply sharing my thoughts from my perspective: A developer who is also running a business.

In that, though, I’ve found four things that I’m able to repeatedly do to help me keep up with the changing pace of technology all the while running my business and continuing to make sure that I’m able to do so in a way that allows me to make a living.

1. Principles and Foundations

As developers, some point in our career we’re should ultimately be learning a variety of principles that transcend the technology that’s being used. Perhaps this means we learn some patterns in the OOP paradigm, perhaps it has something to do with front-end development.

Whatever the case, when this happens we are able to pick up a new language a set of tools much easier than before. These principles transcend the languages with which we’re working and allow us to pick up new languages faster.

After all, languages are often secondary to how we build software with them.

To Managers

When working with developers, I think it’s important for developers to be aware of the best set of tools. In order for them to do this, it’s important for them to stay up-to-date.

To that end, developers should be given room to follow along with trends in the industry and experiment with them. I know that this sounds like it could be wasted money on the company’s dime, but what if one of the technologies was able to be used to reinvest in the business and, in turn, save the company money?

I also believe it’s important that, when discussing requirements of a project with developers, it’s not enough to talk about what they will be building. Developers should also understand the why behind the decisions of the business.

This is important because code is often the manifestation of a solution for a given problem. And when there’s a clear understand of the problem, there can be a more accurate solution. This solution can be expressed using language that represents what the code is aiming to solve when building a solution.

To Developers

As mentioned in the previous section, it’s important to stay up-to-date. We don’t want our skills to stagnate, we don’t want to become too comfortable in our roles, and we should seek to bring value to others in what it is that we do.

That said, it’s just as important (if not more so, perhaps) to know the underlying principles of the programming languages that we’re using.

  • What are some of the most practical ways of solving common problems in an object-oriented manner?
  • Why should we understand the prototypal nature of JavaScript
  • Is it important to be able to evaluate a number of requests sent across the wire?
  • Should we really be able to watch the result of a request through a piece of software like Paw?

Ultimately, it’s about being able to fully understand the problem that we’re trying to solve either for ourselves or our business. Knowing what the best tools available for the problem is far more effective than using something because it’s the new shiny thing.

And though it sounds funny to put it that way, this isn’t something that’s uncommon in our industry.

2. Go Deep Rather Than Wide

When you enter a problem space, it’s important to pick a set of tools that allow you to do just that.

As a personal example, when I first went into self-employment, I divided my time between standard web projects, Ruby on Rails, and WordPress. As time progressed, it became increasingly clear that the type of projects people wanted to have built were best solved by a solution on top of WordPress.

So I ended up shelving the tools and languages that weren’t directly related to WordPress. And though I don’t consider myself an expert (as there are far, far smarter and accomplished people in this space), I’m still working to learn as much as I can about the application and the languages and tools tangential to WordPress.

At this point, I’ve been working with WordPress for years. I’m trying to stay deeply involved in the economy. I wouldn’t say that I’m spending a lot of time spreading myself too thin with technologies that can’t serve my end goal of building solutions with WordPress, but I am trying to stay familiar with things happening both in and around the core application.

3. Stay Aware of What’s Out There

Staying aware of what’s going on in our field can be challenging, though. Technology moves at a fast pace, and it seems that each new week (if not every other day), reading RSS, Hacker News, Twitter, or Product Hunt, we’re exposed to yet-another-tool for helping us to get better at what we do.

And as I’ve said throughout this article, it’s good to be aware of what’s available so we can come back to the if needed. Ultimately, though, I’d prefer not to be a jack of all trades and master of none.

I’d rather now a handful of technologies and become very skilled at them with an awareness of what other things I can incorporate into my workflow should the need arise.

And at some point in our career, I think we reach a point where we get comfortable with knowing that something exists and that we can learn it if needed. This does raise a question, though: How do we know if something may serve us well in the future?

4. Connect With Those Who Know More

Ultimately, I think knowing how certain tools and technologies can serve us well is a combination of reading about them and connecting with those who know them (or more about them).

Because I (or maybe we?) spend so much time trying to stay deeply involved with a subset of tools that help us achieve our end goal of building robust solutions, we don’t always know if someone else could serve us better than what we’re currently using. Nor do we know if a new technology is better for us given a particular problem space.

Now, more than ever, it’s easier to stay up-to-date with the pace of technology, but it’s not as easy to learn new things as quickly and incorporate them into our workflow. So we need a way of managing the tension of “I know there’s something available, but I don’t know if it’s worth the investment to learn.”

And in those cases, I rely on:

  • Reading blog posts from those who have used it,
  • Write a blog post asking others to chime in on their experience
  • Subscribe to newsletters that cover the topic (and that link to podcasts, videos, and other material),
  • Follow people on Twitter and converse with them,
  • Talk with those who know said technologies.

Sure, there are plenty of other things we could do, but this list is something I’ve found useful as I’ve continued to try to keep my development skills sharp while also working to run and grow a business.

From My Experience

What I’ve listed above isn’t intended to be the definitive guide to running a business in technology. If anything, it’s a list of my personal experience and what I’ve found to be useful and what I’ve found that works.

When I have a challenge and I’m able to repeat a set of actions that help me to grow as a developer, a business owner, and a person, I tend to play those cards over and over again.

After all, if we’re able to figure repeatedly out a way to overcome the challenges with which we’re faced, why wouldn’t we apply the same approach?

That again (and as said), that’s just me. If you’ve other tips, experiences, or alternatives, I’m open to them so please don’t hesitate to let me know via the comments.