I’ve been under an enormous amount of self induced stress lately due to the fact that my startup business still isn’t online. This is due to a number of contributing factors of course, but it got me thinking about some of the reasons why it’s taken so long.
Manage Scope: Trying to do to much too soon
It would be my guess that a large number of failed business (particularly online ventures) are guilty of this one. If nothing else this experience has taught me that you need ensure your initial offering constitutes a realistic amount of work. You can then build on that by making small incremental improvements adding features and new offerings to your business over time with much less effort than trying to do it all in one go.
By all means, have a grand all encompassing vision, in fact I’d almost consider this a prerequisite, but break it down into realistic bite size deliverables. To make a software analogy; you want to take a rapid iterative development approach rather than attempt a huge waterfall model project.
It doesn’t have to be perfect
There is always a tendency with geeks (myself included) to try and engineer the best, most flexible, and high performance solution first time round. Unfortunately this flies in the face of getting a new business off the ground. As a new start up you have limited time and money and you can’t afford to waste either trying to come up with the “ultimate solution”.
Any coder worth their salt is going to try and anticipate performance bottle necks and design and develop their software to avoid potential pitfalls. However you’ve got to keep your focus on the goal of delivery at all times and not get trapped in refining and improving your product without delivering. It doesn’t matter if you have the best website in the world if no-one can use it because it isn’t online yet!
Don’t forget the business
Project planning, it’s not fun and certainly not something most geeks enjoy. Unfortunately it is absolutely necessary to make your new business a success. You need to have a clear idea of what your deliverables and deadlines are, and what your outstanding tasks are at all times. There isn’t much point getting to the end of development, having built an outstanding best of breed product and suddenly realising you don’t have a company set up, bank accounts, tax registration, contracts, lawyers, accountants and all the other mundane things that are prerequisites to running a business.
Are you trying to get a tech startup off the ground? Do you have any advice for other would be entrepreneurs?
I submitted a fix for bug #325128 last night which was the last of the four patches needed get Spring.Net working on the Mono runtime. So far I’ve submitted patches for:
So far only the TypeDescriptor patch has been accepted and committed to the repository, but hopefully the other three won’t be far behind. It’s quite important to us that these patches make it into the 2.0 release so we can just use the official builds rather than having to build from source ourselves.
No one said it would be easy
Along the way you will encounter all sorts of barriers, obstacles and challenges and you are going to have to dig deep to find the drive to carry on.
So when your server blows up, someone you were planning to partner with vanishes of the face of the Internet without warning, a new competitor beats you market, you’re working ridiculous hours, and everything looks like it’s going pear shaped – remember why you are doing it.
Why are you doing it?
That is a really important question. Be honest with yourself before you start, if your only motivation is money then you probably going to struggle. There are all sorts of reasons people have for wanting to start their own business, change of lifestyle, want to prove they can, the desire to share a really good idea.
I’m still on the journey, but if all I had to pull me through was the desire to make a buck I’d probably have given up by now.
Still, I plan on making plenty of bucks!
It’s been a while since my last post because I’ve been extremely busy hacking away to get Spring.NET working on Mono. I’ve basically got a working solution now so we should hopefully get the changes committed back into the Spring.NET repositories in the next couple of weeks.
It’s been a bit of an interesting road so far – transistioning our application onto Mono – and I am a bit surprised at how many framework bugs I’ve discovered. I’ve submitted one patch so far for a very minor bug in the TypeDescriptor class, however I still have three more patches to write and submit at this point. I wouldn’t have thought that the parts of the framework we are using were especially esoteric but perhaps I’m wrong.
Now all I need is stepping debugger integration in MonoDevelop and I won’t have to boot into Vista ever again!
I’ve just had a fun couple of hours trying to figure out why my site suddenly starting giving me this exception:
Exception type: HttpException
Exception message: Cannot use a leading .. to exit above the top directory.
It turns out that ASP.NET 2.0 doesn’t like playing nicely with Url Rewriters. The problem occurs when the rewriting rebases the form action path. e.g instead of having your form tag look something like this:
<form id=form1 method=”post” action=”page.aspx?id=whatever” name=”form1″>
After rewriting it ends up looking like this:
<form id=form1 method=”post” action=”../page.aspx?id=whatever” name=”form1″>
This obviously is not a good thing. For a detailed breakdown of the problem I suggest you read sgerz’s post Get GoogleBot to crash your .NET 2.0 site.
In my particular case I am using an open source url rewriter solution from http://urlrewriter.net. Of course the beauty of it being open source is that you can fix the problem! So a one line change on line 80 of HttpContextFacade.cs from:
solved the problem.
So why did this start happening all of a sudden? I can only surmise that it had something to do with the fact that I had just installed Vista SP1 and that caused cassini to start behaving as IIS 6.0 does.
I’ll be emailing the maintainers of the project to see if they want to make the change to the main repository.
Another one I would have spent hours on was solved in two minutes by the wonder that is the internet. More specifically Chris Garrett over at ASPAlliance explains the solution to the png generic error in GDI+ exception .
The short story is you can’t use the Bitmap Save() method with a non-seekable stream. So, instead of just doing this:
You have to do something like this:
MemoryStream memoryStream = new MemoryStream();
Cheers Chris, you saved me hours of work!
The market I am planning to play in is geographically constrained. Because of this there aren’t many competitors at this stage in the game which, initially you would think is a good thing. However this particular market can only support a small number of players, and because there are already established businesses operating and building brand recognition it will make my job as an SEO all that more difficult, but subsequently much more important.
I firmly believe that the defining factor will be the quality of the content provided. The value the customer perceives they are receiving by using one site vs another will ultimately dictate where their brand loyalty lies. Rand covers this quite well in this video.
Something web users are slowly coming to realise is that most markets are flooded with poor quality copies and once you find a site that produces quality content in the area you are interested in you stick with it.