Exponential Growth

For entrepreneurs and business owners, trying to build something bigger than the individual poses one of the most challenging initial struggles a company can face. A brand is often represented by a figurehead, whether that be the owner, CEO, or majority shareholder. When the growth of the company is contingent on the amount of time an individual in this capacity can offer at an hourly rate, growth will by nature follow a specific linear pattern, before ultimately reaching a plateau.

In an effort to scale beyond this point, businesses can plan ahead to position and prepare themselves for the anticipated changes and challenges. Structuring the business model in such a way that money naturally flows into the business through multiple streams can create an ecosystem where each specific element supports other elements in different ways. In doing so, the business network can expand well beyond the individual, and the company can scale up to meet the goals necessary to attain sustainable growth and success.

While all of this sounds fantastic generally speaking, the task of specifically applying these principles to a business could seem daunting. Often, small business owners can fairly easily grasp the linear aspects of business growth. However, the road block often comes when the businesses are forced to think differently and realign their goals and focus. Sometimes the solution is both simple and effective. If your business has been struggling through a similar situation, I would strongly encourage you to take a look at your people. The people who are passionate about the work and mission of your company are the strongest agent of change for scalability. Take some time and consider their interests and skills, and invest in helping them find their best work!

Multilingual Programmers

One of the biggest difficulties in the computer programming world today is the sheer number of languages out there to use for application development. Which language should you learn? The reality is, that’s the wrong question. I recently spoke with a developer who indicated that he only knew C# – he was not comfortable with Python or any other language. For the professional developer, this it not an acceptable answer. In today’s world of programming, you can no longer get by knowing only a single language. For example, while the bulk of the code in a Java web application will be in Java, the front-end will require JavaScript and HTML. Build scripts may be written in Groovy or XML, and Shell scripts may be required for build automation. This is not unique to Java applications – just about any application will require some knowledge of other languages.

How do you pick which languages to learn? At a minimum, every professional engineer should know at least one compiled language such as Java, C, C++, or C# in addition to JavaScript, Python, and SQL. Additionally, he or she should be comfortable with another language such as Ruby, PHP, Go or Rust.

If you’re an application developer, do you only know one language? If so, I would strongly urge you to learn additional languages. Mastery of every language isn’t necessary, but any decent developer should feel capable of writing code in several languages.

Life’s Not Fair

When my daughter was young, she once complained to me about how one of my decisions wasn’t fair. I don’t remember what she asked for anymore, but I do remember my response. I told my daughter she should be thankful that life isn’t fair. Look around the world today and you see children starving in underdeveloped parts of the world, people being oppressed by cruel leaders, people suffering from lifelong disabilities, and all kinds of other suffering. Yet here, in America, we enjoy an incredibly high standard of living. Few of us die of starvation, we have a democratically elected system of government, and we have some of the best healthcare services in the world. I am thankful every single day that I have been blessed so greatly.

How does this apply to technology and business? As I run my business, I see how fortunate I am. I see that I am well paid, that I have freedom to enjoy life, and that I am the master of my own destiny. As I look around, I see that few others have that freedom. Even among the greatest nation on earth, I am among the most fortunate of people. As such, I have a moral obligation to make the world around me a better place. I am compelled to improve the community I live in, to better the lives of those around me, and to work to empower those I work with. I’m thankful life isn’t fair because it gives me an opportunity to make the world a better place. It gives my life purpose and meaning.

Making the world a better place should be part of the mission of every company out there. Is your business empowering employees? Are you making your community a better place to live? Are you serving more than your own pecuniary interest? Can you sleep at night with the decisions that you and your business make on a daily basis?

When we all work together, we can make the world a fairer place for all. We can work to ameliorate suffering and starvation. We can improve healthcare around the globe. Maybe, someday, the world will be a fairer place. Until then, each one of us – business and individual alike – has work to do.

Great Minds

It’s often said that “great minds think alike.” It sounds great, in theory. But is it really true? Just because I’m thinking the same thing someone else is, does that really mean we’re both great minds? I hardly think so. It’s not the employee who thinks the same as everyone else that brings value to the team, it’s the free thinker who has a different perspective. In the boardroom, when everyone thinks the same, we call it groupthink. Psychology Today says “In a groupthink situation, group members refrain from expressing doubts, judgments or disagreement with the consensus and ignore any ethical or moral consequences of any group decision that furthers their cause.” This hardly seems beneficial to the team. When I think of great minds, I think of the men and women who engaged in thought well outside the mainstream – brilliant men like Isaac Newton, Albert Einstein, Stephen Hawking, and Benjamin Franklin. If you want to be a great mind, think for yourself! Don’t let the people around you define your thought. Be willing to take risks and think outside the box. It’s those people who history remembers – not the people who think like everyone else.

Language Popularity

