Posts Tagged ‘startup’

Agile Development

March 11th, 2010 No comments

I’ll admit it up front. During my undergrad (which was many many years ago), I was taught the waterfall model. Indeed, there was some mention made of other paths, such as rapid application development (RAD) and joint application development (JAD), but there was always the implication that those models were used by individuals who smoked their vegetables rather than eating them.

There are so many mature components available nowadays that unless you’re developing air traffic control software or logic for the Mars mission, you’d be irresponsible to NOT go agile!

What I love about Agile is:

  • At the end of each sprint, you have production ready code. If you can manage that, work is a joy, as nothing stresses me out more than half-finished tasks!
  • You usually know what to do next, even if you can’t see the complete path to the end of the project. Dead reckoning worked for sailors who did not have the luxury of compasses and maps, and we have the luxury of not betting our lives on our priorities and decisions!
  • The solution takes shape almost by itself. It perfectly fits the thesis of Al-Khawazmi, who states as when you take a big problem and break it into smaller pieces, and you solve all the smaller pieces, the big problem is automatically solved! Ancient philosophies with modern utilities. This theory is the basis of the algorithm and also contemporary map-reduce

I am satisfied customer. Three sprints from beginning to end, and I have a product on-line. What better proof do I need?

– Shahzad

Push and Pull Marketing Strategies

November 2nd, 2009 No comments

Our startup is at the point where we are ready to start offering our product to the larger market, and realizing revenue (at least via advertisements). As a consequence, I’ve been keeping an eye on where the revenues are likely to accrue from.

As part of my research, I’ve realized that there are actually two distinct strategies that startups can take to revenue (and you do need revenue to keep the lights on in your firm; no exceptions). They are known as the ‘push’ and ‘pull’ strategy by people who invest (and also us startup types who want to succeed at what we’re doing). Obviously, there are other strategies available as well, involving VC funding etc, but for bootstrapping (which is our preferred approach), you’ve got these two options.

A ‘push’ model relates to an entrepreneur who launches their startup because they believe that they can develop a product or service that combines market appeal with a competitive advantage over competition, as such it is eventually pushed to the customer via sales. Alternatively, the ‘pull’ model is based on some certain knowledge that a customer, whether current or potential, is interested in buying a particular product, and the entrepreneur develops it with that specific buyer in mind, and essentially the product is ’pulled to market’ by the customer.

Both have their pros and cons. The advantage of the ‘pull’ model is that as soon as the development phase is complete, you have a revenue stream from the client who ‘pulled’ this product. The disadvantage is that you may be inadvertently subsidizing the R&D function of this client, and the product may be so specific that you cannot actually attract any other customers.

This risk factor is the primary reason we developed our product using the ‘push’ model, as this gives our startup the opportunity to sell our product to as wide of a market as possible, and the products we’ve produced can have extensive potential applications.

Thus the risk with the ‘pull’ model are long-term (what if we’re building too specific a product that no one else wants), while those associated with the ‘push’ model are more short-term (what if we run out of cash before we have a product that the market wants).

What will work best for you ultimately depends on your risk tolerance, your network of contacts, and your access to differentiators that can allow you to create a successful product. If you have low risk tolerance, a good network of contacts, a buyer with a need that only you can fulfill, the pull model would work for you.

I attempted to follow the ‘pull’ strategy with two products that I’ve developed in the past around XML extraction from PDF (which inferred structure via OCR-like pattern recognition) and again with natural language generation intelligent methods for game content development. The problem with both was that they were too specific and filled the needs of a single organization perfectly, and as soon as they decided that they had other priorities in place, we lost that customers and found that it would take as much (or more effort) to continue this effort with another customer (whom we still had to find). You may be able to go and knock on the door of the competitor of the last organization you worked with, however keep an eye on any clauses in your contract that could cause problems later.

It may seem counterintuitive to start from scratch when you have something developed and well on the road to maturity already, but sometimes you need to make these hard decision. We decided to start anew with a green field.


October 23rd, 2009 4 comments

OK, we’re almost here. After 5 months of efforts we are about to go live. The first 3 months were layered on top of a VERY demanding 60 hour work-week consultancy, and the last 2 months of which were a flat out, fully-focused, I-am-going-to-burn-out-or-get-this-done-even-if-it-kills-me rollercoaster ride.

