What I learned from working with my first client

Well, maybe you don’t, but I do and so do most other people I know. There are always a ton of factors you don’t think about when making that first estimate. In my case, I was thinking I would spend about 2 hours a day working on the app after I got home from work. What I wasn’t thinking about was my weeklong vacation to Florida and all of the time I wanted to spend having a life (hanging out with my girlfriend, playing video games, going to movies, etc.). So towards the end of the project, 2 hours a day turned into 3 or 4 and some weekends were even longer. I also wasn’t anticipating all of the changes that my client would want me to make. I had to completely change some functionality mid way through because they wanted something different. This brings me to my next point.

Working for a client is NOT like working for a company that sells software!

Where I work, we don’t have clients. We sell software to consumers. Our deadlines are self imposed and we have to come up with our own specs. When you work with a client, they set deadlines and they tell you what they want in the app. They get what they want, because they’re paying for it.

Will you do it again?

Hmmm, it’s hard to say. This has been a very positive experience. It’s a great way to pull in some extra spending cash and I learned a TON about iPhone development. The company I worked with was really great. We kept in constant communication the whole time and they gave me a lot of freedom in finishing out some small parts of the design that weren’t in their mockups.

Even though it was awesome, it was a lot of work. I don’t really need the money and as much as I like doing development on the side, it’s nice to be able to set something down when I want to.

I would recommend any developer with some spare time to try something like this at least once. I really learned a lot, not just about development, but about communication and working with others.

Page 2 of 2 | Previous page

  1. Corey Sunwold:

    I’ve done similar work for Android apps. In my experience, one of the most helpful part of working with a client is to have regular “check-ins” where you show them what you have done so far, and they are able to give feedback on the direction the app is heading. This keeps you focused and on task to have something deliverable at regular intervals, and allows your client to feel involved and ensure that what you are building matches what they are looking for. I like to think of it as a loose Scrum style sprint review.

    If you are working with people who have never been involved in designing and building software before is to communicate to them the impact all of those little changes they want to make have on any deadlines and time estimates that have been set. Inevitably changes always come up, and you can give yourself some “buffer room” in your estimates but as long as the client understands that changes mean increases in time spent you can avoid a lot of potential issues.

    Working with clients can be a lot of fun if you spend most of your time building software for a company that sells software, provided you get the right client. Any web designer can probably list off a laundry list of horror stories from working with fickle clients who cause nothing but issues for them.

  2. Dinuka Arseculeratne:

    Nice post. I actually went through more or less the same thing.It was a basic web based application. I figured out how bad i was with estimating when i did this project. My estimation on both the money and time was way off. I now believe i should have charged more. I underestimated myself because i was not sure if i was able to do it or not. The client for me was a mess. They would call me up when i was at work and say strange errors which when i head over in the after noon is a mere fact of the users not being computer literate. It was very hard to work with such a client due to the fact that they did not have the proper processed involved to implement the system in a orderly fashion. All in all i did gain alot of insight on how to estimate based on task break down and never to underestimate my self.

    Also i totally agree with you on the week ends and all. ITs fun to do development work in your leisure time but we have to note not to let it interfere with our personal life. Whats the point of making money if you do not have time to enjoy with it yea? So always agree on time lines which will allow you to be flexible. This is ofcourse only applicable to those who do this part time. Freelancers ofcourse have to deal with it in a whole different way.

    Thank you for the article. Some very good points were highlighted.

  3. Dan:

    In order to have constant feedback from your client and to make sure that you’re on the right road, it’s better to give small releases than one big one.

  4. Niran:

    Interesting Randall,

    I am going thru a similar experience as well. I always think, I charge the client too much because as a developer I dont have the ability to pick a price for my work.
    On the other side though, if the client wants more apps to be developed, you cant charge them more ( because you realize you have done it for a lesser $$, for the previous app).