A subject that repeatedly comes up on websites, blogs, and conversations is which language is the most popular and which ones are the best to learn for future job opportunities. I keep an eye on this list myself as it’s important to understand trends within the software industry. However, people seem to ignore the most important aspect of language popularity – the context.

What do I mean by context? I mean we have to look deeper to understand why a language is as popular as it is. We also need to understand the market for a language and how that impacts popularity. For example, JavaScript is always near the top on any language popularity chart. Is it any coincidence that JavaScript is also the only front-end scripting language in use today? Whether or not you like JavaScript is utterly inconsequential. If you want a website with any manner of front-end scripting, you will use JavaScript. Likewise, if you want to interact with a database you use SQL and if you want a web page, it will be HTML. As such, these technologies will always rank more highly than those with a smaller market.

So what about Python? Everywhere you look, you see that Python is at the top of the list. Should we all switch to Python? Not really. What all those rankings fail to point out is the user base for Python. Certainly there are all kinds of production projects out there running Python. But if you look around, you see that Python’s popularity is largely caused by people outside the traditional developer community. AI researchers, academics, data scientists, system administrators, makers, etc. For non-programmers, Python is easy and incredibly powerful. But that hardly makes Python superior to other languages nor does it suggest that professional programmers should start porting their eCommerce sites.

Remember, while rankings of popularity may help you see trends, look to the underlying reasons. Why is it popular? Who is it popular with? Does this language look poised to overtake in other realms? When picking a language for a problem, the most important question is which language solves the problem best – not which language is the most popular.

Killer Robots

During the last year, countless tech leaders have talked about the danger that artificial intelligence could pose in the future. Like most people, I laughed at them. After all, do I really think that The Terminator or The Matrix were prophetic? Hardly. But the more I read and the more I pondered it myself, the more concerned I became. Now, I wonder if there’s any way to prevent it from happening at all.

Is it really reasonable to think AI could take over the world? Do we really think code will be so poorly written and that software testers will be so incompetent as to let AI robots kill humanity? Unfortunately, I do. Not intentionally, of course, but bad code that wasn’t properly tested will make it into the wild on robots. Consider all the system updates that have been performed on your computer or your cell phone. Think about all the app updates that happen every single day. Consider all the one star reviews for apps on the mobile stores. AI will be no different.

Consider all the potential causes of AI issues. Developer errors, inadequate testing, corporate release requirements, poorly defined ethics, unforeseen events, etc. Each one of these issues could cause AI to perform in ways it was not intended with potentially catastrophic consequences. Consider government AI being developed by the lowest bidder – wow, that’s scary.

The more I think about that, the more certain I become that AI will eventually cause huge problems to the world. As such, it’s imperative that we – the tech community – consider the limits of AI – not in regards to technology, but rather in regards to safety and security. Do we want AI police officers or soldiers? That sounds dangerous. Could Russian hackers embed “Order 66” into our own robot army? Do we trust robots with firearms to make the appropriate decision in a life-or-death situation?

My intent is not to sound like an alarmist, but rather to begin thinking about the issues now. If not, we may find it’s too late to do so later.

Change is Good

Yesterday, I took the Myers–Briggs personality test online. I’ve done this many times in the past, and I always come up INTJ – “The Architect”. This is a great personality type to be – listed as being imaginative and strategic, independent and decisive, hard working and determined, and having high self confidence. But as I began my journey into entrepreneurship, I realized that being an introvert wasn’t such a great idea. So, I decided to work to change myself to be more extraverted. After all, if I can’t comfortably talk to people and sell my services to clients, it’s going to be difficult to run my own small business selling software services. To make this change, I started reading books a year ago on small talk, communicating in social settings, and similar skills needed to be an extravert. I also read books on sales and leadership. After all, being an extravert isn’t going to get me far if I can’t sell myself or if I can’t project myself as being a leader in both business and software development. So, when I took the personality test yesterday, I was pleased to see that I have changed to ENFJ. Not only have I become more extraverted, but I have learned to rely more on my feelings instead of just logic. As a software engineer, that’s tough, but the world of people is rarely a world of logic – it’s a world of feelings. If you can’t relate to someone on that level, logic won’t get you very far.  Now, instead of being “The Architect” I’m “The Protagonist”.

Are you growing and changing? Is You 2.0 going to be better than you are today? What are you doing to get where you’re going? Are you willing to work to change the most basic elements of your own self to move your life in the direction you want?

Social Networking

On Tuesday, my daughter and I embarked on an epic rail journey from Anaheim, California to Altoona, Pennsylvania. As I write this, I’m sitting in the lounge at the Chicago Amtrak station. Tomorrow, after another two trains, I’ll finally arrive home.