Almost there. Almost.

The code works in testing. Everything is perfect so far.

The crawlers perform as per spec, the custom heuristics we’ve created to analyse blogs tests out fine (they give VERY sane results), the machine learning components give us over 96% accuracy. We can tell a ton about bloggers just by what (and how) they write, and the structure of their blogs (which are automagically reverse-engineered.. eat your heart out Harry Potter).

The entire flow is rock-solid, and I’m grateful that I chose the more robust option of Java EE to express the logic in, rather than ‘quicker’ language like Perl, PHP or Ruby.

There are some ‘routine’ elements (i.e. subscription, registration etc) to take care of. Nothing associated with any risk.. stuff that we’ve done dozens of time before. It’s all about polish right now.

There may be some important pieces missing, or more likely in infancy (some amazing heuristics we can put in, but that’s for Q3 now), but then, this is a prototype. For those who would appreciate an analogy, it’s like building the airplane while riding in it. You have a high probability of experiencing crashes (which thankfully are not fatal in this scenario! .. yet).

I am feeling really giddy as I take the system through the last steps. Got to make sure that everything works.. have to keep an eye on security, batten down the hatches, set up the corporate presence (yes, emails, accounting systems etc), set the analytics to capture every nuance of user-interaction data on the site.

Perhaps once I get the site up, open it up to the world and unleash the dogs (sorry, Shakespeare’s King Lear always gets me), I’ll feel better. Meanwhile, things to do… things to do !!!

I’m nervous! Have to look at patents and funding grants now.

We’re almost past the prototype stage (stage 2)! Now to delight the customers and scale up (Got an eye on you Amazon EC2… spare a smile for me, and a server or a few!).

Wish me luck guys!

Monetizing Blogs

July 17th, 2009 No comments

Sometimes, the rules of real life apply very solidly to the etherial world of the Internet. I recently read about how Bankaholic was acquired for $15 million. Not bad for a blog run by a single individual (Mr.Wu). It made me wonder, why would have BankRate paid such a hefty price for this Blog? I did a bit of digging around, and noticed that the key is lead generation. Here is a quote from Mashable:

“Just in last three years alone, the prices for some of the bids have gone up 200% to 300%,” said Chatter. “As an example from Google, to be one of the top three advertisers for ‘high yield savings,’ you have to pay $13.20 for a click. With a 1% conversion, it costs you $1,300 to acquire a customer.”

“Those are the numbers behind this sale – essentially, it’s lead generation.”

Now, all leads are not equal; banks are quite happy to pay oodles of money to acquire customers, who represent essentially a lifetime flow of revenue for them. A really ridiculous example is that of Asbestos Mesothelioma. You’ve probably never heard of this, but lawyers in the US are willing to pay over a thousand dollars a click for this keyword. This is because, people who are searching for this rare disease are quite likely to want to sue their former employers for oodles of cash. Lawyers do like that, very much, especially if they can take the case on a contingency basis and keep 35 – 50% of the net proceedings, on top of their legal fees.

So there you have it gentlemen, if you’re looking to make some cash via your blog, you need to enable advertising, and focus your content on information that commercial entities are deeply interested in. I don’t envy Mr.Wu of Bankaholic, who spent 18 months writing about bank mortgage interest rates, but he obviousely chose a niche that worked out well for him (and which contained paying customers). It’s eerily like your choice of location for your business; if you choose to run a restaurant down-town in the most fashionable area, you’ll probably end up with lots of customers in the daytime (around the offices) and the evening (around social activities). Move elsewhere, and you may have more people in the day than at night or vice versa. If you choose the wrong location, you may have to shut down due to lack of business.

If you want to learn more about particular keywords that your blog may want to focus on, try out the Google Sandbox. It’ll tell you about traffic as well as advertiser competition.

Security.. what me worry?

July 14th, 2009 2 comments

It’s been a watershed moment for our startup over the weekend. I got the components for the server from and put it all together.  It’s a sexy system,  i7 CPU, 8cores, 12 GB DDR3 ram, lots of cooling,  RAID5 configuration with terabytes reliable drive space. It literally floats an inch in the air through it own power, and emits a wicked blue glow. This is more powerful than a dozen of the servers that Google started out with. It only set me back around $1,700, and is a performance machine architected to withstand loads of queries.

