Something that has been on my mind recently is the quality of software I produce. I’ll be graduating in a few short months. I feel it’s absolutely crucial that I write elegant code so that when I begin applying for jobs, I’ll have great code samples.

This is an idea I don’t actually believe. It’s been engrained in my mind and I don’t know why. Throughout school I’ve been trained to do things “better” so that I can get better grades.

In reality, I’m not sure this translates well into the business world. Writing “better” software means getting things done sooner and iterating more often. Assignments in school are one shot. You either do well or you don’t and it’s over after that.

Building businesses and software typically aren’t like this. You’re given the it a go, and you present it early, draw feedback, revise, and launch. Once you’ve launched, you can continue iterating and maybe even recover from a somewhat failed launch.

It all depends on your heart and motivation. Are you ready to accept failure? Heck no! Are you willing to pivot? Yeah, it’s what I have to do.

I know a lot of fellow developers and students who dislike showing their work until it is finished. One class project I am a part of consists of our team building a website to manage campus tour visitor registrations. Since this is our first and only major project of our entire Bachelors degrees, we decided an agile approach would be best. We iterate, present it to the client, make sure it’s something that will help them in the end. Not surprisingly, one of my team members is completely against showing our client the product before it is polished and complete. No matter how much arguing we do, he stands his ground that testing is not very important until the product is finished.

We only have a semester for implementation and have class and work outside of this project. There is certainly no time to rewrite the project from scratch if the client doesn’t like our approach so it is imperative we start getting feedback right away.

Of course we aren’t going to present them with bug ridden code, but as we complete features, we certainly want to know if they like them.

I felt the same way when I launched Keryx. This was a project I spent many months on. I was naive at the time, and just release an incomplete application to the public. Not expecting anyone to care, I was pleasantly surprised when people started talking about it. Without releasing early, I wouldn’t have felt any drive to continue development. It did enough of what I wanted, still horribly incomplete, but people’s reactions drove me the extra mile. Now I have something I can be proud of, I have continued iterating on Keryx with help from several unbelievable volunteers and we have surpassed 50,000 downloads. This naive approach could have ended there, but instead it has brought me much more, even to tears at times through some incredibly heartfelt thank you’s I have received.

So don’t be ashamed of anything you do. Show everyone you can, be proud of what you accomplished. If someone says it’s crap, be humble about it. Ask them what is wrong, how you can improve it, and do so. Nothing can stop you if you hustle hard enough.

comments powered by Disqus