Anybody who knows me knows I love to travel by rail. While air travel is fast, it’s rarely fun. Rail is the opposite – much slower, but generally an enjoyable experience. One of the best parts of the train is the dining car. Not only is the food good, but due to the limited seating, you end up sitting with strangers. This is always a great way for real social networking. Tuesday night, my daughter and I sat with a couple retired from John Deere. He worked in the factory, and she spent years working in HR and in training other divisions. She was also a frequent traveler to Europe. The next day, I shared a meal with an outspoken Trump supporter and handwriting analysis export, a rail advocate and teacher, and a man who inherited land in the deserts of California. This morning, I shared breakfast with a pastor and his wife from Minnesota who work with troubled inner-city kids.

Unlike Facebook, Twitter, and other so-called ‘social network’ sites, riding the rails gives me an opportunity to share a meal with people across the country. People who are from different states, with different political views, different religious views, and every other difference imaginable. And, unlike social networking sites, discussions are typically cordial and enjoyable. I get to interact with people as people – not as a digital persona. I get to see them as a human – not as a highly curated avatar. These experiences are what real social networking should be about – not an anti-social experience behind a computer screen.

Today, instead of interacting with people on a computer, why not invite a friend for coffee, have dinner with your neighbor, or invite a coworker over for a burger. You’ll find the social interaction far more rewarding than Facebook.

Language Overload

As a technology enthusiast, I live in a great time. Computing devices are everywhere, artificial intelligence is advancing by leaps and bounds, and hardware platforms such as Arduino and Raspberry Pi have made it easier for people to tinker with new technologies without spending a lot of money. But with all the great advances in technology, there is one advance I do not enjoy – the endless list of new programming languages released every single year. I’m not opposed to new languages, they are a necessary part of the march of progress. But don’t we have enough already? One example is the proliferation of languages that operate on the Java Virtual Machine. Originally just Java, now we have Scala, Groovy, and Kotlin too. And, each one has their own group of advocates saying their language is the best.

When Apple announced a few years back that they were replacing Objective-C, I was originally optimistic. Objective-C is pretty much unused outside the Mac world. If you wanted to write iOS applications, you had to learn an otherwise useless language. Was Mac going to lower the bar for new developers and allow them to use a language that was already widely used? Nope – they invented another language – Swift. I’ve heard lots of great things about Swift, but I’m not really interested in learning another niche language to develop for a single platform. (Instead, I’ve chosen to use hybrid tools such as Cordova and Ionic).

What’s the harm in all these languages? While different languages do bring different things to the table, there has to come a point where the market is over saturated. With all the languages out there, developers have to pick which ones to learn and which to skip. While every developer should be competent in more than one language, it’s certainly not realistic to expect a developer to be an expert in a dozen different languages. And since every language needs their own libraries of code, scores of developers are wasting their time writing standard functions for another language. Solving a problem that has already been solved a dozen times in the past – with a new language – is not particularly useful.

Where do we go from here? I suspect that we will continue to see the proliferation of languages. Long term, we will see languages transition to legacy code far sooner than previously. This will make it increasingly difficult for companies to maintain their codebase and will mean more frequent rewrites of software applications just to stay current. For companies, I would suggest ensuring that the languages you choose are solid, stable, mature, and likely to be around long term. You can go for the newest language out there, but you’ll struggle to find developers now and you’ll likely end up having an ever more difficult time maintaining the application long-term.

Expertise and Versatility

Successful entrepreneurship hinges largely on maximizing benefit and  minimizing risk. While striving to solve some of the world’s most difficult problems, entrepreneurs that rise to the top are those who optimize the process of weighing the risk versus reward of their decisions. The end goal for businesses and communities should not only be to survive but to also thrive. Rather than making strictly safe and comfortable decisions, people ought to encourage taking an appropriate amount of risk for the right reasons. After all, the health of a society cannot adequately be defined by “success” or “failure” in a word.

In a world replete with industries that constantly change and develop, consumers have grown to expect that products and services will become better and cheaper over time. Entrepreneurs and businesses who look beyond the basics tend to find opportunity knocking much more frequently, because they are willing to learn and share their knowledge with others.

With others striving to beat out the competition and have a “better than them” mentality, some of the greatest success stories have started with an individual whose desire is to become better today than yesterday and become better tomorrow than today. This yearning to improve and accomplish more each day ensures that the business will exceed customer and consumer expectations, delivering greater quality and value over the long term.

Over the long term, expertise alone will not suffice to assure sustained business growth. Along with expertise, businesses need to be able to understand how to apply their knowledge and continue addressing the new problems that arise. Versatility paired with expertise can provide the essentials necessary to build a business that is strategically positioned to endure the storms that businesses ultimately face.

Businesses ultimately face many challenges.  The task of satisfying and exceeding the expectations of clients, customers, and consumers can seem daunting. However, those who more willingly face adversity tend to more easily overcome adversity. We have woven these principles into our own business model, so that we grow alongside our community by sharing our expertise to help businesses create new value. As you consider applying this information to your own business, think of ways that you might increase expertise and versatility to make awesome happen for our community.