Having a long term plan helps measure progress towards your goals. I've used a simple spreadsheet for two years now to track my annual business goals and it's helped me grow and accomplish things I never thought I could do. I was planning my 2010 goals and thought I would share the spreadsheet so it can help others.

The planning process

In order to plan what you want to accomplish, you'll need to do some thinking. Basically I just think of 5-15 things I'd like to accomplish over the next 12 months and write them down. I like to use a Mindmap for brainstorming some ideas and then group them into similar categories. For 2010 I had 4 categories:

  1. Financial
  2. Business
  3. Family
  4. Software Development

Don't over-think this process and just write down some things you'd like to do. Don't worry about getting them perfect, you can change them at any time you like.

The Spreadsheet

Download the Spreadsheet formatted for OpenOffice or Excel

Goal Tracking Spreedsheet example

  • Rows - each row will list a goal you want to accomplish over the next year.
  • Columns - each column will list how you are doing for the month, plus an additional column for last year. The column for last year is useful for goals that you already have made some progress on.
  • Cells - the individual cells are used to enter the percentage of the goal you have completed. If you're 45% done with your 3rd goal in March, you'd enter 45 into E6 (Goal 3, March).
  • Totals - at the bottom of each month is the average percentage complete for all of your goals.
  • Trend - the trend is automatically calculated and will show you the change from the last month to the current month. I use this to see if I'm completing enough of my goals each month and to show my progress over time.

Once you have the spreadsheet setup with your goals, start working on a few of them each month. Ideally you want to complete at least 8.3% of them each month (shown in the Trend row) in order to complete them all in a year. I usually update the spreadsheet every month on the first.

Hacking the Spreadsheet

You are free to change or hack on this spreadsheet. If you want to pick a different number of goals than 10, make sure you edit the Totals row to use the new number. If you have an idea or a suggestion, feel free to post it in the comments here.

Eric Davis

Tagged: Planning Goals Tools

In a previous post I talked about some of the common questions I ask contractors in order to understand who they are and what kind of work they enjoy. I thought it would be a good idea to post my own answers here, so you can get an idea about who I am and how I work.

1. What's your experience with Ruby on Rails?

I've been working with Ruby on Rails since early 2005 (February I think). I was working in PHP and I got tired of having to build everything from scratch so I started searching for alternatives. At the time I was comparing Ruby on Rails (and Ruby) with all of Python's different frameworks. Even with some previous Python experience, I decided to give Rails a try because I had a hard time comparing all of the different Python frameworks.

I've done some brief stints in PHP and C# since then, but I took Rail's ideas (and opinions) into those projects.

  • Reimplementing part of Test::Unit in PHP? Check!
  • Setting up a MVC distributed system in C#? Check!
  • Building a Rails url router and controller for a Wordpress plugin? Check!

2. What kind of projects do you enjoy?

I enjoy working on backend business applications. A lot of developers shun them because they think they are boring, but I love them. Even though most businesses use the same general workflow, there are enough subtle differences that keep the project interesting.

3. Thinking about all the projects you've worked on, which did you have the most fun writing/producing/doing?

One of my favorite projects was creating the Redmine Kanban plugin. It was built to have a simple user interface over a complex workflow system. What really made the project fun through was that my client really embraced using my Redmine to manage the project. That made it easy for us to communicate and iterate through several designs in a short time. Since then, I've noticed that every project that really uses my Redmine has gone smoothly. The projects that don't use my Redmine, or any other system, tend to stumble and get close to failing.

4. What are your strengths?

My strengths are:

  • Project communication
  • Automated testing
  • System architecture
  • Deployment / system administration

5. What are your weaknesses?

My weaknesses right now are:

  • Graphics/UI - I know CSS well but it's difficult for me to build a user interface or layout from scratch.
  • Scaling - Most of my projects are deployed to the customer's intranet and handled by their IT department so I haven't needed to scale beyond two servers yet.

6. Where do you want to grow?

One area I'm getting into is performance and scaling. I've gathered a bunch of tools to do some performance work on Redmine.

7. How much lead time would I need to subcontract you? A week in advance, a month, etc.

It depends on my availability and the size of the project. My schedule is typically full 1-2 months out but sometimes I have openings earlier than that for smaller projects.

8. Do you bill by the hour or project?

I bill by the hour on most of my projects. I've found that gives my clients the most flexibility to change the scope of the project and adapt to new information as it comes up. With a fixed bid, changes have to be postponed and that can cause a client to lose an opportunity.

9. What are your rates?

You're going to have to [contact me][] privately for that.

10. What's one question I didn't ask but I should have?

"Why did you start your business?"

I wanted to get experience with how a wide variety of companies are using web technology. Being an entrepreneur since college, I decided to start a software consulting company.

I hope this gives you a better idea of me and how I work. If you have any questions, I'd be happy to answer them in the comments below.

Eric Davis

Tagged: hiring skills

A common idea shared by a lot of businesses is that working on government projects is slow and burdensome. One of my contacts in a national government emailed me with the following quote:

It's not true that things happen slowly in government. Rather, things happen quickly but very infrequently. Our mascot should be the frog or the grasshopper, not the snail.

Yes, there can be a lot of hoops to jump through to work with the government. Yes, it might take some time and hard work to get a project started. But there are a lot of great people involved and if your business is willing to put in the work, the government can be a very valuable market to work with.

Eric Davis

Tagged: business markets government quote

