Running a business in technology can be a challenging thing especially if you have a background in technology.
No, it’s not that I elevate those in technology above anyone else in any other field, but it’s that I know this field, and I know the challenges that come with how we may want to implement solutions versus how others may want the solution implemented.
In a sense, we have to balance a level of pragmatism with what we’re delivering to the business and with how we may want to engineer the final solution. At the same time, we have to do this while keeping up with the changing landscape of technology.
At WordCamp San Diego, I spoke with Personal Growth – Running a Business and Keeping up with Changing Technology. In this post and the one following, I’ll be discussing some of the points outlined in that presentation.
Running a Business
When it comes to running a business, what we do can be distilled down into three extremely high-level points. In no particular order:
- Our technology helps us drive our business.
- We should elegantly solve problems.
- This helps us; this helps our users.
Granted, these aren’t definitive. These are unique to my experience so what you may experience or how you may view this may (or definitely will) be different than what I share in this series of posts.
1. Technology Drives Our Business
Whether or not you’re running the business or employed by a business, then I think it’s fair to say that you know that technology drives your business. It doesn’t matter if you graduated with your MBA or a degree in computer science. Nor does it matter if you have a degree in anything related (or a degree at all): If you’re running a business that provides solutions to others via software, then the technology you have chosen to use helps drive your business.
If you’re running a business that provides solutions to others via software, then the technology you have decided to use helps drive your business.
By this, I mean the stack of technology and tools that we use help us to solve problems for our customers. For me (and I venture to say that for many of you who are reading this), this likely has something to do with WordPress and the languages and technologies tangentially related to it.
For some, it may have some to do with figuring out how to run the application at scale for a large number of visitors. For others, it may have to do with making sure that we’re using some of the latest and greatest features of our chosen server stack. And those are but two examples.
But because the technology helps us to drive our business, it’s important to have a solid understanding of it. And yes, the landscape of technology is changing. This is something I’ll address in the next post.
2. We Should Elegantly Solve Problems
Whenever someone says that we should “elegantly solve problems,” it gives me pause. At one point in my career, I thought that everyone would have the same conceptual idea for what this meant. But because so much of our experience is based on what we’ve done before, it’s rare that this is the case.
Once, “elegantly solving a problem” had more to do with using a combination of the right tools, languages, frameworks, and design patterns to make sure that the solution was as engineered as well as it possibly could. And this is still true today; however, I’m not naive enough to think that I’m going to get it right during the first, second, or fourth try.
If software is viewed as a type of living thing that’s under constant development (or constant change), then the ways in which we solve a given problem the first time are likely going to be less elegant the second time. Then again the converse can be true: The longer an application exists and/or the more people who work on it, the more chaotic the codebase may become. This is all conjecture on my part, but the point I’m trying to make is this:
There should be a sense of pragmatism when we’re trying to solve problems. Pragmatism doesn’t negate elegance, though. It can fuel it.
So whenever you’re faced with the desire to solve a problem for a customer, a client, or even yourself and you have a timeline to which you need to adhere, focus on trying to find the most elegant solution at that moment in time. It may not be what you ultimately want it to be, but that doesn’t mean it can’t have a level of quality that’s constrained by a deadline.
3. This Helps Us; This Helps Our Users
Perhaps the biggest takeaway that can come with focusing on the technology that we use and how we implement the solutions using said technology is not only how it can help our users, but how it can help us, as well.
For example, if you put together something that caters more to you or your team, then it may work, and it may solve a problem, but does it solve the business need at a level that makes users happy? And if the users aren’t happy, are you ultimately going to be happy triaging tickets, reports, and issues?
On the other hand, if you end up solving a problem in such a way that makes the lives of your users easier and that also adheres to a level of quality of engineering that you (or your team) enjoy building into your projects, then it’s not likely to result in as many tickets, reports, and issues.
When you’re not spending time doing that, then you’re going to be able to iterate on the project such that you’ll be able to focus on refining the architecture and perhaps even future features.
And when you do that, you’re able to come full-circle in a sense. You can further the needs of your business, solve addition problems (in an increasingly elegant manner), and you’re able to help your users and your business.
What About Keeping up With Technology?
In the next post, I’ll share the four points that I’ve found to be useful for keeping up with technology all the while running a business.
Again, all of this is related to my career up to this point, so hearing from those of you who are in a different place (regardless of if you’re earlier in your career or later) is welcome.