How to Start a Tech Company and Build Your First Software Product

Coding, coding, coding…

I grew up in my brother’s shadow. Though I also have a younger sister, my brother Dann was my biggest influence. He introduced me to books, chess, and computer programming. When we were in grade school, our father bought us an ATARI 65XE personal computer with source codes that we encode each time we wanted to play a video game.  

My interest in business came upon me, during my high school graduation day ceremony. While I was waiting for my name to be called in stage, I was thinking of a degree to get in college. It’s still vivid to me when I wrote down that I wanted to build my own business. 

I went to college at AMA Computer College in Makati and ended up getting a computer science degree because coding computer games was the only skill I know. My parents never saw me as an academically talented student, unlike my brother who excelled in all subjects and had good standing records in school. 

My tiny subconscious mind, somehow, wanted to prove something to my family but I never really took it as a challenge to perform.  

I began to see my talents when I was in college when I found myself solving machine problems without a sweat in the computer lab while some of my classmates were asking to copy and save my work. Finding out that talent wasn’t a big deal. I just ignored it and pursued college parties instead.  

After college, I worked in a Japanese software development firm. During my tenure, I was able to confirm that my programming skills were excellent because not only that I got the job application exam perfect, but I always finish my task assignments ahead of time and ahead of my team. I was like the usual superhero story who’s amazed but terrified to finding out his superpowers.

One day, my seatmate Danny handed me the book Rich Dad, Poor Dad by Robert Kyosaki. It diverted my attention at work and so I always finish my tasks earlier so I can read the book during office hours.  

I was invited by my colleagues to attend a multi-level marketing sales pitch. I joined because I was inspired by Mr. Kyosaki in his concept of making money work for me. Those sessions motivated me even more. Everything changed when I read the book “The Difference Between God and Larry Ellison” by Mike Wilson shared by Dann. I got super pumped to start my own company because of that book. It reminded me of my dream to have my business during my high school graduation day.

What a significant day it was when we had a family reunion and had met my favorite uncle Manny who just came home from Papua New Guinea. It was 2001 and around that horrific time when the World Trade Center collapsed.

Manny was very enthusiastic about looking for a more promising business on top of his accounting firm in Papua New Guinea. We started discussing opportunities during our reunion. It was perfect timing because he wanted to grow his business, while my brother and I were eager to develop a software product and start a business. After a series of discussions, we agreed on developing our own ERP software. At that time, accounting systems and ERP were all on-premise or client-server based. The Internet was just on its infancy stage and there was no fully web-based accounting software.

Our vision was to have real-time accounting and business reports for companies with several locations and branches. We started with Microsoft .NET as the development platform but switched right away to open-source Java 2 Enterprise Edition (J2EE/EJB), MySql as the database, and Struts framework on the front-end.  

From there on, things have been a roller-coaster ride. 

If you are an aspiring entrepreneur who wants to launch a tech startup or develop a software product, we all have a story but one thing is for sure, there is no easy path.  

Here’s a practical guide to building a software product and launching your tech startup:

1.) What business should I develop and launch? 

That depends on your goal or passion. It can be a business software, an online platform that solves a particular problem or something that serves a particular market niche. You may want to build an entertainment platform, a video game, or a mobile app. 

Try to look for people’s problems and develop a solution. Run market validations on every stage of your startup journey, be present with your audience, and be true to your mission. 

2.) Should I learn a programming language?

If you want to do it yourself, yes it is a must. Or get a co-founder CTO to make your life easier.

3.) Should I seek a consultant or a startup coach?

Find friends who are an expert on the subject matter. If you want to develop an accounting software, then find an experienced accountant. If you want to solve a problem with project management, then find a good project manager. Be cautious with a bluffer startup coach. Don’t engage with someone unless they have at least one successful company in the portfolio.

4.) What programming language should I use?

If you are creating a mission-critical application, I suggest going for Enterprise Java or C++. If you prefer an easy rapid development environment, then go for Microsoft C# .Net. If it is a web application or an eCommerce then go for PHP, Python, or Ruby on Rails. For mobile applications, my personal preference is the native Android and iOS languages especially if you have a budget but frameworks like React or Ionic will also do.

5.) What OS should I use?

Mac, Windows, or Linux will do. It doesn’t matter.

6.) What database tools should I use?

MySql or PostgreSQL if you don’t want to pay for an Enterprise MS SQL license. And/or use a NoSQL database such as Cassandra or MongoDB if your product will handle a large volume of data.

7.) How do I design the database?

Just layout the table names and its columns on your first iteration. The next day, try to normalize and eliminate redundant tables by fine-tuning the entity relationships.

8.) How do I start the development?

a. Start with an outline of features and user stories.

