About me
Hi, My name is yee siang, I self-thought coding when I was in Highschool, with the motivation to crack saved games and shareware. Then I graduated from MMU game development major in year 2005. Worked in a few startups and software agencies, never really like to settle in a big corporate with 9-5 works, and here I am in MaGIC since the year 2015 as a developer. I do not have many success stories to share, but I have plenty of failure stories to talk about. Besides coding and entrepreneurship, I also have a strong interest in multimedia and design. This explains why I am also a guest lecturer in a local design college, teaching designers how to code.
The context of this speech/article
It is intended for the tech startup that builds software products for their business, not much for that none tech SME type ‘ startup’, or even e-commerce, but some of the topics here are still quite universal. What I going to say here is from a developer’s perspective, it will be biased just like the speech given by the sales guy. While what I going to say here is not new to most developers, my intention here is to help their business co-founder to understand the developer better.
Idea Is Cheap, Execution is everything (Implementation is Expensive).
In the design college I teach at, they like to emphasize on Idea. Sharing an experience during my uni time, where I had seen this Creative multimedia faculty-student treating his homework so secretive, covering his artwork with black cloth, not willing to talk to his housemate about what he going to submit to the lecturer.
I do agree that Idea is important, but it is also cheap at the same time, if it is just an idea in your mind. Idea is easier to keep in secret when it is in the primitive form where not many technical details are involved; for example, a novel story, a painting, or a fashion cutting. However, if you are building a castle, shooting a movie (not your home video style), making a computer game… it is harder to keep a secret (to yourself) when there are many 3rd parties involved. This is very true for software projects too.
I like to talk about my idea to others before building it, serve as my market validation like what ‘Growth Hacking’ suggested. I do not afraid of people stealing my idea because I believe execution is everything. This is also the reason why I am afraid to hear a client talking about his idea of building a Facebook clone for a freelance project.
Layman does not understand the great number of effort startups put behind the scene to realize an idea into a soundable business. The entrepreneur should understand this better than anyone else.
Software development takes a huge stake in execution and it is expensive, simply because the developers are expensive. This is why we have so many different methodologies like LEAN startup, MVP, Growth Hacking, Business Model Canvas, but all telling you as a startup to iterate fast and focus on your core unique features, to reduce upfront development cost.
Where are the programmers
The common questions we got besides being asked for a quotation is: Where to find a programmer. It’s easier to figure out if we trace them from the time they graduated from uni.
As an excellent software engineering graduate, Julian has many choices:
- work in an MNC (stable job, work-life balance, corporate ladder…)
- go to Singapore (more MNC there, more international exposure, better currency…)
- run his own startup (Be my own boss, publish apps/run ads/build products earn USD)
- run his own software house (freelancing, chances to earn USD)
- Others
- Become an Uber driver (not in the industry)
- Join the established startup (fave, grab…)
- Retired in MaGIC (kidding)
- Join your startup
Wow! Let’s give a big applause to most of you here, who already had your own tech guy and managed to come up with the product and gain traction.
As you can see, it is quite hard to get a programmer interested in joining your startup as there are too many options out there for him.
I recalled an Jobstreet ads I saw a week ago that offer USD2.5-6k for a web developer that willing to work in Vietnam/Cambodia. What stop the young Julian who is willing to work aboard from taking the offer but joining yours? Ok la.. this is an online casino business(taken down now) . When come to hiring programmers, you should have noticed that you are competing for a resource globally.
Even in Singapore, it is reported that smaller firms have difficulty filling the programmer vacancy but not project managers. The time takes to hire a project manager is around 1 month while it takes 3-6 months for programmers. It is not hard to understand this phenomenon, just look at the kind of expectations people have of developers vs the manager, and the salary differences.
It seems like developer only go for money. Well, there’s nothing wrong here, as money is also the motivation for entrepreneur, but I believe there are still developers who value other things more than money. Research shows that programmers are willing to scarify pay to work with a favorite co-worker or ex-team he enjoyed.
If you have difficulty expanding your team, try to understand why your current programmer sticks with you, and use it as a reason for new programmer to join your team.
The Iron Triangle
No one remember where it came from. It model the project management constraints that is still useful in today.
- Time – when you need it to be ready
- Budget – how much you willing to pay
- Scope – what you want
Everybody wants to have all 3 simultaneously, but you can only pick either 2.
- Time & Budget, you scarify scope. You get to develop fast and cheap, but let’s assume the outcome is crappy.
- Time & Scope, you want fast and complete, you definitely need to pay more money.
- Budget & Scope, you want it cheap and complete, no rush then, the developer will take his time building it.
Many people try to beat/cheat this triangle. Hereby I like to raise few related points.
Manage Feature Creeps
Features creep happens on both sides of client and developer are the main culprit for project delay and failure.
Client failure to visualise and come out with complete features of the software he wanted to build, resulted as new features being added as the project progress, caused chain reaction to the project that eventually delayed it.
Developer chase after perfectionism, best practices or new features blindly, especially in Computer Game project. Note: Best Practices are context dependent; New programming language/framework features can be quite cool but also buggy at the same time.
Hiring someone Experience
Hiring someone who did the similar kind of software product that you are going to build, gives you assurance in time and budget as the developer can reuse code. Experience matters!
Switch from custom development -> Product
If you found an off-the-shelf product for the solution you going to build, you can get it super-duper fast, dirt cheap (think windows OS at RM500 vs custom developing it), and similar features (you might need to scarify uniqueness and some flexibility). You beat the triangle in this sense. However, it is unlikely to happen since you are building a startup. What’s the point for your startup to exist then?
Conclusion: Respect the iron triangle, agile is the answer as it approach thru a ‘managed balance’.
Agile, Scrum and Sprint
ref: Software Development explained with cars
Product Development
Programmer vs Designer
Programmer is like your left brain while designer is like the right brain. They are trained to think from different perspective due to their profession.
Hiring Developer
Product focus vs Service focus
After running for years, startup may ended up in 3 conditions:
- Success
- Failed
- Half-alive
Success is the best thing that can happen to your startup and you should aim for it. But if unfortunately, your startup failed, you admit the failure and move on with another idea or life. Half-alive (instead of half-dead, zen teach me to stay positive) is the worst-case scenario. You and your teammate are stuck, trying to get more resources to keep it running; many have ended up pivoting to service focus agency.
Your dream is to continue working on the product using the money from the custom software development projects you acquired (reality). This is very dangerous as these service focus software projects will further drag down your progress, eventually causing your dream product losing competitive advantage.
When you are in this condition, you should ask yourself seriously: Is it worth continuing? Don’t be a forever-startup company.
Outsource vs In-house
I do not believe a startup can succeed by outsourcing its innovation to others. In-house team are required because:
- There are just too many moving parts throughout the innovation journey
- You are not just building one product in the process, you may need to pivot multiple time
- Communication is challenging as lag time is high
- Hiring a 3rd party would be super expensive
- To the outsourced developer, your project is just another business for him. Passion is lacking here.
Startup with Strong team is half way to success
In short, your team is more important than the idea you are working. Experienced investors evaluate your team as much as your idea. With a strong team, you can pivot to any idea later on with ease.