Wednesday, October 31, 2007

Review: The Business of Software

This is an above average book about software business, which gives a pretty good insight into Service Company and Product Company, and also what to lookout for in running a software business. It’s not great, but nevertheless a good read as well.

---

It seems like being a Service Company (customize solution and consultancy, think Formis) or Product Company (actual product, think UBS Accounting) have an equal chance of success. It is not so much of choosing between a Service or Product company, but how much to emphasize on them at different time. But what about those Social Networking or Online Advertising kind of business, it seems like a new hybrid of Service+Product (create a product to provide service, and you generate income not by selling your product, but selling your service, or popularity).


When we are small (which I am now), we should be more Product Centric, focusing on Best Product, Ease of Use, Elegant, Cheapest Pricing, Unique Functionality and etc. When we are big, we should focus be more Market Centric, focusing on Largest Install Base, Most 3rd Part Support, De Facto Standard, Lowest Cost on Ownership and Best Quality of Support.


Creditability is utmost important, defend it at all cost. If you loose your creditability, you loose your customer.


Eat your own dog food = User you won product.


Niche market and new platform are the best places to look for new software product and service opportunity.


The goal of every software company should be to establish large and growing revenue that are recurring through Service and Maintenance Contract, Upgrades and Complementary Product.


Software service company should always remain profitable if it manages head count and expenses carefully.


Some Rules
  • Assemble allies
  • Pre-empt competition, through rapid design cycles and penetration pricing
  • Manage customer expectation with aggressive marketing, public road map and easy product announcement
  • Don’t become complacent, continuous product improvement
  • If you are out of the Standard, try to compete on Price/Performance, Quality and Service

A Strong Startup (though I agree with the idea, but I am not sure how to achieve it)
  • Strong Management Team
  • Attractive Market
  • Compelling new product, service or hybrid solution
  • Strong evidence or customer interest
  • A plan to overcome creditability gap
  • A business model showing early growth and profit potential
  • Flexibility and strategy and product offering
  • The potential for a large payoff to investors

Review: Five Easy way to Fail

What could go wrong in a software project? I am sure everyone has their fair share of experience. I think based on some kind of statistic I read before, more than 50% of software project would eventually fail (or at least, the customer would not be happy). Based on the article from “How Hard Could It Be?: Five Easy Ways to Fail” by Joel Spolsky, here it goes:

Good People
It is said good programmer is 10 times more productive than bad ones, and 2.5 times as productive as the good one. Besides, there are certain “miracles” only the very best are capable of creating. But I still doubt the No. 1 cause of failure is because the development team sucks, or at least, I never been in a team which sucks so much (who gather this team anyway).

Estimation
I do agree it is always hard to make estimation based on a few pages of documents. The devil is in the detail, and we don’t have the detail in hand (the detail only comes on after we dig it during the requirement gathering and system analysis stage, if we do get the project) when we are required to do the estimation (to determine the man days and pricing). With little information in hand, I always mark-up the effort by 50%. One more thing, programmer could be quite optimistic in estimation, so beware!

Deadline
Customer always wants the product to be delivered yesterday, and the developer is always behind schedule and rushing. “Add more people to it”, they say. “Pregnancy take 9 months, no matter how many women you add to it”, says The Mythical Man Month. Something just cannot be rush, or at least it get worse when rushed. You want something lousy (or don’t work) and fast, or something good but being delivered slower? If the product is your baby, I am sure you know the answer. So don’t set unreasonable deadline just for the fun of it, unless it’s absolutely necessary (which is not necessary 90% of the time).

You Don’t Assign Task Equally
This is very true. Everyone work at different speed with different kind of productivity, and they are good at different things. Don’t divide the work into 5 equal pieces and give to 5 developers, as the slow eater will slow down the progress while the fast eater is wasting time on popurls.com.

Work till midnight
I am not an advocate on programmer should always work late. When this always happen, there must be something gone wrong somewhere. Either someone screw up the schedule estimation, or give in to customer’s unreasonable deadline, or project management fucked up, or the programmer just suck big time. Working over 9:00 PM every night is really like a “Death March”, where the morale is dip lower and people are going to leave the job very soon. Occasional project dash is alright, but it is not supposed to be a habit or culture.

What else?
Of cause there are other issues which come to mind, such as
  • No proper tools and libraries to fasten development. No existing framework or architecture as foundation to built upon. No standard practices within the organisation to ensure consistency for maintenance sake.
  • Fail to understand the requirement of the Customer. Some people just don’t have good listening skill.
  • Specification changes rapidly as the project goes. This is not unusual, and the situation is very delicate. This arrangement basically screws up all your estimation, budget and task allocation. Why do we agree to it in the first place? Because we need to deliver yesterday? Deliver what yesterday? Don’t ever agree to this, because it is a death trap. Unless the customer is really paying a lot of money for this, perhaps 500% more than your initial vague estimation.
  • Don’t keep changing people or switching task when the project is running at full steam. You are basically slicing your own productivity and risking your schedule.
  • Manage your Change Request professional and skillfully. Everything must be documented, and indicate whether this change shall have impact on the timeline and cost.