b. Draft a use case whenever applicable.

c. Convert those outlines into detailed menu items and windows.

d. Draft the database design.

e. Choose a programming framework e.g. MVC, Spring, JSF, Struts for Java, or Laravel for PHP, you don’t need to re-invent the wheel.

f. Choose your IDE (Eclipse, IntelliJ, NetBeans) compilers, and build scripts (Apache Ant, Maven, Gradel)

g. Run a hello world program and CRUD sample.

h.Draft the UI/UX wireframe, Start with the login, dashboard, and menu layout. Use tools such as Adobe XD and Zeplin.

i. Create a prototype for reporting (JasperReports, Crystal Reports)

j. Develop your test scripts.

k. Start coding and managing the development team. Use tools such as Jira, Trello to manage tasks and Kanban boards)

l. Implement test automation.

m. Avoid scope creeping and manage your release plans and sprints well.

9.) What software development methodology should I use?

Nothing beats Agile / Scrum

10.) Should I hire a programmer?

As much as possible, do not hire. Subcontracting a programmer, to me is a better option. Hire support developers instead once operations start.

11.) How should I get a programmer?

Post to job boards, LinkedIn, and online freelance platforms. Head hunters are an option if you have a budget.

12.) How do I train the programmer? Should I separate front-end and back-end programmers?

Train only programmers if your budget is limited but if you don’t want to micro-manage, then go for an experienced independent programmer who’s able to work on any project or any language. Don’t worry about the cost because a good programmer is 10X-20X more productive than a mediocre one. I go for full-stack developers.

13.) How do I design the UI?

Get from templates and your closest similar application. Then just tweak the color theme and user journey accordingly.

14.) Should I hire a UI/UX designer?

Ideally yes, if you have a budget.

15.) Should I worry about technology upgrades?

Yes, you don’t want your product to be obsolete soon.

16.) Should I work overtime and overnight?

Practice the 40 hour week. I suggest working overtime if there are backlogs from the previous sprint. But never overnight.

17.) I saw a bug, should I fix it right away?

If there’s a version already released, yes do a hotfix. Otherwise, just fix it on the next sprint.

18.) There are tempting features to include, should I add it to the current release plan?

No.

19.) How do I market my startup?

Before marketing your startup, make sure you have defined your customer journey, support and service delivery fulfillment if applicable.

Start with friends and colleagues. After good reviews and iterations, then start your digital marketing, post valuable content, build an email list, run SEO, and PPC. Here’s a Small Business Guide to Digital Marketing

20.) Should I get an investor?

Not right away. Get traction first. Once you have your first 100 users, then value your product minimum of 4X your total cost to-date then add the value of the existing customer base, future revenue, and your brand if you have established it early. But for me, I will bootstrap my startup until its maturity.

21.) What is the best Sprint period?

I prefer it for two weeks.

22.) What do I do if the team doesn’t meet the timeline?

Digest reasons why during sprint retrospective, normally because of underestimated tasks or programmer’s habits. Lead the team by coaching. If a particular team member is habitually delayed, then issue formal notice and reprimands and fire them on the 3rd offense.

23.) How do you estimate research and knowledge acquisition?

You cannot. Just put 3 days and adjust accordingly.

24.) How frequently should I release a new version?

Monthly on the first stages, then quarterly release is a good frequency.

25.) When should I give up?

Don’t. Only give up if no one wants to provide you funds and you don’t know how to code.

26.) Should I go traditional installed license model or SAAS?

SAAS is the now. But if you want immediate cash flow, try selling it as installed-based while working on your SAAS.

27.) Should I implement automated testing?

Yes. You don’t want to hear issues from previous features every time you release.

28.) Should I implement continuous integration.

Yes. (Jenkins)

29.) Should I use a versioning system?

Yes. You don’t want your code overwritten by another programmer. (GitHub / GitLab)

30.) Should I document my software design?

Yes on every new feature. The main objective is for staff turnovers.

31.) Should I host the product myself or go for an existing cloud hosting?

If you are as rich as Amazon, then build your data center and host it yourself. I recommend Amazon Web Services as they are equipped with a lot of scalable features that you can use on-demand especially on the cybersecurity, big data, and AI. Ask someone to run Vulnerability Assesment and Penetration Testing (VAPT) to ensure your platform is safe from malwares and cyber-attacks. Then fix findings as soon as possible to protect your customer as well.

32.) How do I maintain my digital product or platform?

Hire or outsource your level 1 support (front-liners), level 2 (devops), and level 3 (product development team). Establish your Service Level Agreement (SLA), your support business process, escalation procedures and then implement Freshdesk as your ticketing and SLA management system.

Leave a Comment

Your email address will not be published. Required fields are marked *