Chances are, you know of the stories of Steve Jobs and Bill Gates. Kids who dropped out of college and founded massive companies. These guys offer inspiration and hope to entrepreneurs. They teach us that not only is this possible, but possible through example.
This has given me a steady stream of hopeful students and graduates contacting me with their projects and companies. A fair number of them didn’t know anything about tech, couldn’t code, but they had a vision, knowledge of their field, and determination. Sadly, that’s just not enough. A lot of them fail hard. In fact, they fail so hard, they didn’t even make any revenue, let alone profit. So, what went wrong? Were they stupid? Poorly educated? Clueless? Lazy? No. A lot of them had come from world-class universities, knew their field, and worked hard. The sad fact is that the market has matured. It’s no longer a secret that you can make a lot of money through tech. Considering this, it’s not surprising that the average age of a startup founder is 42, with 45 being the average for high growth startups. Do you have an ambition for a project? Here are 3 areas where Bill and Steve would have to step up their game if they were starting companies today.
Like the idea of sitting in a garage with a group of friends building something cool? I’ve worked in a startup that powered the finance behind companies like Vauxhall. That part is fun. However, software engineering management theory and practice has evolved since the 70s. We had weekly meetings, standup meetings every day, and sprint plans. Every software engineering task was broken down into tickets, tagged, and logged across the process. We adhered to scrum management practices [link]. This wasn’t a corporate environment either, there were only three devs in the company and we were coding in a basement with a fridge full of beers. If you don’t want to adhere to this, good luck. You’ll be competing against teams that will be doing this. When something breaks, you will take longer to fix and roll back the issue. Coordination will be compromised which will slow down development as some devs will be choked due to waiting for other areas to complete first. Some tasks will be duplicated or made redundant due to others’ progress being revealed. If you don’t have proper management experience, get someone who does. Developers who don’t want to develop anymore make great scrum masters because they understand the general concepts of development, and they have management experience. On the flip side, I’ve seen a fresh graduate try and manage operations in a startup. He didn’t know anything about tech but also had no management experience. The coordination was so bad that I, a guy who loves coding to such an extent that I do it every day, will travel and generally help people out for free, got angry. I’ve paid for my own flights to help out at coding events for free and walked away happy because I got to code and help people with coding. This guy was so clueless/useless, I actually felt angry writing code for the project. Now I’ve worked with difficult people, but I’ve never felt this way before. Needless to say, I walked away from the project. Was he a bad guy? No, he tried hard, but his lack of experience resulted in hiring devs we didn’t need, chasing tasks that were not needed. He also pushed for projects that would actually weaken the progress of the whole project. He also didn’t know what a kanban board [link] was, let alone use one. Because there are multiple parts to tech now the coordination was terrible. I didn’t know where the app dev was or what he was doing, I was getting last minute harassing calls from this “manager” saying that he’d spoken to the app dev and needed X to be done now, sometimes within a couple of hours.
Gone are the days where you can put a stack on one server and call yourself the next hot thing. Tech has just become more complex. Frontend frameworks, APIs, machine learning, and so on, make it harder to stick out. It doesn’t just stop at customer-facing tech. There’s a branch of software engineers who specialize in streamlining the dev process called DevOps. These guys develop continuous integration pipelines that instantly run tests on code that’s uploaded to the git repos. These will then alert your team if there’s any break. Virtual containers powered by docker is becoming more of a thing. These speed up your deployments and enable multiple mini containers with their own apps and operating systems to be run on one server. A good DevOps team will reduce your server costs and increase the speed at which good quality code is produced, as they will continue to automate repetitive tasks for your devs. If you don’t have this, you’re going to struggle to compete against teams that do.
As the market gets more saturated and tech gets more complex, so does the business around it. The explosion of APIs [link to API meaning] means that there’s a lot of companies who focus on one particular thing in that field. They then offer API access to other tech companies as it’s a lot cheaper and quicker to just pay for the API. There’s big money in tech companies supporting other tech companies. The new advancements have also enabled the building of microservices [link]. This is where you get specific servers to do specific things. They can then talk to each other. Understanding this will help you create business plans where the stages take into account the hosting and development of new servers and roles that they can carry out. Not understanding how tech can be structured and scaled will limit your ability to be lean in your business. Nowadays there are tech business consultancy firms that hire ex-developers who also have a background in business.