Entrepreneurial Innovative Engineering – Part 1
A software engineer that has an entrepreneurial sense is ten times more likely to build a market-ready software than an engineer who doesn’t.
That’s simply because any commercial software out there requires more than just good engineering practices or resilient infrastructure.
A successful commercial software has more to it because we as end users for that software are very complex in our nature, we agree on things and we disagree on others, sometimes we agree on things during certain times or seasons and we completely disagree on the same thing on a different time or occasion.
A successful software that is supposed to be used by people, with all their differences, tastes and perceptions requires an entrepreneurial sense to know when to enter the market, what risks can be taken and what risks needs to be avoided.
Practically speaking this translates into some practices and principles, a mindset that knows where the energy should go and where time shouldn’t be wasted.
Being an entrepreneur and an engineer myself I have learned few things being in business for so long that I’d like to share with you in this article.
History of Entrepreneurial Engineers
Let’s look at most of the successful software companies today, Jeff Bezos, Bill Gates, Zuckerberg and Musk, these were engineers that developed a sense of innovation and evolved entrepreneurially to deliver their innovative ideas to the world.
It’s interesting to see how much fraction and downfalls Apple have had to go through running with just a business guy like Jobs, how much he relied on and conflicted with engineers, but you don’t really hear much of these stories with Microsoft, Facebook, Google or Amazon – at least not at the scale of Apple.
Apple is a good example of how much struggle an entrepreneur has to go through if they don’t have the technical background, Jobs was definitely an innovator, he had a sense of elegance and style and he wanted to make technology an extension of the human person – but his lack of technical knowledge caused him a lot of miscommunications between himself and the engineers he worked with, it became very obvious with the departure of his top engineer and best friend Wozniak of Apple in 1985.
Learning from history and mixing that with personal experience I’ve started seeing a pattern there – questions that I’ve always asked myself about what it takes to make one software company so successful that it’s budget tops an entire budget of a whole 3rd world country versus another that did everything “right” but didn’t get as far?
Let’s talk about these patterns …
Getting There First
I cannot tell you how many times I was able to score a deal with a client or land a job in a company by simply being there first, being ready and on time.
This is the least thing one needs to do and it requires almost no skillset other than being alarmed and cognizant of time and paying attention to detail.
The very house that I live in these days, I was able to land a great deal on it simply by responding to the owner within 10 minutes of them texting me, he said to me I am going to sign a deal with you just because you’re ready and you’re on time!
I didn’t think such a thing would give me much advantage, but evidentially so, it gives you a great advantage to be the first and the fastest but it’s not always a guarantee, but it’s definitely a factor!
Because with the rhythm of life and technology today everything is happening so fast and people aren’t as patient as they used to be, that’s how the market looks like today, a good engineer needs to adjust to that.
When Jeff Bezos from Amazon was interviewing engineers one of the questions he would ask was: Can you get the job done in 3rd of the time a regular engineer could?
There’s a reason for that, being first gives you advantage in the market, makes you more familiar, more common, and it’s hard for a lot of people to adjust to new technologies when they already have something that does the same thing, so being there first definitely makes a difference.
And big software companies understand that, you can see how many of these companies started developing VRs and Cryptocurrency – Gaming and collaboration tooling and even in the mobile world how many started to explore the foldable phones options even if it’s not fully market-ready like what happened with Samsung.
But being there first, and not being market-ready is a death march, if you don’t have an already established reputation and a user base, it could mean that the reputation you non-market-ready product will illustrate the reputation of your software company forever, you’ll be known as the company with bad products and this other company does it better!
Take Tesla for example, electric cars existed long before Tesla, Google had self-driving cars but they weren’t market-ready, this is how Elon won that market, he said I could do this better, I can create a market-ready product!
Now other companies like Nissan, Mercedes and others are trying to catch up that trend, but people will be more likely to buy a Tesla than a Nissan Leaf for being both there first and being market-ready.
So, what’s market readiness?
Just because your software works, and it looks “pretty” it doesn’t mean that it’s market ready.
There are apps and websites out there that don’t exactly live up to the standard of design and best practices some other draw, but they are more popular, more profitable and more agile and useful!
Craigslist has basically no user interface, if you look at Craigslist today it looks like a website that was developed in 1998 – a bunch of links all over the place, yet they are a one-billion-dollar company today.
So, what’s the secret of market readiness?
Market readiness is the ability to build something the simplest user would be able to use and understand.
I have seen 3-year-olds who knew how to use an iPad navigate through apps and pick up which videos the want to watch learning all of that in a couple of months!
Being simple and user friendly makes your software more market ready than others.
But simplicity isn’t everything, there’s more to market readiness than that.
It’s important that your software touches on a recurring need into people’s lives, something they feel they need to do on daily basis, like social media!
People feel the urge to communicate and be recognized on daily basis, something the back of their heads pushes them to feel belonging to something, a group, a family or whatever it may be.
If you look at Maslow’s hierarchy of needs and compare it to the most successful software out there you will start to see the pattern, some of these patterns are destructive and some others fulfill a basic need that everyone could relate to.
There’s a bigger game in the market that people call “creating the need” – creating the need for a product basically touches on the exact same thing as any other product, basic needs, getting something faster with the least amount of effort possible to fulfil a specific need.
Amazon gets you food, toys, furniture and everything else within two days – you type in what you’re looking for and you click a button!
Facebook enables you to find like-minded people, groups, family and friends – type in the name and click add friend and you’re connected!
Market-readiness relies heavily on recurring needs, they could be daily, bi-weekly or even annually, whenever they maybe – don’t create something someone “might” use every “once in a while” that’s a product that’s not ready for the market.
But market readiness today is more complex than that, it requires targeting a specific group of beta testers, running surveys and examining feedback before going live to the public!
The technology you use must give you that agility to change features and deploy faster and gather information as fast as possible.
Let’s talk about the technology then!
The Technical Tools
As a software engineer, there are today hundreds of tools that do exactly the same thing, building websites with no coding experience, building websites with little coding experience, testing mobile apps – content management systems and many, many more for every aspect of every software development platform out there.
Some engineers randomly pick up one of these technologies maybe because this is what everyone else is using or this is what the “cool kids” are doing or whatever other reason, and they tend to build every product and every project with these tools.
But sometimes the tool is a huge time-wasting blocker, that makes the process of pushing new features and developing new products nearly impossible without spending days and days configuring and adjusting.
A part of that could be because of the bad architecture, pattern or development style, but another part is the technology itself.
I’ve seen some of the most enthusiastic people about certain technology fully hating it as they see how slow it makes them and how crippled it causes their product to be on delivering new feature and fixing defects.
An intelligent engineer picks up the technology that takes care of the redundant stuff, let it be scaffolding an interface for a CRUD operation or building a pipeline to share a project amongst other engineers.
Some engineers run after the newest “shiny” technology just because it’s new, they don’t give it enough thought to see if it’s market-ready – will it help them get from point A (being the idea) to point B (being the product and end users) as fast and as easy as possible.
For years I’ve been personally using technologies such as C#, Visual Studio and Azure and here’s some of the comments I received back from some of my clients:
“Hassan works quickly and is a patient and thorough explainer. He has sent me two demos – narrated videos explaining the product step-by-step. He is very adept at what he does, and his technical understanding is mind-blowing. “
Here’s another comment from a different client:
“I am currently working with Hassan on multiple app’s and have been pleased with his timeliness and simplicity when developing app’s. He takes time to think through the project and deliver a simple solution through his programming skills.”
The common theme here is “working quickly” and “timeliness” – if I hadn’t used the right technology I wouldn’t be able to receive that level of recommendation – some of these changes would take from 5 – 10 mins to be done, and customers are blown away by how fast things can be done, it doesn’t mean the feature is simple or easy, it means the technology I’m using is helping me get where I want to go faster.
But communication and understanding are a very important aspect of this, if you cannot communicate with your customers, clients or project managers then all of this would fall part, which is what we are going to talk about in the next article ….
… To be continued