Getting Second Thoughts / Time
(I haven't proof-read this post. I apologize if it's filled with bad grammar and spelling mistakes.)
When I first decided I wanted to build my own web-based Project Management application I did a search around the Internet and found about 8 competitors. I thought most of their products were pretty weak. I remember Copper being good, but that was about it. (Most of the apps didn't even allow you to have sub tasks of tasks or link all the dates of the tasks together so when one moved, they all moved.)
I started to see more and more PM apps pop-up. Some good (Project Insight), some bad. Here I am a year and a half later and there's at least 274 competitors now. (I'm not joking, go look.)
I've been "on" this project so long I can't even remember not working on it. Why has it taken so long?
1 person x 15 hours a week = forever
That's pretty self-explanatory.
Programming language
When I first started I had built a couple of database-driven web sites in PHP and Coldfusion. I had only been doing that for about year (programming). And I didn't want to make the app in either of those languages. I didn't like PHP, and after working with Coldfusion I honestly never wanted to go back and touch PHP. I couldn't build my PM app in Coldfusion because I wanted to sell the application and the CF server license was too much to tack onto the price of my application. (I've since changed my thinking about selling the app and I want to offer it hosted only. But that's a whole other blog post.)
So I choose Java/J2EE, and I barely knew Java. I was basically at the tutorial level. Now I don't come from a computer science background - my degree is in Management Information Systems. (You can stop laughing now - it's great if you want to work in IT management or analysis. Unfortunately, I don't...anymore.) I greatly underestimated how difficult it would be to ramp up that skill set. OO takes a while to "get". (But once you do, it rules.) I won't bore you with all the details of "learning Java", so here's the abridged version:
Java, cool I get it. JSP, there's like 3 different ways to do everything. Which do I learn. Application frameworks, started learning Struts - what a nightmare. Stared learning JSF - what a nightmare. Found Spring and Spring MVC, and they rocked. Crap, I need to learn Tiles too. Ok, so how does Tiles work with Spring MVC. Ok that's, cool. I only need to do 6 things everytime I make a form. (I actually have a list printed out so I won't forget all the steps.)
Here's a list of all the books I've read since I've started this "project" (I won't list the Java and Java-related books I started then threw in the garbage because they sucked.):
Learning Java, Second Edition
Design Patterns Explained: A New Perspective on Object-Oriented Design
Java Swing, Second Edition (first thought was a desktop app)
JavaServer Pages Developer's Handbook
Expert One-on-One J2EE Development without EJB
Better, Faster, Lighter Java
Code Complete, Second Edition (Most of it. I actually lost it before I finished it.)
Funny thing is, I'm not too bad of a programmer right now. I'd say I'm on the same level as the 4 other programmers I've got on my team at work. (At my day job.) 2 are computer science grads, 1 is getting his computer science degree, and the other has a 2-year degree from a community college. (The CC guy filled his schedule with a lot of programming classes, and is a highly regarded programmer at our company.)
Hit the HTML / JavaScript Wall
I've already whined up a storm about this, so I'll just point you to my original, "me no likely JavaScript" post.
Learning OpenLaszlo
I've been working on the OpenLaszlo prototype for the last 2 months. I'm really feeling comfortable with OpenLaszlo now, but my goodness am I running into issues with that platform. I'll have to post about my latest time-waster. I don't think I'll be able to code around it. It may be one of those, "sorry, it's just a bug of the platform", bugs. (Or it's possible that I'm too much of an idiot to see what I'm doing wrong.) It can also become a resource hog on the client. I don't know what Macromedia is doing with Flex, but OpenLaszlo's comparative client-side performance is sad.
Where am I now?
So after a year and a half, I'd say I'm about half done. I've almost got my prototype done. (A prototype is a non-functioning, quick and dirty mock-up of the application used to flesh out what the hell it is I'm building. See previous blog post.) And I have part of my "model" done. (Business objects and their related logic.)
I'm honestly not sure if I should finish this project. Like I said eariler, there were 8 products out there when I started (I'm sure there was more - I found 8), and now there are 274. And some damn good ones!
Is the web-based Project Management application market big enough for yet another entry? I have no idea. Am I bringing anything new to the table? Two years ago, hell yeah. Now? I'm not too sure.
Having the last 2 weeks off from this project have been nice. I've been thinking a lot about Ataraxis Software. I don't want to give up the software company dream. I want it. I'm one of those people who works insanely hard. I put so much heart into my work (right, wrong, or indifferent) I just can't imagine working at this level without "getting a piece". I'm the type of person who has always craved freedom, and I feel like I'm smart enough and determined enough to do this.
I've got mixed emotions about what I should do.
I have ideas for some other products. Do I scrap a year and half of work to move onto another product idea? I think all the ideas I have are smaller in scope than a PM app (probably easier to implement too). But, in all honesty, I'm scared they will take me just as long. I'm only one person working a few nights a week. The time in my life where I could spend every waking moment of my life working on a product idea have pasted. (If I want to stay married anyway. ;) Which I do!)
Maybe I should post my "quick and dirty" prototype to try and gauge it's potential. I'm pretty far from having it complete, but if everyone on the planet says it sucks - it could save me a lot of time. :)
Please feel free to leave me your thoughts in the comments below. I'd love to hear from you guys. (Especially those of you who read but don't post! I know there's a lot of you out there!)
When I first decided I wanted to build my own web-based Project Management application I did a search around the Internet and found about 8 competitors. I thought most of their products were pretty weak. I remember Copper being good, but that was about it. (Most of the apps didn't even allow you to have sub tasks of tasks or link all the dates of the tasks together so when one moved, they all moved.)
I started to see more and more PM apps pop-up. Some good (Project Insight), some bad. Here I am a year and a half later and there's at least 274 competitors now. (I'm not joking, go look.)
I've been "on" this project so long I can't even remember not working on it. Why has it taken so long?
1 person x 15 hours a week = forever
That's pretty self-explanatory.
Programming language
When I first started I had built a couple of database-driven web sites in PHP and Coldfusion. I had only been doing that for about year (programming). And I didn't want to make the app in either of those languages. I didn't like PHP, and after working with Coldfusion I honestly never wanted to go back and touch PHP. I couldn't build my PM app in Coldfusion because I wanted to sell the application and the CF server license was too much to tack onto the price of my application. (I've since changed my thinking about selling the app and I want to offer it hosted only. But that's a whole other blog post.)
So I choose Java/J2EE, and I barely knew Java. I was basically at the tutorial level. Now I don't come from a computer science background - my degree is in Management Information Systems. (You can stop laughing now - it's great if you want to work in IT management or analysis. Unfortunately, I don't...anymore.) I greatly underestimated how difficult it would be to ramp up that skill set. OO takes a while to "get". (But once you do, it rules.) I won't bore you with all the details of "learning Java", so here's the abridged version:
Java, cool I get it. JSP, there's like 3 different ways to do everything. Which do I learn. Application frameworks, started learning Struts - what a nightmare. Stared learning JSF - what a nightmare. Found Spring and Spring MVC, and they rocked. Crap, I need to learn Tiles too. Ok, so how does Tiles work with Spring MVC. Ok that's, cool. I only need to do 6 things everytime I make a form. (I actually have a list printed out so I won't forget all the steps.)
Here's a list of all the books I've read since I've started this "project" (I won't list the Java and Java-related books I started then threw in the garbage because they sucked.):
Learning Java, Second Edition
Design Patterns Explained: A New Perspective on Object-Oriented Design
Java Swing, Second Edition (first thought was a desktop app)
JavaServer Pages Developer's Handbook
Expert One-on-One J2EE Development without EJB
Better, Faster, Lighter Java
Code Complete, Second Edition (Most of it. I actually lost it before I finished it.)
Funny thing is, I'm not too bad of a programmer right now. I'd say I'm on the same level as the 4 other programmers I've got on my team at work. (At my day job.) 2 are computer science grads, 1 is getting his computer science degree, and the other has a 2-year degree from a community college. (The CC guy filled his schedule with a lot of programming classes, and is a highly regarded programmer at our company.)
Hit the HTML / JavaScript Wall
I've already whined up a storm about this, so I'll just point you to my original, "me no likely JavaScript" post.
Learning OpenLaszlo
I've been working on the OpenLaszlo prototype for the last 2 months. I'm really feeling comfortable with OpenLaszlo now, but my goodness am I running into issues with that platform. I'll have to post about my latest time-waster. I don't think I'll be able to code around it. It may be one of those, "sorry, it's just a bug of the platform", bugs. (Or it's possible that I'm too much of an idiot to see what I'm doing wrong.) It can also become a resource hog on the client. I don't know what Macromedia is doing with Flex, but OpenLaszlo's comparative client-side performance is sad.
Where am I now?
So after a year and a half, I'd say I'm about half done. I've almost got my prototype done. (A prototype is a non-functioning, quick and dirty mock-up of the application used to flesh out what the hell it is I'm building. See previous blog post.) And I have part of my "model" done. (Business objects and their related logic.)
I'm honestly not sure if I should finish this project. Like I said eariler, there were 8 products out there when I started (I'm sure there was more - I found 8), and now there are 274. And some damn good ones!
Is the web-based Project Management application market big enough for yet another entry? I have no idea. Am I bringing anything new to the table? Two years ago, hell yeah. Now? I'm not too sure.
Having the last 2 weeks off from this project have been nice. I've been thinking a lot about Ataraxis Software. I don't want to give up the software company dream. I want it. I'm one of those people who works insanely hard. I put so much heart into my work (right, wrong, or indifferent) I just can't imagine working at this level without "getting a piece". I'm the type of person who has always craved freedom, and I feel like I'm smart enough and determined enough to do this.
I've got mixed emotions about what I should do.
I have ideas for some other products. Do I scrap a year and half of work to move onto another product idea? I think all the ideas I have are smaller in scope than a PM app (probably easier to implement too). But, in all honesty, I'm scared they will take me just as long. I'm only one person working a few nights a week. The time in my life where I could spend every waking moment of my life working on a product idea have pasted. (If I want to stay married anyway. ;) Which I do!)
Maybe I should post my "quick and dirty" prototype to try and gauge it's potential. I'm pretty far from having it complete, but if everyone on the planet says it sucks - it could save me a lot of time. :)
Please feel free to leave me your thoughts in the comments below. I'd love to hear from you guys. (Especially those of you who read but don't post! I know there's a lot of you out there!)


