Progress Review - September 2007

written by edavis on October 1st, 2007 @ 08:46 AM

September is now gone but it left me with some vital lessons about business.

Marketing

If you are not marketing, you are not in business.

I think every freelancer should take the above quote and hang it over their desk. You cannot stop marketing and expect to survive for long. All of the marketing I worked on in August payed off this month with two new contracts.

Tracking goals

In order to improve something, you must track it. Last month I said that my goal for September was to bill 60 hours for the month. I ended up missing my goal by only billing 40 hours, but this was from measuring the wrong number.

What I really wanted was to make the amount of revenue those 60 hours would represent. If I used that as my goal I would have hit it, because I worked on some fixed price contracts that brought in the revenue I wanted and took less time than what I estimated. From now on, I will measure something that is the result and not the cause of the behavior that I want.

What to expect in October

Now that my marketing is working in overdrive, I am having to focus on closing many of the sales that I have pending and finishing up the current projects. So following the “Get Clients Now” program I have been using, I am going to focus on the proposals and contacts I have to see if I can serve them better and close out two projects. Some of the daily and weekly actions I have setup for myself are:

As part of my program I have to set a goal for the month. Since last month I was measuring the wrong number I decided to set my goal to be $7,000 in revenue for October. This is a huge stretch but I really think I can make it if I try my hardest. The good thing is by tracking my revenue, I am following what is really important to the long term survival of my business.

Some lessons I learned from this month:
  • Track your sales cycle: Start to track how long it takes you from discussing a project until you have a signed contract for the project. This is the length of your sales cycle, I found mine is longer than 30 days. If I want to work on a project in November, then I have to market and start talking to customers about it right now.
  • Time for your business: It is really hard to take time to work on your marketing and business tasks when you are swamped but you still have to put in some time everyday. The last two weeks of September I had so many things going on I really slacked off on my marketing and I am starting to see a little dip from that. Try to put aside a set amount of time everyday to work on things other than your customer’s projects, and make sure they are the important things.

Eric

Using Ruby on Rails for a Client Project

written by edavis on September 26th, 2007 @ 08:56 AM

Depending on what your client needs, Ruby on Rails may or may not be a good technology choice. Whenever someone is looking for a new project I go through this mental checklist to see if Ruby on Rails would be the best fit for them:

1. Does the project call for a web based application?

Ruby on Rails can work outside of the web environment but it loses some of its productivity. Pseudo-web environments like web services will lose some of the productivity but the new REST features is making Ruby on Rails a good contender.

2. Is this a ”greenfield project” where no legacy code is in place?

If the client has legacy code in place that they are wanting to keep, the project will have problems when the time come to integrate the two codebases. Ruby on Rails can work in those places, it would just take some more effort and a very good deployment plan.

3. Are you skilled with Ruby on Rails or do you have access to a skilled development team?

A lot of people get into Ruby on Rails thinking it is a magic bullet. Unless you have programmed in Ruby before, you are going to have to be a fast learner. Learning a new programming language (Ruby) along with a large framework (Rails) is going to be painful. Luckily Ruby is a very beginner friendly programming language, and you can pick up the major points in a few weeks.

Because Ruby on Rails is very productive, it might be a good investment for a newcomer to take two weeks and write a simple throwaway application. I’m not new to Ruby or Ruby on Rails but I learned a ton of things in the 48 hours for the Rails Rumble 2007.

4. Does your client have high quality hosting?

Sad fact, Ruby on Rails needs a more powerful computer to run than something like PHP. But one thing to remember, do you really want to have a client spend $10,000 on a web project and then throw it onto a $10 month web host. A 256MB virtual private server is enough to get a good Ruby on Rails website running happily. I recommend Slicehost (referral link), they have hosted my websites since March 2007 and I have not had any problems at all.

5. Is the project going to use AJAX effects?

There exists many libraries to help add in AJAX effects to any programming language or framework but Ruby on Rails has a lot of built in helpers that can make adding AJAX one line changes. Ruby on Rails also makes it easy for your AJAX effects degrade gracefully for non-JavaScript users.


I love Ruby on Rails but I find most of the headaches come from someone who uses Ruby on Rails because it is cool technology, and not because it is the best solution to their specific problem. Remember these are some of my guidelines that I use for my client projects.

What guidelines do you use to decide Ruby on Rails is your best choice?

Eric

"How to Offer Your Clients the Whole Package" by Brett

written by edavis on September 21st, 2007 @ 08:36 AM

Brett over at FreelanceSwitch wrote an article about working with freelancers with complimentary skills. It highlighted how freelancers shouldn’t be afraid to bring in extra help on a project, especially if it will help the client.