I’ll get this machine collocated at a managed site later (once we get some revenue coming in), but for now, I have it in my basement, and accessible via dynamic DNS.

I was super-excited to get started and created three accounts for my collaborators and mailed the info out. Within 10 minutes, I noticed using the ‘w’ command that one of my collaborators had logged in. I tried to talk to him via the console ‘talk’ command and my attempt to talk was refused. I figured that it was a configuration issue and fired up Skype to talk to him. The conversation went as below:

[10:25:56 AM] Shahzad Khan says: Hi AL
[10:26:04 AM] Shahzad Khan says: How is the connection to the server?
[10:26:11 AM] Shahzad Khan says: Is it at a workable speed ?
[10:26:49 AM] AL says: Oh, I had not even seen that e. mail.
[10:26:53 AM] AL says: Let me check.

Ok, at this point, I’m perplexed. What’s going on? He’s already logged in!

I double-checked, and another of my collaborators was logged in. I now fired up the ‘who’ command to see where they were coming in from. Well, they were apparently no longer in Ontario, and were coming in from Spain!

In a blinding flash, I realized that 10 minutes after setting up the servers and accounts, we’d already been hacked!

I booted the ‘unwanted guests’ off, and changed the passwords to the AOL style pw, rather than the throwaway ones that I shared with my friends. Paranoai is my new watchword now ! I haven’t been hacked in 14 years, since the core wars that used to take place between the IRC junkies… and that was all good fun among friends. These hackers who tried to hijack my previous server are professionals. They’re either scanning the block of IP’s that my ISP uses for their DSL customers, or the Dynamic DNS server that I employ to keep my server’s name updated for the world. There is a standard going rate for ‘bots’ and ‘smurfs’ that are harvested this way, and my poor server was about to be kidnapped and sold into slavery.

My mistake was to believe in ‘security by obscurity’ and not worry about the strength of the credential. It’s only my instincts on ‘normal’ server operation (and noticing something amiss) that saved us this time. Next time could be messier. I noticed that only the two accounts with usernames that are common were compromised. The other accounts were not broken into, as the username was different. This leads me to suspect that this incident was the outcome of a plain vanilla dictionary attack on my citadel. Oh the shame of it all!

How’s that for baptism by fire? 10 minutes! Real life can be so brutal.

Architectural changes in web applications

July 6th, 2009 No comments

For an ‘old-timer’ like me, who witnessed the birth of the web, and the adoption of the Internet, it’s been a challenge to unlearn some ‘rules-of-thumb’. I’m listing some of these as food-for-though for others who follow a similar technical path.

Moore’s law has mutated. Technology is no longer about boosting speeds and capacities. Gone are the days of the break-neck races between Intel and AMD to achieve higher Gigahertz in their CPUS. The new reality is all about parallelism, multiple-cores, caching layers in architectures (typically via memcached), formal and informal means of splitting data across multiple machines (i.e. sharding, load-balancing, map-reduce). Any non-trivial architecture that requires massive scalability has to build in the capability for synchronizing across distributed server components:

Assemble battle-tested components, rather than build a proprietary stack. I’m surprised that people who are learning to program are still taught to use linked-lists, and spend time at the data structure level. Most developers will never need this granularity of understanding, and will simply plug in the data structures from the C++ Standard Templates Library, Java Collections Frameworks, or whatever language they prefer to use. Obviously, this low-level knowledge is very useful if you’re working in an area that needs it, but frankly, the majority of developers do not need it. The existence of Service Oriented Architectures actually makes it possible to ‘plug-into’ remote processing capabilities that are no longer even managed by your team. Cloud computing has also taken this to another level. Amazon’s EC2 is not a bizarre anomaly, but a celebrated part of the mainstream now.

Database normalization is passe. There was a time when people bragged about how normalized their DB was. It was a time when purists reigned. Nowadays, unless you’re tracking the world’s financial data, you don’t need that level of normalization. It’s a sign of a confident developer, when they purposefully denormalize parts of their database, to speed up the database access, and reduce the burden on their server. It is possible to do this without running into excessive redundancy, stale data, and integrity problems. The art is in knowing how!