I never quite participated in a very successful project (which I feel like bragging about), unless it’s my freelance project. What does this mean? Maybe I am at the wrong place all these while.

Tuesday, October 30, 2007

Malaysian Blogger turns PRO

I regard Kenny Sia as a professional blogger, because he blogs for the reader’s amusement, or maybe he is an entertainer. Basically he don’t do mindless rant (or writing personal diary), he put a lot of effort to make it funny or controversial, or anything to keep the readers happy and keep rolling in. Then I found Nicolekiss link from his blog, and they share almost the same style, and they are promoting for the hugo fragrance as well.

This came as triple shocks. Why?
  1. More and more people are becoming entertainment blogger like Kenny Sia
  2. Online advertisement had gone from Google Adsense > Pay to Blog > Nuffnang > Indirectly blogging about the advertiser’s theme and give out free gifts
  3. And they are doing combo blog advertisement – link to each other and talking about similar topic. This is a well planned blog advertising campaign.

So blogging could end up as a popular profession very soon (or already is), just like Cyber Athletes.

What do I know about Software Business?

What do I know? Come to think of it seriously, I started to doubt what I really know, after so many years being a software developer, freelancer and also trying a startup. What is the typical software startup in Malaysia? I guess you get a few people who share the same interest and to work very hard doing software service (customization), and hopefully be able to develop a software product one day. I think this is the typical thinking of a programmer, rather than a businessman.

I think most startup in this country got started in 2 ways. One is those who got funded, so that they could pay reasonably good money to talented people to provide software service or developing software product; to get up to speed fast. The other group started the company by leeching on the talents and customer base of their ex-company; so they have both manpower and business on the first day. My conclusion is a typical Malaysia software business does not start from group up and not fueled by passion and dream, or at least I think very few started this way.

Maybe I am being a programmer influenced by all some old time Silicon Valley stories (usually started in the garage), but even most of them got funded eventually, maybe not in the beginning. I still like the idea of dream and passion, though they might not business-wise feasible. Perhaps I find it very difficult to motivate myself to work or to do a good job, if there isn’t any passion in it. I find it difficult just to do something just for the sake of making money. Having said that, I am definitely so programmer like rather than businessman like. Am I doomed in software business?

Take Malaysia Most Wanted for example, I do it because I am passionate about it, though it is not so economically feasible. It’s difficult to get funding for it, because it is nothing too unique in the business mind. VC treats it as a portal, and VC don’t fund portal nowadays. Maybe I should term it as Social Network, since Facebook, Friendster, MySpace and all that it gaining so much popularity. Besides passion, I feel there is a need for MMW: because I need it to help me to find a nice place to dine, to find new property, or to find a nice place to travel to or to buy something from somewhere. I think there is nothing unique about it, but there is no service out there providing what I want as well. Very contradicting and disturbing, isn’t it. I think the devil is in the detail, and so is the angel. I am developing something which I can use, or I would like to use. Besides eating my own dog food, I am creating something to solve a problem, at least my problem. I wonder if I am the majority.

Other than banking on the Internet or Passion, a more typical and secure path would be software service, meaning customizing software for clients. That depends mainly on my contacts, my creditability, my craftsmanship, my pricing, my service, my direction and my luck. I definitely know how to develop software (Technical Skill) for people (Communication Skill), but the question is how to turn this into a sustainable business. I would need to find ways to get more projects (Sales, Marketing and PR Skills kick in here), and perhaps to find a few partners or employees (People, Management, Leadership Skill) to work together, and to generate a sustainable income stream (Business Skill) through the code base (faster development time) and maintenance contract, and to come out with some kind of product as well. So, how to find more projects and what kind a product to develop at a later stage.

Some say if we walk the typical path, we would end up being average as well.

What do I know? So much, yet so little. I think I need more thinking and help.

Gunung Buah Bunga

It had been quite a while since the Gunung Buah Bunga trip, near Genting Sempah. Now trying to utilize the free times to patch back blogging time, haha.

Group Photo, as usual

I think it’s a Merdeka weekend holiday trip. Usually Buah Bunga is a day trip, but we just wanna make it more fun by camping on top. We start our journey from the vegetable farm behind Gohtong Jaya’s shop, where the entire journey is between 3-4 hours. One part of the road (I was told this is part of the old Genting Road, now filled with bushes) is filled with leeches, so walk quickly and stop yelling.


Quickie (Photo Taken will the camera is hanging from the Iron tower)

We are not gonna steal your food, Miss Guinea Pig

Stop Laughing, hahaha