The first step is to connect to other freelancers or companies who offer skills that compliment your strengths. Graphical design is an area that will compliment my programming, so finding a great web designer to help me on some projects would let me offer more services to my clients.

Contact me if you are a great designer and would like to work with a web programmer on some projects.

Progress Review - August 2007

written by edavis on September 18th, 2007 @ 08:04 AM

My second month of business is complete and the honeymoon is over. Last month I used my contacts at my previous employer to bring in all my new projects but because I wasn’t marketing, this month started out slow. I went though the usual questions of doubt every business goes through “Is this the right thing to do?”, “What if I’m wrong?”, and my personal favorite “Does anyone really want my services?”. One great thing that happened, while reading some blogs I caught a reference to a book titled “Get Clients Now!”. The Amazon reviews were pretty decent so I picked up a copy of it from my library.

Since I had no real billable work, and I wasn’t attracting anything new I decided to go ahead and implement the program “Get Clients Now!” was talking about. As you can see in this post, it generated some great results and brought a lot of work my way at the very end of the month.

After a few days of implementing the program I started to see some results, from the most surprising of places. One great lead came from a personal blog post I made to someone’s blog. This is turning into a great relationship and will provide a lot of value for both of us in the years to come. Another great lead came from just asking my friends and family if they knew anyone who needed my services. This lead is taking awhile to solidify but will create more than twice than what I made in all of July.

Some lessons I learned from this month:

  • Marketing doesn’t have to be cold-calling or shaking hands at a networking event. In my case writing, helping people, and creating a nice website paid off more than me stammering though a rehearsed speech about why I am great.
  • Actively work to keep your “sales pipeline” full. What happened in July was I worked so hard my pipeline ran dry, which made August a very slow month. Once it started to fill up at the end of the month, I started to get busy again.
  • The main goal of any freelancer, consultant, or contractor is to provide value to their customer. The more value you provide the more business you will create.

Adding custom data to Redmine

written by edavis on September 14th, 2007 @ 01:20 PM

Redmine is an Open Source project management application created by Jean-Philippe Lang using Ruby on Rails. I have been using it to track ongoing projects for my business.

One great area where Redmine shines is how simple it has been to add custom data. I have used many project management programs and bug trackers, and a vast majority of them require you to hack on the code to add new fields. To illustrate how simple it is to add custom data to Redmine, I am going to walk you though how to set it up a custom field for your projects.

Decide what custom data you want

The first step is to decide what custom data you want to track. Taking a post from my friend Shane Pearlman, I decided to score my customer projects to help me evaluate them. So I decided want to attach a “Profit Score” to each project.

Setup your custom data

Login to your Redmine installation as an administrator and on the Administration menu select “Custom Fields”. You will notice that Redmine allows you to attach custom data to “Issues”, “Projects”, and “Users”. For now we want projects so click the projects link. Now you can click the link “New custom field”.

Different types of data

Redmine gives you a lot of control over your custom data, including restricting what type of data can be entered based off of length and matching a regular expression. For those who don’t know what a regular expression is, think of it as a pattern that your data needs to match.

Completed custom field

To track the “Profit Score” I could enter a number from 1 to 5 but I would really like a drop down box to select a value. This will not only be faster but help me keep the data consistent for all my users. Redmine has different formats for the data including:

  • Text
  • Long Text
  • Integer
  • List
  • Date
  • Boolean

For “Profit Score” I want a List. After selecting List, Redmine automatically changes the view and gives me a set of text boxes I can use to enter the possible values. I only want to use 5 values but from what I can tell, you can enter as many values as you need.

Marking the data as required

To finish up the process, I decided not to check the option to make this field “Required”. Even though this will make my data for consistent, sometimes I don’t know how profitable a project will be when I set it up in Redmine.

Enter your custom data

All that’s let is to now check your project and test that custom field works like you want. If you go to the project overview Redmine will show the custom data. The project Settings is where you will be able to edit and change the custom data. Below is a screenshot of one of my projects with the new custom field.

Editing a custom field

Notice the other fields “Project Status”, “Cost Estimate”, and “Time Estimate” are other custom data fields I have setup. Each of them were set as “required” so they have the little red asterisk to remind the user that data must appear in their fields. If the form is submitted without data in those Redmine will display a message and will not allow the form to be saved.

Try it out

I hope this article explains a great feature of Redmine. Don’t forget, Redmine will also let you attach custom data to your Issues and Users.

So if you are looking for a project management application that is easy to use, I would highly recommend giving Redmine a try. There is also a fully functional demo of the latest code at http://demo.redmine.org. I want to give a big thanks to Jean-Philippe Lang and the rest of the Redmine team, your software makes it easier for my business to run.