5 Freelance Lessons Learned From An Intense Programming Schedule
Here are five lessons I learned from an intense three months of programming to complete seven projects
The last post I wrote was August 17th. Since then, I've been extremely busy with a load of projects.
For those of you who know me, you know there are times when I never slow down and go full steam towards a vision or goal no matter what the cost. These past months were no different whatsoever.
Over the past three months, I've had seven projects that came across my desk with three of them being my own. Just like every other project, all seven had to be completed yesterday. If you ever had a sense of feeling overwhelmed by projects, this was definitely the time.
The effort of these projects was a great learning experience for freelance developers. Here are some of the lessons learned from this intense three months of coding.
- Create your library of reusable components and continue to build.
This is programming 101 for most of developers: Always, always, always save (and refactor) your code so you can use it over and over again. Don't just write code and either 1). throw it out, or 2). do a copy and paste into another program. There is a reason object-oriented languages were created: to inherit and reuse code.
When you build your library of reusable components, you will automatically envision projects becoming simpler because of familiar routines that make your life easier.
- No task is ever simple.
I've commented on this before in a past post that no matter how simple the task, it will always take longer than anticipated. I wrote a social networking site from scratch called TriYou (More on that in another post). This site gives users the ability to rank their media, whether it be books, music, or movies. It's a place to rank what you think is the top media in your collection or that you've seen.
He asked if I would be interested in such an effort and I knew the idea has potential, so I took on the challenge (I hate turning away work).
I thought it would be simple.
This was one of the most time-consuming web site that I ever built, but based on item number one I discussed above, I now have a library of social networking routines to build whatever new social networking site idea comes my way.
- Make the Time To Manage your Time
Even though I'm working with multiple clients and have a full-time job as well, the ability to take time out of your schedule just to catch your breath, prioritize the projects, and, oh yeah...sleep becomes a necessity.
Don't become overworked. You need to realize that you need a little bit of downtime. Someone once said to me that "You are an outlet with too many plugs plugged into you."
- Expand on your knowledge
When you accumulate enough experience in your career, get creative. Use your new found library of routines to create a site that no one has seen yet. We all have plans of world domination (at least I do) of how we want to enjoy our life instead of living in a cube.
Listen to what people are saying. Take the "You know what I need?" and the "I wish..." questions and comments and move it forward. More than likely, there are other people who want that same product, service, or web site.
- Documentation is vital
I know a lot of fellow developers who believe that too much documentation in source code is a bad thing.
My take on this is four-fold: 1). When you are working in more than one project, you need proper documentation JUST in case you hit the lottery (The bus idea is just so brutal), 2). the compiler doesn't care about comments so add as much as you want, 3). with so many projects, it's a good reminder when you come back to that project after a year or so to remind you of how the project was coded, and 4). there are numerous documenting projects (i.e. Sandcastle) out there that takes your source code and generates technical documents which makes your life even easier.
While these five lessons were learned over a period of three months during seven projects, you should apply them across every project you encounter in your career.
With that said, one project is not 100% complete and one (TriYou) is still in beta. The incomplete project is still moving forward and is a super-secret project where I am working with other individuals to get it off the ground.
There's only so much time in a day.
Are there any heavy schedules that you've encountered in your career? Share them below in the comments section.