There is nothing too exciting about this mountain, just some good exercise and get away to city headache. We have a stretch of TAR road (infested with some leeches, not as bad as some other legendary leech mountain), some small hills and a last water point an hour before hitting the peak. There is a mini iron tower at the top, with a nice view overlooking some mountains and town. Mountain is definitely a good place to leave the “city” reality temporary behind me while I think of how the hell am I going to reach the top (or go back down in time to have lunch).

Beware of Leeches

I got stung by a bee, just because the little bugger got trapped in my shirt (then you have to die, and I have to suffer). One of Mei Ru’s friend make it to the top and fall asleep upon the first chance she got, while the other have to go down on the same day with others because she is feeling sick. And also, I lost my sleeping bag at the LRT a day earlier, and luckily Kelly manage to lend me hers one.

Photo Links: Mei Ru's Multiply 1, 2 and 3

Tuesday, October 23, 2007

Breakup Plan

In life we always have numerous plan, I want to do this, I want to do that, but we end up didn’t quite do it. So here is another futile attempt to plan my future, but why bother? Because failure to plan guarantee my failure? Haha.

Since I exited the business, I would need to rethink carefully on what I should embark on next. It’s exciting; it’s refreshing and scary at the same time. I would count that this is my 4th attempt to survive under self employment. I like the idea, and I felt that I am drifting away from climbing the corporate ladder. If I choose the path of employment again, I might choose Singapore, just to try out some new environment and challenges. Before that, I would try my best to stand on my own feet.

What option do I have?
  • I could proceed with more freelance software developments, which had been brining in small income all these years. I am weak in my business connections and sales, so I would have to figure that out.
  • I could develop a product, but I still need the sales channel to make the effort worth while.
  • I could continue with my Pet Project Malaysia Most Wanted, which I am very passionate about, and to make it more commercially viable.
  • I could help my cousin more often at The Skill Academy, but teaching is not really my real passion.
Now I think of it, I still remember of my New Year resolution of RM 100K of business income per year, which had not been achieved for consecutive god knows how many years. I think I am still a relaxed person (or lazy) which haven’t gone through much hardship in life. If someone can be the successful CEO of Exabytes and become a millionaire by the age of 25, that prove age is not really a barrier. If I put my heart and mind to do it, nothing is impossible right? Right, I believe that. It’s how to convince myself on how to put 100% of my heart and mind to it. How to stop myself from slacking and giving excuses.

How is this time going to be different from the last time? How do I change my attitude and mindset? How do I brainwash myself and perform some neural programming.

There need to be Change. The plan is important, so is the execution, but the mindset and attitude is even more important. Though it is more easily said than done, but it could no longer be used as an excuse. It needs to be done through the good old fashion way, hard work.

The basic plan is freelancing to keep myself afloat (need to engage some help on this matter) and to do Malaysia Most Wanted until nothing more can be done. No regret. No excuse. To do until there is nothing left to do.

Broken Business Partnership

Another year had passed, another broken partnership, perhaps it’s time to rethink what I should do next. Before that, let’s have a postmortem on why the partnership failed.

Why did I exit? Not really about money, since we haven’t made much yet. It’s more on ideal on how I think the company should be run. We have 4 partners, 2 person works in the company, another 2 works outside the company. At first I am okay with the arrangement, since I am occupied with some problems to solve and to restructure the company and to keep it away from chaos. Besides, the 2 partners working outside would not bleed the company, and perhaps would add value and resources, or even help to bring in more business.

As time goes by, the company got more stable and we manage to employ some people, and the projects in hand might be overloading us as well. Since it’s hard to employ some good programmers, and they doesn’t come cheap as well, perhaps it’s time to bring all the partners under the same umbrella (or the same boat) and work together as a team in a more closely manner. I feel that we also need the synergy, as I felt apart from them and we aren’t really “working together” full heartedly in a “fulltime” manner to grow the company. I felt if you treat the company like a part-time affair, it shall remain a part-time business. I felt everyone should start bearing some risk, get out of their comfort zone, sit on the same boat and be responsible for the company, do or break kind of style. At least, it would force us to work together better and everyone would give all they have to make this work. When you burnt bridges, that’s where the real actions begin. If you still have your income coming from somewhere else, if you still feel too comfortable, if you still don’t need to take responsibility together, if this business is still a part-time affair (you didn’t spent most of your time working in the business, didn’t you, although you though that you might have gave priority to the business), I don’t see the company would have any future in it.