REST is available for almost free. There are a number of development frameworks that allow your web application to be offered almost immediately using the SOA model. Sure, you’ll still have the human web interface, but by compiling on RubyOnRails, you get the ability for others to query your web applications as if they were remote components in their system. This reduces the interface rendering processing, and allows for collaborators to develop reliable system that are integrated-via-contracts to your system.

These are the most interesting paradigm changes that have taken place in web architectures. Any comments on other shifts that I may have missed?

The rebirth of hope

July 3rd, 2009 No comments

I’ve seen this all happen before. It comes with the territory. Those who live in the startup eco-system, have to be convinced that their superior strategies can help them out-maneuver larger, established ‘dinosaurs’. In this eco-system, you always live between hope and fear, convinced that you can make the next big thing, but thoroughly aware that you’re seriously resource constrained.

Your friends are all working for universities, 3/4/5 letter government agencies, eBay, Google, Microsoft etc. They have secure positions, which could be yours as well if you simply take a few steps in the right direction. However, you have to have a reason to stick to the knife’s edge, standing out in the elements, ready to ride the market forces using your nimble, low-cost, disruptive business model. The 5 weeks a year holiday, and the full pension do not excite you. The gold watch and the retirement are false idols that are not for you.

Well, as a good friend of mine use to say ‘never mistake a clear view for a short distance’. Sometimes, the founder’s vision is spot-on, and you have to cross the desert, sign on to the Black Pearl, and spit in the face of conventional wisdom to change the world, invent the state of the art, and and boldly carve your initials on the structure of the marketplace.

Other times, you weaken when crossing the desert, and the big dinosaurs you were sneering at, are comfortable in their established watering holes, while you wander down the unbeaten path, and are slowly worn down by the elements, the economy and perhaps by your more nimble, faster-reacting, or less ethical competitors who take chunks out of your capital and clients. Have internal conflicts in the firm, be late to the market and face difficulty in user adoption, and things get worse.

The end result of the futile trek across the desert is ‘the end’. A time comes when you run out of cash… and then you run out of believer-in-you who are willing to give you more cash to keep the dream alive (usually for an insanely huge share of the firm; no free lunch remember!).

Then the enterprise has only one way to go, tits-up, and the painstakingly put together processes, hard-won camaraderie and the vision that’s 90% of the way there ends up snuffed out. There is no white-knuckle corkscrewing towards the ground at 300+ mph, there is no spectacular flame-out, or a ‘final battle’ in which the dice are rolled, and the last desperate conflict leads to ultimate victory, or abject despair. All you have is the march towards the inevitable; you know it’s 3 months away, then two months, then two weeks, and then it’s today, and then you turn in your keys, clear out your office, say your goodbyes, and head home to think; and figure out whether you have the finances to strike out towards your own goals.

After all, you’re marooned in the middle of the desert, far away from the comfortable watering holes of the familiar economy, with the shadow of the vision glittering just out of reach in the horizon. If you’re out of luck, you throw yourself back into the mundane, and trudge back to the familiar. If you’ve still got a spark left, you recruit a new crew who shares your spirit, and then decide if you want to adopt the vision which was just out of reach as your own, or maybe, just maybe you spot something else that is even better now.

After all, while you’re been marking your way through the desert, you’ve learned, improved, and have many new notches in your counting stick. You’re not the same person who started this adventure. There is no shame in trying to achieve the impossible, if nothing else, you learn and improve, and can one day achieve your dreams.

However, the last get-together is quite bitter-sweet. The people who were with you day-to-day are not just your colleagues, they are your friends, and the espirit d’core lives beyond the venture that folded. After all, this is an intense environment, and the people with you have the same spark as you; otherwise, they’d either never have left the safety of the shores, or they would have not have stuck out as long as they did.

Angels in the Canadian Government

June 16th, 2009 2 comments

There just isn’t that much free money out there. In most instances, if you can find someone who wants to invest in your venture, you’re going to have to give up a healthy chunk of ownership in exchange; not a pretty deal if you truly believe that your venture will succeed.

