Sunday, March 8, 2009

There are no new ideas...

So I'm in a MacOS and iPhone development class this term. It's my last term in the Bachelor of Software Development degree program at Seneca College. I've now done some major project implementation, interface design, web programming, business plans and marketing exercises - a bunch of useful skills have been developed to be sure. However, today I am having a moment of doubt.

Here's the issue:

I'm a pretty new programmer/developer. One of the main reasons I chose this degree was to become more able to help people who are not so into computers and programming, to be someone who could help link the non-tech people (mostly artists) with technology in ways that are comforting and useful not scary and burdensome.

So.

I had this thought that for my MacOS programming assignment I would make a little app to help my freelancing friends keep track of their time spent on contracts and print up nice little invoices at the end. Simple, useful, something I myself would need from time to time when I do side projects. I have a free app called Khronos which sort of does this but creates ugly invoices so I was inspired to improve on it.

Thing is, better (not free or open source) apps already exist. And they're good. As a pretty green programmer (and someone with 7 weeks of classes left) I can't touch these apps for their functionality. I would like to think I would do slightly better on the design, but that's not going to mean much if I can't come close to implementing the kinds of features the other guy has.

Now I wonder how to even a) get motivated and b) set reasonable expectations for myself in this assignment. I am feeling daunted by the fabulousness of these other programs (which I realize took years and a team of developers to accomplish) and it's hard to see how I can dip my toe in the water.

If anyone has read this far - advice is much appreciated. What do you do when you want to write something and find out it's already out there? How do you scope out an app for your first version when there are apps that already do more than your 1.0 could?

9 comments:

joshtriplett said...

Don't. Don't reinvent the wheel. Port one of the existing apps instead. That will also require a significant effort, but when you finish you'll have something much more useful.

joshtriplett said...

Clarification: obviously you can't port the apps you mentioned, but you can port one of the many FOSS time-tracker apps.

James JM said...

Doing one thing and doing it well is very valuable.
Looks like you're well on your way to doing that, so just polish what you've got and don't get too hung up on features!

tsnd said...

I think there is something to learned by trying to reproduce the functionality of some of those apps. As students it's a good exercise even though the program is almost over. Besides you can always throw in your fancy pretty printing as a one up.

Mossop said...

Not reinventing the wheel is a good policy. But commonly with off the shelf stuff they don't do exactly what you want, they are more general, abstracted for use by lots of people. Are they missing the one killer feature that you really need? Or deficient in some particular way?

Obviously if your assignment isn't to write something from scratch then working on that feature for the open source projects is a great thing to do.

Diego Calleja said...

Innovate. Try to create a new feature that nobody else has. That's what apple does - they copy many ideas, but they don't mimic, they always add a new feature on top of what they've copied so that they look more innovative.

Ted Mielczarek said...

As others have said, you may still be able to fill a niche with your software. The very fact that you're targeting it at the iPhone makes it different. Having a piece of software available on your phone as opposed to your desktop makes a world of difference!

Phil Wilson said...

Like others have said, do one thing and do it well.

You have fewer resources and less time than those professional, commericial products. Focus on *one* particular aspect, targetting one specific use and hone that to perfection.

Good luck!

Ronald said...

HourDoc is another tool for Time Tracking. HourDoc Time Tracking software is right treatment for time and labor management processes has to be an easy-to-administer and affordable solution for supervisors, employees and HR and payroll managers. They offer free application to companies less than 50 employees. You must Try it!