13 Comments:
Maybe you should spend some time with other entrepreneurs in the area. See how they got their funding.
It's tough to do something meaningful with 15 man-hours per week. It's also tough to fund going full-time on your own. Find investors.
I'd forge ahead - at least release something and see what people think of your solution over others. I can understand that motivation is the key factor. Sometimes it's not easy to come by. I still have tons of bugs in my mp3 app, plus it requires external software and lots of headache to set up. But I will get back to it. I'll finish it sometime.
I've been in your shoes so many times, I lost count. I get an idea, start a project underestimating what it takes to finish it, realizing along the way that I don't even have the skills to finish what I started, and then hitting enough many walls to stop and ask myself "what the heck do I do now?".
The good news is, it appears this is how you grow. You have to test your limits. It is all part of a learning/growing experience. You are supposed to go through this until you get what you aimed for.
When I've been in your shoes, here is what I've done. Clearly, your time is very precious. You don't want to spend it on something you don't believe in. If you think your project is no longer worthy of completing, then move on to something else where you can apply what you learned so far, but feel better spending your time for. I am not saying clear your head and start from scratch. You came a long way. Just reapply your knowledge and skills to something else which is so meaningful to you that you just can't wait to work on it every day. It sounds like you lost the will to finish your current project since you saw there are 200+ competitors. If your project is pulling you to it, then finish it. If not, find something else meaningful to you to work on.
Lastly, do not send yourself on a guilt trip if you decide not to finish your current project. It is definitely not a failure, not a lost cause! You learned so much! Just look at your posts on here. Now take what you learned, and grow even more on top of it.. whether be it in this project or another!
Good luck friend.
Michael,
I'll start with a quick rebuttal to the first comment. You don't need investors, you need users.
Scale back your feature set to something you can implement in a timely manor and seek out users to try it. Like you said their are 250+ other products is yours unique enough to survive.
Have you considered other related ideas? Rather then go after the holy grail of PM software, why not create a simple task management package for those people beneath the PM. This would be simpler to develop and you have 4 guys at work to alpha test. As a developer myself I know I want some good task management software.
A little more on task management idea.
We can all use Outlook to give us todos but many increasingly use webmail. What about task management on the web. Not just todos. Allow the creation of a structure linking goals, objectives, and tasks. Allow prioritizing, timing, estimating. This is a really interesting area.
You end up with a smaller app that has greater market. It fits into the whole new Web 2.0, the web as a platform, idea. Maybe even set yourself up for a nice acquisition by Google.
If you would like to chat feel free to check out my site and leave a comment.
Hey hang in there big guy!
I think it all comes down to what you can afford/are prepared to do. You app has always sounded in scale to be about as ambitious as HelpSpot was to me. I hit a similar wall to you. I had my specs and a few use cases way back in last October. I started to work on it here and there but I realized in about January that it just wasn't going to work. It's simply too large a project to work on when you're tired after work.
That's when you have to be really be honest with yourself. Do the research on the market and figure out if your ideas were unique enough and good enough to succeed. If they are then you need figure out if it's worth some big risks and if you can afford to take those risks. I decided it was, began planning and left my job in March. Even at that it has taken about 5 months of full time development to get everything done. Doing it on the side, it would never get done.
The thing to remember is it's not just the coding. It's everything else. You need to have time to start marketing, to start building relationships with other companies in the community, to handle the business aspects, etc etc. Especially with something like a PM app that's going to be sold to companies. The bar is higher with companies than with a consumer focused app, IMHO. At least in terms of needing to "play the game" in answering their questions, having a good size website with information, documentation (still working on that one myself) etc.
As the fellow above said, it may be a safer bet to do a scaled down version. Just handle task management or some other smaller aspect. If you can't dedicate yourself full time to it then you're much better of building a smaller app that works. Then push that hard and try to make it a hit. Even if you don't get rich from it, it may provide enough capital to make leaving your job to work on larger projects possible.
A 3 year plan sounds long and tiresome. I think you should really take some more time off and re-think the whole thing. Maybe a different app or even better, a clear and clever way to use your current work to create something else: maybe simpler with a more limited scope.
You should certainly try to get something out there even if it is just for the (invaluable) experience.
Michael,
I've enjoyed reading about your progress and the process so far. I'd hate to see you give that up but I totally understand where you are with it. Others have suggested exactly what I would have said... reduce the scope, get something out there quickly and find your niche. The first version doesn't have to be a home run, you just need a solid foundation and a quick victory to find the motivation to achieve your next success.
One other thing I would suggest is that you try to involve others in the project. I have a couple of developers that I know and trust and we are always collaborating on ideas and projects. Even if you can't employ them in the actual work, getting their input can be extremely valuable in defining your product and setting priorities.
Good luck and I wish you all the best!
Stop beating yourself up. You've come a long way, learnt a lot.
I know you've invested a lot in it but I'd question your choice of J2EE. I've been through the same pain as part of my job.
The problem with J2EE is that there's just so much to learn. First you have to learn the key technologies in the spec. Then you have to learn the open-source software that papers over all the holes in vanilla J2EE. If it wasn't so over-engineered in the first place Spring wouldn't need to exist. This is one of the reasons why I've vowed to learn Ruby on Rails. It's fun and super-productive! J2EE is the least productive programming environment I've ever come across.
Anyway, got into a bit of a rant there. Good luck whatever you decide to do!
Michael,
First, I feel your pain. I would echo the sentiments of pretty much everyone who has responded so far though: assessing the landscape of competitive applications out there and making the conscious decision to pull your efforts and focus them elsewhere is NOT a failure but a wise decision given the circumstances. And the time you spent over the last year thinking through the app and learning Open Laszlo and the peripheral stuff to pull it off is NOT a waste either but rather a very hot commodity right now in itself. Learning through practical usage vs. theory is way more valuable and I've followed your story with interest like the others that read your blog.
I agree that you should consider teaming up with a handful of other developers. Heck, you should contribute to Grid7.biz (this is a co-op I'm launching in November- ask Max Porges about it). It's founded precisely upon your dilemna - the whole idea that the lift generated by a flock can take the individual birds farther than they could have gone on their own. Hit me offlist if you're interested in participating in a grid7 project.
cheers
Sean
legaltech at gmail
a rebuttal to the rebuttal -- "you don't need investors; you need users."
Users aren't going to help anyone write more code. There's a certain class of problem one can attack in 15h/wk, and it doesn't sound like Michael's fall into that class.
Investors let you pursue your dream full time in a way that most people don't have the resources for otherwise, and hire others as well. You give some things up, but in many cases it's worth it.
Michael,
I agree with many of the previous comments, reduce scope to a point where you can finish within a few months, say a target of three months.
It doesn't matter that you haven't created your ideal PM app, that'll come along with versions 1.1, 1.2, 1.3 ... etc as you improve and add features that you and your PAYING users ask for.
The previous idea of a simple task management system is good, especially if you structure the core in such a way that you know you can build in all your constraints and critical path analysis etc a few versions down the line.
Think "agile". Build the smallest thing that works then add another feature, and another, and another ... and so on. I think you need to give yourself some confidence by growing the app to a point where it actually starts to be useful for recording tasks. Then add sub-tasks. Then add dependancies.
All the while you're growing your app, use it. Plan your next tasks with it. Eat your own dog food!
OK, I'm rambling now, and just quoting things said many times over elsewhere, and I doubt I'm talking about anything you didn't already know or are doing.
Basically, don't give up, you've got a great idea that you're passionate about, and competition just validates your product idea.
Don't give up, you have learned a valuable lesson! J2EE is one of the least agile ways to develop applications — especially web applications. Now, with some serious prototyping under your belt, you understand your domain model pretty well, you have a good idea about where you want to go, and you may even have your database schema designed.
Now, point your browser at the following websites, and try learning a few more things, and I expect that you might find yourself working a lot faster:
http://www.rubyonrails.com
http://www.turbogears.org
http://www.djangoproject.com
Now, choose a truly agile development environment, and your 15 hours a week will feel much more like 40!
First off, go man, go! Don't give up. Hang in there.
Second, I agree with those who suggest you need a laser focus to carve your own niche in a world with through 274 competitors.
Have a look at this rant: Groupware bad.
"How will this software get my users laid" should be on the minds of anyone writing social software (and these days, almost all software is social software).
"Social software" is about making it easy for people to do other things that make them happy: meeting, communicating, and hooking up.
Good luck!
<< Home