The Canadian Government (bless them) has an excellent program for individuals like me who want to throw their sweat equity into the venture, and do not want to be drained emotionally by thoughts of missing rent/mortgage payments, and not being able to provide milk to your kids!

This gem of a programme is the HRDSC ‘self employment’ program. You can read more about it HRSDC site and the Canadian Small Business site.

There are a couple of very compelling aspects to this programme

  • You receive feedback from expert evaluators. This is the same process you would need to go through with a VC or with the more careful angels, without the disadvantage of dealing with their neurosis and negotiation+posturing games.
  • The money is given in the form of a grant. This means that you do not need to give it back. Compared to the 22% interest rate from a BDC loan, this is incredibly better.
  • You are provided mentorship and are given access to resources that can help you fill in the gaps in your knowledge.
  • Any money you make can be reinvested in the business without having taxes taken out.

What makes this program so outstanding is the level of support provided. Participants not only get help in creating a business plan for a viable business, but receive income support while they do it – for up to a year (or up to 78 weeks for a person with a disability). You have to be Employment Insurance eligible to apply, so getting a layoff notice is probably one of the best things that could happen to you, eh?

If you consider this program, the existence of CRA SR&ED, the OCE First Job Programme, and the MITAC ACCELERATE programme, I’d say that Canada has provided more than sufficient support for individuals who want to create a high-technology startup.


Startup Challenges: Founder Feels Like a Slacker!

June 11th, 2009 No comments

A product based startup is quite different from either consultancy or full-time employment, especially at the very beginning. I’m fortunate that I’m not starting this venture (more on this later) alone, and have an excellent partner. He bring years of experience in technology sales and really has an admirable attention to details, and is really good at the aspects of the business that I find uninteresting (like how to make money!).

Anyways, the key difference lies in where the buck stops and who sets the strategy. As an entrepreneur, both of these functions are the domain of the person you see in the mirror. The second day of this venture, I got that queasy feeling in my stomach that I have not experienced since my PhD days.. and yes, doctoral research exercises many of the same muscles as entrepreneurship, you never feel like you’ve done enough, you have lofty targets and absolutely no resources, and if you take a months vacation, the world ends.

The two tactics that got me through my PhD will hopefully serve me well in this new venture, which is to identify and reduce risk as early as possible, and to differentiates between setting yourself a ton of tasks, and the actual objectives that you have to attain. Get to those objectives by the easiest and most reliable path possible, and ruthlessly eliminate ‘busy’ tasks that are nice-to-have, but do not have an attractive return on effort.

In doctoral research, the ultimate risk is lack of clarity, and I am quite proud of how I dealt with that. I managed to identify the topic that I wanted to address within three months of joining the programme, and had completed the core research for my degree within 19 months of the start of my PhD. In terms of objectives, I very quickly evaluated and discarded technique after technique and data set after data set before I arrived at the ones that I was happy with. I always kept a ‘live’ plan with me on what I was getting to, and on days when I was not motivated, and felt lost, I cracked open the doc, and very quickly found something to work on that tickled my fancy.

However, not for a single day did I actually feel that I was performing at full capacity. Despite my phenomenal speed, and rapid progress, every day I felt like a slacker. I’ve started experiencing the same feelings again. If I look objectively at my accomplishments over the past few days they are quite good; I have identified 6 technical targets, each of which will either evolve into a service, improve the performance considerably of these services, or is an essential requirement for the business. Of these, three are potentially very patentable, and two can form a very valuable proprietary data/rule-set.

I have validated my ideas through key people in my network, and instead of pooh-poohing them, I’ve had offers of support and more than one half-joking question about stocks that I may have for sale. I have also accepted an offer from someone I respect technically to work for the first three months for this project essentially for free.  Separately someone else has volunteered to carry out their final thesis research on the marketing/product development aspects of our venture. Of course, their contributions will not be forgotten, and both these individuals will become important members of the team going forward, if they so wish. Everything looks great, but I still feel like a slacker… perhaps it has to do with being at home surrounded by family and familiar comforts. No one can actually be having this much fun and be working, can they? .. or maybe, it is because there is no structure imposed on me, and I can work whenever I feel like it, and there do happen to be 24 hours a day, and 7 days a week, all ‘excess’ capacity waiting to be utilized!