After a bunch of planning, I'm adding new services to Little Stream Software for Redmine. I've already done these informally for clients but now they're available separately from my Custom Software Development.

System Architecture Blueprints

Every project needs planning. Waterfall calls this the Requirements and Design stage. Agile calls this Iteration 0 and Iteration Planning. These are times when you figure out what you're building and how to build it.

Code Review

What if the code has already been written? What if it's not functioning right? That's where my new code reviews come in. I've reviewed hundreds of thousands of lines of code over the years and have put together a process for reviewing Redmine code to find common problems and avoid maintenance pitfalls.

Both of these services are available now. I've also updated my Custom Software Development service to better explain what's included. Let me know what you think in the following comments.

Tagged: Business Little Stream Software Redmine

I talk to a lot of people online, some of them want to help me or work with me as a contractor. Over the past year, I've assembled a set of questions I ask them in order to get a better idea of them and the kind of work they do. I've found their answers are more valuable than any portfolio or resume. It lets me see how they are and how it would be like to communicate with them. I'm sharing these questions here in order to help others and maybe get some new questions.

1. What's your experience with X?

I use this question to have them talk about their expertise with a specific subject. It's not terribly informing but sometime they'll talk about the niche they work in or describe their ideal project.

2. What kind of projects do you enjoy?

People work better when they work on things they enjoy. Sure, we are all capable of working on things we don't enjoy but isn't it better to have everyone work on what will make them happy?

3. Thinking about all the projects you've worked on, which did you have the most fun writing/producing/doing?

What I'm looking for here is the ability for someone to turn a boring project into something fun. Sure building yet another backend office system might be dull; but if this one included a help system with a paperclip mascot that might liven things up a bit...

4. What are your strengths?

Some people have their niche, others are very broad and can do anything under the sun. But usually everyone is really good at something and the sooner you can find out about this, the better off you can be.

5. What are your weaknesses?

I use this question for two cases:

  1. What are they genuinely not good at?
  2. Can they be honest about themselves?

No one can be strong in everything they do. There is never enough time in the world to become great at everything. By knowing that someone sucks at picking colors, I can make sure to back them up with someone who dreams about color swatches.

My more important goal here is to find out how honest they are. If I get a answer like "I work too hard" or "I put the team ahead of myself too often", I call foul. These are coached responses from trying to spin a negative into a positive. If you work too hard, that's a positive. Now give me a negative.

6. Where do you want to grow?

If you're not growing your skill set, it's shrinking and shrinking fast. I'm not looking for specifics here usually, just seeing if the person has a growth plan for themselves or their business. If you're going to take the time and risk working with someone, you want to make sure that you both are heading in similar directions.

7. How much lead time would I need to subcontract you? A week in advance, a month, etc.

Scheduling is funny in that you might have an entire month open one day and then get it reserved the very next day. Knowing how fast someone can be brought into a project is valuable if you need specialized talent. I've found that larger organizations count this in terms of months, while solo freelancers count this in terms of days or hours. Both are fine, as long as the time frame works with the project.

Tip: My response to this is "As soon as you sign the contract and I have the deposit, subject to my availability".

8. Do you bill by the hour or project?

This is good information to get upfront, since pricing is all over the map. I just look to see if they fall within the project's budget range.

9. What are your rates?

Same as above.

10. What's one question I didn't ask but I should have?

I've only recently started to ask this, and it's turned out some wonderful results. Some people use this opportunity to pitch their services again, others use it to talk about their long term goals, and a few have used it to interject humor into the discussion. Humor is good, especially when working with me.

Response time

Another thing I look for is how quickly they respond. In general, I look for a 1-2 business day turnaround. Sometimes I get a response right away saying they need to think about it a bit. That's a good sign, since it means that I'm not going to get a canned response and also that they were able to communicate to me quickly and set expectations.

Those are the questions I use when I'm approached by a new contractor or service provider. What questions do you think work good? Is there anything you would add?

Eric Davis

Tagged: hiring

I've been asked a lot about how to keep bringing in sales through a recession and slow periods. I've been hesitant to share what worked for me because I felt it was overly simple, but I've come to realize that even something simple takes a lot of hard work to execute.

Pick a Niche And Stick With It

That's it.

No magic formula or 34 Steps to Niche Riches. Just pick something you can be the best in the world at and do it.

Oh, and make sure everyone knows that you're the best in the world at it.

How? Okay, here is a few tips:

  1. If you don't have a niche, look around for people complaining about a service or the lack of a service.
  2. If you have a niche but don't know how to use it, define the perfect client for that niche and then start talking to them.
  3. If you don't know what a perfect client looks like, talk to everyone and pick the ones you like the most.
  4. Find out where the community for your niche hangs out at. All niches have a community, but it might be fragmented. (bonus points if you can bring the community together)
  5. Help people in the community, even if it's for free.
  6. Be approachable, you want people to know they can contact you. A simple contact form from Wufoo is all you need.

There are countless niches and many of them very profitable. The key is to stick with one for several months and to get creative about how you can generate revenue.

Eric Davis

Tagged: business marketing

Welcome to the great unveiling of Little Stream Software's company blog. I'll be writing about running a one person Ruby on Rails consultancy and the mistakes I've made while doing it (and boy, are there a lot of mistakes). I'm going to cover common topics like customers, pricing, and contractors as well as topics specific to technical consultancies like how to find time to write code, intellectual property, and building products. My goal is to help new business owners wade through all of the information online and see what worked and didn't work for me.

Tagged: Business Blogging