I have a heated argument with the partners, and they disagree with my view (they would not want to come in to work in the company). They have their reasons and arguments, and I have my ideals. After some thought, I decided to exit the partnership, since I don’t believe I could work under such arrangement for long term (basically I don't believe in the idea of going through the partnership in this manner). On the following week (after I state my decision to exit), they told me that they would leave their current company and bring some of their existing staff to work here. WTF! My first impression was that I was so screwed. I realize that they are not willing to leave their comfort zone until I force them to do so. As long as I am still there to guard the base, they could continue to remain in their comfort zone. So, it’s a loose-loose situation for me. It is ironic that I have to leave the company in order to have my ideal achieved. I was a money making machine for them, and they didn’t have my interest in their mind. I guess at the end, everyone is for themselves. I understand it’s just business, but I thought there is more meaning for the word “partnership” where we wouldn’t utilize others for our own comfort. I guess I was too ideal again, haha.

Is my decision correct? Like I always said, there is not so much of right or wrong, just what I believed and to stick with it. No turning back, no regrets. It’s time to think of survival and future plan from now onwards. I might have made some bad decisions here and there, but I don’t really know, do I? I know from the beginning business partnership is difficult, and I decide to give it a chance. Perhaps now I understand the formula for a successful business partnership slightly better (do I?). I still have a lot to learn, and to try, until I succeed someday.

After learning from some mistakes, what I should do next is the more important question.

Malaysia Software Business and IT Talent

I had not write for quite a while, not because nothing special is happening around me, but it’s just too much of them until I’m not quite sure what to talk about. Perhaps it’s a bad idea to jumble everything out in one post, as it would be too lengthy and might be lost at times. So, I’ll try my best to keep it lean and mean. BTW, my loyal readers (haha) ask me why I haven’t blog for quite a while, so here it is.

I said quite a while ago that business partnership is light marriage, and I think it is still true. And I just exited a marriage, haha. The good thing is, I am pretty open minded about it, though I had been married for a year by now. Isn’t all the time and effort wasted, I ask myself? Somehow I don’t think so, as I did learn something from it, and it sort of give me a better and fresher perspective, or at least a slight better idea on how to survive in the software business world. Life is not all about winning and success, although it would be ideal. A loser once said, failing is the mother of all success, so I kind agree with the loser.

I think the software business world is transforming quite rapidly in Malaysia for the past few years, and the barrier of entry for self-funded small startup had been raised. Why is it so? It’s because of the MSC is screwing our homegrown IT industry and giving funds and opportunities for MNC to suck our local resources dry. I was told MSC initial strategy is to help the local players, but they are too small and grow too slowly, thus it doesn’t look good on MSC's book. Then they decide to do some creative accounting and invite some global players, not only giving them tax break but to give them money as well so that they could suck on our local talents. Suddenly the industry had exponential growth, everyone is working in MNC using our own tax dollar and everyone is happy, except local ICT players. It had been harder to get local talents to fuel the business, and the cost of employment had gone up rapidly which the quality goes the other way.

I think more local talents are working for MNC nowadays, which could be a good thing due to the expected “Knowledge Transfer” effect which don’t usually happens very often. But I am worry for some fresh graduates who went to some initial high pay but dead end job, such as call centre and product support. Yes, you get RM 3000 or more as starting salary, which is absolutely very tempting. After a few years, you try to look for other job which pay higher than RM 3000, then you would found yourself in a dead end. You have no experience (taking call for years is not an experience to brag about), and taking another call centre job won’t get you higher salary or a better career. If you do product support, your career and experience restarted to ground zero when the product dies (or dying), which happens very often. Each product had an average life span of 5 years, and it’s a universal law each product will go down one day and being replaced by something else. If you choose a career such as a programmer (or Network Engineer or System Analyst), you might get paid a lesser starting salary, but at least you have a future as you gain skill and experience. You would be building upon a good foundation block, and could continue building upon it to get a better future.

My advice for the fellow fresh IT graduates of Malaysia out there:
  • Programming is the most secure IT job out there in the market at the moment. Demand is always high, and supply is always low. It’s not an easy job, that’s why so many people choose not to do it. It requires passion, skill, patient and quite a lot of hard time.
  • Don’t choose a job which could be outsourced to other country, such as a call centre job. Read the book “The World is Flat”. Someone is willing to take a quarter of your salary and work twice as long.
  • Don’t depends your career on a product, or at least make sure the product had future (which I think is risky as well). Remember: when the product dies (either RIP or sales slowdown), you go down with it together.
  • MNC could be quite merciless during cut cost exercise and retrenchment, so don’t ever feel too comfortable. Company loyalty (both way) is a thing of the past. Learning opportunity is always there, but be prepared for some surprises as well.
  • Don’t be too specialized. Learn a few more skills, including soft skills. Even though you are a technical person, do learn a little bit about sales, marketing, business, management, communication and etc. Even though you are a Java master, do know a bit about .NET, PHP or C++.
  • When you are a rookie, be patient and learn, think about money later (which will eventually come when you are really good). Humility is very important, and you could only afford to be arrogant when you are damn good. Don't be demanding or arrogant without something to support that.
Time had changed. I felt old now. God bless everything.