The Freelancers’ Show 082 – UserVoice Questions from the Audience

Download MP3

The Freelancers answer questions entered in the UserVoice forum.


REUVEN: [Sighs] It’s too easy to mess with my mind guys [laughs]. CURTIS: Here’s the drum roll [drum roll]. REUVEN: [Laughs] CURTIS: Welcome to The Freelancers’ Show Episode 82! Today, we have Eric Davis. ERIC: Hello! I believe my name is Eric. CURTIS: [Laughs] Reuven Lerner. [Silence] CURTIS: Oh! I guess we don’t have Reuven Lerner now. And I’m Curtis MacHale! We’re going to talk about “Questions” today. We went to the user voice, and it sort of got me some of the questions. Eric, why don’t you lead us off with the first one? ERIC: Okay. Somebody is again be kind of quick. First one is: “Find the first paying gig before me – HTML, CSS, JavaScript, and a General Purpose BS degree.” I guess the person who’s asking this, they might have a General Purpose BS degree and it’s like HTML, CSS, JavaScript, Frontend stuff, and they’re trying to get their first paying gig. So, what advice that you have for them? CURTIS: I think they’d have to start writing for blogging – get their name out there, contribute in open source projects so that some people actually know them. Probably actually one of the good first things to do would be to read the book we’ve talked about last week, Book Yourself Solid, right? ERIC: Yeah, that one and maybe get clients now. Because to be honest, HTML, CSS, JavaScript, actually any kind of technology, if that’s the only thing you’re bringing to the table for a client, there’s not really any reason for them to work with you, or someone overseas, or someone who’s still in college that’s maybe half the cost of you. So you kind of have to have something that’s going to differentiate you from all these other people in the market. REUVEN: Well, there might be something as simple as even just knowing the person who’s running the business who’s interested in having your help and knowing the business well enough to be able to help them with their specific problems. Having the software, as we’ve often said, isn’t quite enough; you also have to be able to actually solve their problems. If you can go and say, “I know your business and I know how to make some improvements here on the technology side,” that’s the way to sort of work yourself up and improve your technology skills as well as your consulting skills with that matter. ERIC: Right. So you can approach it from many angles. You can niche into the technology and say, “I’m the go-to guy for KnockoutJS. I know KnockoutJS like the back of my hand.” Or, you can say, “I know how to improve martial arts studios,” those are businesses they need customers, “I know how to make their websites be better,” and kind of niche it onto the industry side. So there’s a lot you can do, but you have to kind of have something to stand for; you have to be known as the go-to person for X. CURTIS: What I did when I first started is I just started emailing all the local businesses and I probably didn’t have a lot of value to divide. They weren’t necessarily high-paying clients, but I’ve got some money in the door and gave me some more experience to keep building on I’m specializing with. ERIC: I kind of done similar. My first client was my past employer and then I hit Craigslist; I hit a lot of the kind of the freelance jobs where it’s all that stuff, and basically did whatever I could. I had 1 lead that actually wanted me to write some kind of FTP Client in PHP, which is completely like not something I was good at, so I did whatever I could. And then once I figured out I really need to specialize, that’s when things started to really turn around. So you can probably get your first, maybe half a dozen paying gigs, just being kind of generic, not really needs specialization. But if you want to keep out at long-term and you want to have consistent results, you need to specialize or have something to kind of hang your hat on. REUVEN: But it’s that one point here as well, the [unclear] question, so they had a General Purpose BS degree, yeah, it’s always nice to have a computer science degree or some sort of degree in the direction of what you’re trying to consult in, but that’s nice to have. It doesn’t necessarily mean there are plenty of people out there with computer science degrees who are awful programmers, or even excellent programmers who are terrible consultants. And there are other people, including people on this show, who don’t have CS degrees and do an excellent job and have a totally successful career. So it might take a little bit of time to sort of convince others that you have the knowledge necessary. But once you’ve convinced them, then it should just keep coming, and the work should keep coming, and you should feel satisfied with that. ERIC: So the next question – kind of a segue from the last one – the title is: Keeping Your Employer as Your Client – some tips and discussions for how to tactfully quit a fulltime job to go freelance, but keep your current employer as your client. REUVEN: Ooh! [Laughs] Have you guys done that? CURTIS: I’ve never done that successfully. I’ve had past employers want to contract with me, but then when they found out what the rate was as a contractor, they said, “There’s no way we can afford that,” which is true because they have been paying me like just barely above $30,000 a year for full-time web development in eCommerce and everything. REUVEN: I sort of had that, but they [inaudible] offered when I was going to move, as I said in our background show a few weeks ago, I said I was going to be leaving and they offered for me to consulting. But I do remember when I worked with HP, there are a bunch of people who had quit and come back as consultants and people are very jealous. They’re like, “Those people are making twice or 3 times their previous salary,” without understanding the economics of freelancing. ERIC: Like I said, my first client was actually my employer, and it worked like that because they were a small software company, didn’t have anyone working remotely. So when I moved out of state, they still needed some stuff done so I did it freelancing as a consultant. For that, it was tactful because I really tried to get everything done for them, everything documented, but I was in so many different roles at the company with a small company; there just wasn’t enough time to document everything. So after I finished, they came back to me like, “Hey, we need some more documentation on this subject,” or “We need you to write some code to automate something that only you actually know how to do.” So I freelance with them; my rate was like way too low. But it was still a bit higher than my salary, but the thing is they weren’t paying me for 40-hour a week; they’re just paying for maybe a 5 or 10-hour a week. So they got what they needed, I got kind of a little bit of a bootstrap cash fund, and everyone’s happy. So I think the thing is this, don’t threaten that you’re going to freelance. You have to, “Client or employer, you need to start paying me 3 times as much because I’m freelance.” You got to work with them and figure out what they need and kind of use them as your first client; they kind of get into the freelancer-client relationship and not the employee-employer relationship. REUVEN: Yeah. CURTIS: I have a friend who went remote and freelance by simply flying from Calgary to BC and not showing up on Monday [laughs]. REUVEN: [Laughs] CURTIS: It’s got to be work remote [chuckles]. I thought that was pretty bulled, but he has had a job for 4 or 5 months still. REUVEN: So if you’re in a position or power of that sort, if you’ve got incredible job security because you basically have amazing knowledge and/or you’re an amazing employee, you can probably negotiate something more easily, but you don’t want to threaten them or not showing up or be in another city since it’s a little extreme. But I could imagine, if you have a good relationship with your employer, then you could probably go to them and say, “Listen, I really enjoy working with you, I want to continue working with you, but I want to specialize in the things that are really of interest to me and that I think you’re getting the grace value out of. Then we could work out some sort of deal where instead of working for you 40 hours a week, I work for you 20 hours a week just doing those specific things that are most worthwhile; it’ll be so good for both of us.” Again, if you have a good relationship with them, that might work out well. ERIC: That’s kind of something I did. When I was an employee, I was doing system administration, kind of the web master, front and backend web development, desktop development, and general tier 3 support. I was doing all those things then when I went freelance, I basically said, “Look, I’m only doing the Rails web development. I’m not going to do your desktop stuff, I’m not going to do the system administration stuff, all that,” so that’s how it went from 40 hours a week down to 5 or 10 because it’s just the few skills that they had no one else in-house yet to kind of take over. So the next question, this is from Chuck actually, I think we’ve heard about him on the show before – REUVEN: [Laughs] ERIC: It’s about scheduling work if you have to juggle multiple clients. Or, when you have multiple clients, how do you juggle them? Or, is there another way to manage scheduling projects that I guess are running concurrently at the same time? CURTIS: I just don’t typically book projects at the same time. I deal weekly, so I book you in for the set number of weeks, and I can take a new project when those weeks are up. That’s how I dealt with it. I had nothing with trouble when I tried to run concurrent projects because it was, I don’t know, maybe I’m just terrible at it and that doesn’t work for me. I could never accurately estimate when the end date was and it’d have way too many things overlapping and be super not happy. REUVEN: I’ve been totally the opposite. I can’t remember ever having only one project in which I was working at a time. So when I hear about weekly billing, I think, “Wow! That’s great!” except for the fact that in a week, I’m probably working on 2 or 3 different things; probably teaching a course and working for 2 different clients. So juggling time can be a bit of a challenge. It’s true that sometimes, you have to work late until the middle of the night, but that’s sort of a personal choice. I think that it doesn’t have to be part of the taking multiple clients, but does require a fair amount of discipline in terms of scheduling. What I started doing about 2 years ago was toward the end of the month, if I saw that I had relatively open month coming up, about a week before the end of the month, I would contact all my clients and say, “Let’s schedule time for next month.” That would not only allow me to lock them in and know that my schedule was full and I have a fully-billable schedule, but it also gave them notice that I’m not available infinitely, so if you want to have time with me, you’d better lock that in now. It actually worked really, really well and I continue to do that. The only backfiring part of that is that I’m now typically scheduling out mostly about a month or two in advance. Just like the client called me yesterday and say, “Oh, we really like to meet with you,” and I do have some holes in my next week or two to meet with them, and that’s great. When I told them that I’m often booked a month or two in advance, they got a little nervous because they said, “But, what if we need you for an emergency?” and I said, “Well, so far that worked out okay with all my clients,” but that’s something they have to keep in mind and I have to keep in mind as well. ERIC: Actually, I do what Curtis was talking about, but I’ve done what you’re talking about where I basically just slot people in and book them out. I think I want them to have like a sneak of 6-month waiting list just because some contracts were very long… REUVEN: Wow… ERIC: Yeah, I know I lost a lot of actual projects because I couldn’t work on them, but you’re going to lose them anyways. I’ve written about this and I think it’s also on my book, but I kind of see there’s 2 ways of scheduling that could work. The first one is basically like part time all the time which is where, say, you have 3 or 4 projects, you’d basically work on them all at the same time, like maybe Monday is project 1, Tuesday is project 2, that sort of thing. You’re basically time slicing yourself and making sure each project is getting a little bit of your attention either everyday or every week; I recommend every week just because it’s hard to jump between 4 things at once. That can work and that’s good if there’s emergencies or you want to pick up new project and don’t want to force in the way to couple of months. The second way is, basically I call it ‘Week-On, Week-Off’, but you can do it whenever you want. It’s basically like Curtis has; every client gets a week of dedicated time. Like this week, I might be working for a client A; next week is client B, the week after that is client C. And then maybe next month or whenever, it rotates around. The nice thing is you can really, really focus and get like maybe 50% productivity gains just because you can stay in one client’s area and you don’t have to worry about switching projects, changing web service, or any of that stuff. That’s actually what I’ve used for the past maybe 2 years, at least a year if not 2 years, and that’s great because it just makes everything so simple. And most of the time, I remember, it’s either you can fit in or you can kind of push off to a later week like, “Oh, sorry. Your servers, it won’t be that long, it’ll be fine. We can deal with that next Monday.” REUVEN: I really like what you guys are saying in terms of scheduling ideas. I think it’s hard for me to do because of all of the courses; I just sort of schedule around. But definitely, having the part time all the time has definitely been my favorite way to do it for variety of reasons. So when I go to new clients, I say to them, “Look, my preferences is to do it 1 day a week, 2 days a week, just sort of moving forward, and that’s [unclear],” but I should try the week thing at some point. It sounds like it might be useful. CURTIS: And you can mix some, too. I recommend a lot of freelancers just go and try to get long-term contracts. Basically, a big part of that is you do like a trial project upfront to make sure like you and the client are compatible. So what I think will work the best is, say, a monthly or 5 weeks; use 4 of those weeks for your long-term clients, and each one gets a solid week. And then use that 5th week kind of as like if you’re doing a trial project for a client, say, you’re going to spike on something, put in a 3 or 4 full days of work. That way, you can kind of keep that 1 week free so as people come in, you can do the trial, see if you want to work with them. If you do, then you can slot them in into the other slots as a long-term contractor. And the other nice thing about the ‘week-on, week-off’ is if you want to take a vacation, you just book a client of yourself, take it in vacation and you just go for a week; you don’t have to worry about anything. REUVEN: Right. I’m curious, how your clients reacted to the week-on, week-off? Do they feel like you were abandoning them for the weeks when you were not available? ERIC: It depends. CURTIS: My weekly stuff, I still do, like if a client has an emergency, I’ll still do that. I tell every client booking in, “There’s some business admin, and a week does not include Fridays.” So if I have to help assign client with a fully-crashed server, then I’m working for you like that Friday morning to do the extra work and to catch up. Or, I’m working for that client on the Friday. ERIC: That’s what I would do. If it’s like, “Our server has crashed, our website is down,” I would contact switchover to that client even in the middle of the week to get them – REUVEN: See you next week! [Laughs] ERIC: Just get them patched on so that they can kind of continue business, and then go back to the original one, and make it up to the original client however you can. Sometimes, when it's like an emergency but not a critical emergency, like we need to get these resolved but it’s not stopping business functions, I try to lay that a little bit. Or depending on what it is, that might be the one time I’ll work a night or a weekend just to kind of get that taken care of. Sometimes, I’ll take that time out of that client’s week. So instead of them having 5 days next week, they would only get 4 days and I would take the Monday or the Friday off to kind of compensate myself. CURTIS: And a week also moves it to value-based. Like on Monday, we decide we’re going to do A, B, and C. As long as A, B, and C are done by the end of the week, we hit our goals. That’s not necessarily that I put in the suit instead of hours. So if I say, “Hey, I’m going to take this morning and work for this other client for something because they have this emergency,” “As long as you can get A, B, and C done, we’re good to go still.” REUVEN: That to me is, in many ways, the most convincing argument for working that way. ERIC: Yeah. But most of my clients, like I had a few that actually love the week stuff because, especially on smaller contracts, if the client has to keep their eyes open for an email from you every now and then, or the entire month like, “Oh, when is Eric going to work on this?” it takes a bit of energy from them. But if they know 2nd week of the month, Eric’s going to be on full-time, “I need to clear my calendar for that week, but I have the rest of the month just ignoring anything Eric says,” it helps them plan their stuff. Like Curtis says, I actually do maybe a third or maybe a quarter of Monday as kind of planning like, “What would we want to get done this week?” and then Friday, it’s kind of the review of work I’ve done, what can we actually launch to this site, what do we want to hold off until next month or next week. So it really puts a lot of structure around doing kind of agile or incremental stuff without it being too much of a management burden. CURTIS: The other great thing I love is when you’re tied into that communication. Like, I was in IRC with my client for 3 weeks and I can just leave that open all the time and answer their stuff and basically ignore email because they wasn’t going to email me. So I get to do with the email once a day quickly, and nothing that was current client stuff was coming up. ERIC: And that’s what you get from the focus and the contact switching. Like, I’ll set up email roles for just filter a whole bunch of other stuff away and keep my inbox for whatever client I’m working on. REUVEN: It does seem to me how easily contact switch can also seem to be a personal thing. Like I had someone working for me about 2 years ago, he was great, and everything was wonderful, but he asked me specifically if he can work on 1 project at a time as opposed to 2 or 3 dealing with different things because he said he just found it way, way easier to concentrate on one thing rather than many things that I was doing. Whether that’s a good thing or bad thing that I can do or what I do – whether poorly, I’m not sure – but I’m just been doing it for so long that I took it for granted; he could, too. ERIC: I don’t think it’s like different people are better at it; I think it’s different people are better at deceiving themselves about how good they are at multitasking. CURTIS: [Laughs] REUVEN: I am perfectly willing to admit that I’m deceiving myself. So for all you potential clients out there [laughs]… ERIC: Anything else you guys have on scheduling when you have multiple clients at once? REUVEN: Not really. Although I experienced even when I was going to people twice a week similarly to what you’re saying in terms of they knew I was coming, those days were set in stone so they knew to get ready and prep themselves because it was worth it to them, and it was worth it for me as well. ERIC: So the next question: What is the difference between consulting, contracting, and freelancing? REUVEN: [Laughs] CURTIS: Semantics? REUVEN: It could be nothing, and it could be a lot. I don’t think the term is really necessarily; I think it’s mostly semantics. But, it’s sort of like what you decide to do with it. CURTIS: I think consultants imply that you are providing more value. Coming in as a freelancer, at least in my mind, often means you’re coming in as like code monkey or just pushing the pixels around to do what they’d like you to do, whereas a consultant is coming in to write business value. REUVEN: Wait, a freelancer, or even a contractor at some degree, exactly the idea is, “Well, we don’t have any fulltime employees to do this so we have someone come in and fill their shoes instead on a contract basis.” Certainly, that’s what I’ve done for many years as a consultant, but I’ve also done other things and higher level things and more interesting things as a consultant that I don’t think they would typically hire a freelancer for. ERIC: I’ve actually [unclear] of this a lot; I’ve talked with people. I have pretty clear boundaries for this, and there was actually 2 sides of it. So the side that how you kind of project yourself to your client, they mean different things, but the side how you project yourself to your peers like other people, other consultants, or other freelancers, they’re very similar than it’s just kind of a quicker label than anything. But when you go to a client, the way I look at it is, you’re basically selling advice and implementation. So if you’re selling almost all exclusively advice, you’re going to be a consultant; you’re consulting them, you’re telling them what they need to do. If you’re selling just the implementation where the client knows what they’re doing but they need someone to actually just do the work, that’s a contractor; that’s someone who comes and it’s basically a buttoned seat, making designs, writing code, or whatever. The freelancer, I see kind of straddling the 2, where you give some advice and then you’re actually going to implement that advice. It’s a lot of gray area, a lot of fussiness because some consultants would give advice and then they’ll do the implementation, too. But this is how I like to look at it. So if I ever go to a client, I kind of, if I’m going to them and I want to do the implementation, I presume myself as a freelancer. If I’m going to them and just want to give them advice and tell them what they need to have their employees do, I present myself as a consultant. REUVEN: It’s funny on several occasions in the last few years, there’ve been people who, when they hear what I do, they say, “Oh, so you also do the implementation, you’re not just a consultant.” I think they had similar definitions to what you just said there where they’re like, “Oh, well, if you’re consulting and just giving advice, you’re not necessarily sitting and doing the coding.” But, I guess it was earlier today, I got email from someone who said, “Well, our company would love to have you work with us, but you’re way too expensive. How do you manage to get those really high rates for doing web programming?” I wrote them back and I said, “Look, first of all, I’m running a business,” and I wrote what we have on and on, “But secondly, if you are equating what I’m doing with what your typical web developer is doing, then you’re thinking about me in the wrong way. You’re not seeing the value that I can provide.” Hopefully, he got the message; hopefully, I can even work with them at some point. But I think there is a general feeling that that’s often what consultants are doing. ERIC: There’s that old story – I don’t remember the exact thing so I’m going to butcher it – it’s the idea of factories having problems, stuff is just not being manufactured correctly. They track it down to its machine, it’s just malfunctioning. They call someone in to fix it. The guy spends 10 minutes looking at the machine, pulls out a hammer, smacks the machine, gives them a bill for $2,000. The factory owner gets mad, he’s like “You’re only here for 10 minutes, how can you bill us $2,000?” He’s like, “Well, I’m billing you $1,999 for knowing what to hit, and then the $1, that’s to swinging the hammer.” REUVEN: [Laughs] ERIC: Actually, I’ve heard a lot of consulting books; they split up the implementation, too. It’s a common thing to split the actual discovery advice part of it from implementation. I just like to split it up into kind of different job titles just to convey how I’m coming into this project. REUVEN: Right. ERIC: So next question, a couple of questions about tracking and billing time. What tools do you use to track time? How do you invoice? Is there a right, best, or wrong way to do it? CURTIS: I use ‘Ronin’ app – it’s my tool of choice at this point. It seems to have the least things I dislike. I’m not sure if you’d ever going to find a tool that just everything is perfect and all – sun is shining and birds fly through my office because…that’d be actually kind of weird with birds in my office, but – REUVEN: [Laughs] CURTIS: Well, it would be bird chirping behind me, that wouldn’t be good for a podcast even. But it solves the most pain points for me, which for me were online billing which my old system didn’t have a way to let the client pound line automatically without me taking more interaction with Paypal to send the invoice. And I want to track my time on flat rate stuff so I could work out my effective hourly, but I didn’t ever want to show the client the time because I want it to be results based from them. So it solves those problems. I’m actually going to look at a couple of other options coming in to the next year. And it tracked my time; it just had a built-in timer which is okay, it works. REUVEN: I looked into a bunch of different time tracking and invoicing programs a few years ago. One of the most important things that I had to deal with was multiple currencies. I need to be able to invoice people – track time, have rates, and invoice people in Shekels, Dollars, and Euros. There were a number of places, number of online services that would allow me to do things in those various currencies, but would automatically convert the currency according to a formula that they and on dates that they wanted. That really was not the sort of thing that I wanted. So in the end I went with ‘Harvest’, and Harvest I really think is wonderful in terms of interface, in terms of billing, in terms of all this stuff. But it turns out that it’s illegal in Israel for my business to invoice with a non-government approved program. So after a little looking around and doing this by hand and done that sort of official notepads that I think I have a case, I actually went with a local Israeli service for my invoicing. I still track hours with Harvest, but I invoice with something called ‘Accountbook’. Yes, it’s an English name, but it’s all in Hebrew. I put it in the show notes for the few people in Israel who might be interested in looking at it. But I’ve been actually very happy with them so far; it’s been a nice pleasant change from write things out by hand. CURTIS: I looked at Harvest, probably 2 years ago. I did that with like a multi-thousand word review of Harvest. And the big thing for me is it didn’t offer a really nice way for me to bill flat rate, track my hours, and not show the client the hours. Like I said, it basically mess it up so I could never track of my effective hourly rate was. I understand that it’s fixed now, but that was my biggest issue with Harvest; I didn’t know now it was awesome. ERIC: The tools I use, I use ChiliProject, I use Redmine. I’ve used that the entire time I’ve been freelancing. If you don’t know already, I’m meticulous with my time tracking so I actually have all my time tracked to when I originally started. I try to bill the stuff that I track and I’m able to track also internal, like I can tell you how much time I spent in email 42 weeks ago. The nice thing is, I used to have to track all my time. And because of that, I’ve built an open source plugin, I can take that time in invoice. And because I wrote the code for it, I actually say what the right features for how I want an invoice. So some clients flat rate, I just put the flat rate on there; don’t show the hours. Other clients that want the bill by the hour, I can show all that. And the nice thing about the way I’m doing it is you can also export stuff to Harvest or from Harvest, or to FreshBooks from FreshBooks – any system you want. So you can use the nice timetracker widget somewhere else, but actually run your invoices in this other system. It works good for me; I don’t think it’d work for everyone else because I have my own particularities. But basically, that’s the system I’ve come to over the years and it’s been pretty solid, I guess the past 4 years since it has been done. CURTIS: Why do you track your internal time? ERIC: One is to find out my actual hourly rate. So if I have billable rate of, say, $100 an hour, but I only work for out of the 8 hours a day, my real actual hourly rate is $50 an hour. So I can see if I’m spending too much time on internal stuff, or if I actually like figuring out, I wrote this book in X hours, I made this much money, it wasn’t a good use of my time, that sort of thing. And it’s also just to I have what I got into and I can look back and get estimates. Like I estimated 4 hours, it took me 8 hours to do this, so I need to kind of take that into next time I do this similar task. CURTIS: I always have good intentions about that, and never quite follow through on it. ERIC: Yeah. REUVEN: The question asked also is, is there a wrong way to do invoice thing? I would say the biggest lesson I’ve learned in terms of wrong way to do invoicing is to wait. ERIC: Yeah. REUVEN: Sometimes, it’s as if, “Well, I haven’t done much work for them. I don’t want to bother them with an hour of invoicing, so I’ll wait,” and then it just drags on for months, and then it’s just really uncomfortable for everyone. Because then it’s like, “Really? You’re invoicing it now for something you did 6 months ago? Oh, okay,” and it just feel very awkward and/or they could get angry. CURTIS: I only wait for 1 client I have had for a long time, and occasionally his invoices for like $50 with his bundle it into like a 2-month invoice. He’s my only small client now because he’s awesome to work for, but everyone else just gets billed. I do that today; I bill everyone that I did work for that was really current September – today. ERIC: That’s the same thing I do. I’m basically, once a month at the end of next business day of the new month, I invoice for everything that I haven’t done unless some are pre-pay or there’s deposits or stuff like that sitting around. The wrong way of invoicing is not doing it; the next worst way of invoicing is just waiting and invoicing haphazardly. I’ve heard of people that they wait like 5 ½ months and like, “Oh, we’ve got a bunch of time. I need some money in my bank account and make an invoice,” and they invoice on the 13th of the month, and it’s not consistent. When you’re dealing with business clients, they had tends to kind of upset people especially if you’re working with accounts payable department – they don’t like that at all. CURTIS: When I do weekly, I actually invoice on Friday for the next coming up week, so I get paid for that before the week has actually started. ERIC: So here’s kind of a tricky question: What do you do if you’re going to run over budget? Basically, you set your client’s expectation that they’re going to get certain feature or deliverable for X dollars, and it’s going to be more than X. How do you have that kind of painful conversation with them? Is there ways to avoid it? That sort of thing… CURTIS: I think it depends on the circumstances. Is it going over budget because you’re just taking a long time and you assume it was way easier? Then I think that’s kind of on you. Is it going over because what they told you you’re going to do is different? Or, the API changed mid-cycle? In which case, that’s kind of a cost of doing business for them. I would have approach it in 2 different ways. If it’s my fault, then I guess I just have to suck it up. If it’s their fault or something that neither of us could control, then I have to bill it to the client, or we just stop when we hit the budget really. REUVEN: The worst thing you can do – this gets back to the billing question I guess – is not say anything and just invoice them at the end of the month pretending nothing has happened. Maybe, you’ll have a good enough relationship that they’ll understand and they’ll just keep it going. But almost certainly, someone is going to get upset and you really want to deal with that in advance and call them and say, “Listen, I think it’s going over budget,” and then yeah, there are different ways to deal with it. And what Curtis just said, sometimes you might need to absorb some of the cost if it was your fault. And short-term absorption of some of the cost is probably really, really worthwhile for a long-term relationship with a client. But if things are going over budget, if you can see that happening, if you see that you’ve used half or 2/3 of the budget and you know it’s going to take a lot more than what you originally expected, talk to them about it, and you can try to figure out together what to do and whether the budget needs to expand or the scope needs to contract or anything else. ERIC: Yeah, a lot of this comes to trust. If you have a good level of trust with your client, you can come to them and say, “I screwed up on the estimate,” or what some of the circumstances happening, and they’ll have trust that you just [unclear] of the entire time and be like, “Okay, let’s cut features,” or give you more budget or whatever, but you got to tell them before you run over. I have a project and it was like a project budget, and inside of that, I have task. Each task has estimates and they range from maybe an hour to maybe like 20 hours. They’re good size, but they’re not too big. And typically, if I notice that a task is kind of getting until like the 70% mark of the budget but it doesn’t feel like that or done, I’ll basically raise the flag for client then be like, “Hey, this task, there’s still have budget, there’s still work to do, but it kind of feels like it’s going to be higher than it should be,” sometimes, I’ll even ask for authorization to go 4 or 5 hours over. I do that upfront and I tell them, “I might just finish everything right away, but just to kind of make us not to stop working basically when we run out of money, I let my clients know about that ahead of time. The hope is on some other things, I’ll be under budget and that’s only wash in the end, but just kind of raising that flag to my client early on, they’re frequently gets used to that I’m watching their money, I’m watching their budget, and they know they can count on me about it. CURTIS: When I’m working weekly, too, we decide we’re going to do A, B, and C, and so when we do it like a Wednesday check in, if we only have A done and B and C were still big features of the same size and we know something’s up and we can figure it out right then, typically, out of project like that, we have a couple of weeks to go so then we can even re-adjust it in the few weeks and decide to extend with it after a week even. ERIC: One of my client…2 of my clients I guess, we’ve got into more of like almost a retainer where I gave them a fixed amount of hours each month and they just had this huge task list, and I was prioritized, there’s estimates. So I’m going to say, “I’m coming in based on the amount of time we have. I can knock off these 5.” So for them, if someone [unclear] an estimate goes too high, I still notify them and tell them that this individual one is going to take longer, but I may only get through like, say, 3 of the 5 tasks. So then the next month, I would kind of work on the next ones. The nice thing about that is the only pain they have is like, “Okay this stuff takes longer, and we’re going to have to wait a little bit longer to get some things.” Sometimes, all they would have to do is just reorder, reprioritize stuff if they’re actually needing something early, and there’s not really any pain for them at all. REUVEN: It definitely comes down to it. The keyword is trust. I’ve got a client now for I think it’s about 4 or 5 years already, when I’m in the programming, he works for me. When we estimate something, they know that we’re really trying the best to save them money as well and keep the business going as well as possible. And when we’re often high, if we miss the estimate, they understand, but we’re just as often below the estimate, and then of course they’re thrilled and they’re especially happy that we’re not padding it just to take the money that we said we could take. ERIC: I guess you just got to have know your client, have trust with them, and be open. If you have to take some unbillable time, it’s not a good thing. And if you do, make it clear to the client that you worked an extra 5 hours since you’re not charging the 4 so they understand that you kind of took that on yourself. But you also have to look at the big picture like is this client, like you’ve been saying, is this someone you work for for 5 years? It might be worth this little bit of money this week on it just to keep them around. Or, you can be really big headed, hard-nosed about it, say, “No, you got to pay for everything, we’re going over budget,” and lose them. So next question: How do you structure ongoing support and maintenance contracts? Do you provide support after the main project is done? How do you manage it? Do you charge for like ad hoc time, or so like retainer agreement? REUVEN: Eric, you’re probably the expert on this with long-term stuff. ERIC: I guess I do a trial project which is more of prototype upfront and then try to make the main development. If it’s a rebuilding an application and then maintain it overtime, I make sure it make the main development part B, the long-term busy part. And then after that, I might do another contract out like I’d reduce the amount of hours. This is where I’ve mentioned I’ve had clients where it’s kind of a bucket a time each month. So you get 10 hours, and then if there’s a critical bug, I’ll work on that. If there’s none, we can work on some feature work or whatever. That’s how I’ve done it and that works really good. Support request are just anything else; it’s like a feature request or bug request. You got to look at it, figure out what they’re actually wanting, what’s going on, give them an estimate, and then let them prioritize a work they want. CURTIS: Most of my stuff is fixes that’s kind of ongoing, something I didn’t update properly whatever. I just deal with that ad hoc hourly. I’ll usually give them an estimate of a time, but it depends if they say, “Hey!” like on the weekend, my site is totally down and I looked and said, “That’s probably just a quick function,” and realized I was totally got hacked! So I just started billing hourly to clean up as much as I could and said, “This is your go-hire security because they’re way too cheaper than me and they do a better job because that’s what they do – security specifically.” REUVEN: I’ve never had a real maintenance agreement with anyone; it’s just become an hourly project or hourly ongoing thing. The priority, they got depends on the nature of the work. So if there’s a really serious problem – the site is down, the server has crashed – then obviously, that becomes a super high priority; I’m taking care of it right away. But if it’s just a feature request, then they’re okay with it taking a day or two, and usually, I don’t care whether that taking a day or two, so I just bill them for the hours that I worked on it. ERIC: One thing that some people might not be aware of is, if you launch a project, or a product or whatever and then you have the maintenance, if you’re doing the maintenance, you’re doing a good job of it. When version 2, that site comes around, you’re probably going to be a prime candidate to either be the lead person working on it or be in the team for it. I’ve had several clients where I launched something, I do the maintenance for them, and then they’d come back like, “Okay, we’ve got enough revenue coming in from the first version. Now, we’re ready to do the second version and we’ve got a lot of the bigger features, we had to push back.” I think one client actually did that twice like he was actually had 3 different big iterations. Maintenance, that’s kind of hard because you’re doing an hour here and hour there. Many times, it’s emergency or time critical, but there’s a pretty good payoff and it’s a pretty consistent regular income with the client you work with. So you can kind of use that to kind of be a good baseline for your entire business. CURTIS: Even stuff that you didn’t necessarily launched – I picked up an eCommerce client a few years back and they had probably a couple thousand dollars was the initial project, which is basically fixing all the dumb stuff the developer had done. Since then, I’ve been maintaining it. Now, we’re moving into like a $20,000 restructuring of the whole eCommerce site 2 years later. REUVEN: Wow! ERIC: So, we’ll make this the last question: Specialization. A lot of us, we talk about having a tech stack we specialize in, but is anyone specialize in a business stack? Like maybe a problem demand like social startups, insurance, accounting, maybe industry, that sort of thing. CURTIS: I have that question, too! It’s part of the book clients or Book Yourself Solid, specializing to an industry. I don’t necessarily. I kind of specialized in eCommerce so I do specialize in eCommerce, but I don’t pick an industry like I have a paddling store or an antique furniture store, and a bunch of other ones so they’re all over. ERIC: I specialize in profitable businesses. [Laughter] CURTIS: People who make money. REUVEN: [Laughs] That’s a good threshold to have. I don’t even have that as a specialization. My specialization is I guess I like to work with, the way I describe it is, nice people and interesting projects for the long term. So I’m willing to work with people on interesting things even if I’m not so sure how long term their business is so long as I know that they can pay. CURTIS: Yeah, I fell to interesting projects and my target, which is eCommerce, more than anything else. REUVEN: I can’t imagine sort of sticking myself into a particular product type of niche being a technology person, although I might not be seeing the potential there. ERIC: I’ve seen people do that with different industries. Myself, I used to specialize in only Redmine and ChiliProject stuff, which basically because I like the project management space. So it’s a cross-industry, but it’s one specific problem domain. That was really good for me; I cut it out a year or 18 months ago as of this recording. Now, I’m kind of more generic, more general…I don’t know. I talk about specialization, but it’s really hard to specialize in the business stuff unless you come from a business background. Like if you came from Wall Street finance and you learned programming, it’s really easy for you to stay in Wall Street finance as a programmer because you know the jargon, you know all that. When you’re a freelancer, sometimes, you kind of got to take what you can. So that’s why I think a lot of people specialize more on the tech stack side, like if any business has a problem, you can come to us and we can solve that problem in this area. It’s also a lot easier to market for. But if you’re doing a lot of local stuff, or if you know you had like a good network established in the industry, I think if you could specialize in like a business side or an industry like that, that’s the way to go. That’s where you’re going to make a really good name for yourself on that market. REUVEN: And people in those businesses tend to stick in those businesses and tend to talk to other people in those businesses. So I can see where it would be very effective in terms of marketing and getting your name out. ERIC: Yeah. You basically get like a reinforcement thing, like every good project you do, everyone in that small industry sees it and they want the same thing for their business because their competitor just one up them by using you. So they want to one up their competitor; there’s not going to be issues with that. But outside of that, like it’s really nice to do. But you have to kind of have an end in it or you have to really put the time in to get into one of those. REUVEN: I have a friend who is a freelancer in the graphic design space – graphic design and then sort of marketing space – he tends to specialize with non-profits. He seems too dumb pretty well on that over the years. And the large number of non-profits, people also stick in that industry, move between companies, talk to each other, move between organizations I guess, talk to each other, so he’s meant to just scoop up quite a lot of them where he lives. CURTIS: I even worked with a native American Association locally, and off that, I picked up like 5 or 6 different native American contracts for like the whole lower end of BC just off one kind of client that got me into a specific niche. I could probably even work on specializing just with them even because there’s enough – there’s 30 then that all have grown websites in Chilliwack only. REUVEN: Wow! CURTIS: Yup! Why don’t we move in to picks? Let’s start with Reuven, open them on the spot maybe. REUVEN: [Chuckles] Yeah, indeed. I have I guess 2 picks, nothing too exciting. Number 1 is, I’ve seen in the last month or so a few postings on Hacker News and elsewhere about what fonts people are using. I think even you guys might have, in the last few weeks, mentioned fonts. So I’m going to try it and then say that after playing with a bunch, I’ve been using “Anonymous Pro” both for my editing and Emacs and on my slides when I get presentations for just plain code, and that has actually worked pretty well. Not that anyone ever gives any comments on the fonts I’m using on my slides, which is reasonable, but it’s me easy on my eyes and easy to read. The other thing is latest version of “PostgreSQL 9.3” just came out pretty recently. It was a pretty amazing database before, and it’s even more amazing now. So all of you people who have ever thought about looking at Postgres, now is the great time to look at it. So I’m going to leave my picks with that for this week. CURTIS: Eric, what do you got for us? ERIC: I got one today; it’s a blog post called “Your Number One Priority”. It’s pretty good and pretty important to read; really short. It’s kind of something that I think everyone, especially if you work at home or work in an office setting, you really need to think about, and I’m not going to spoil what it is, but you could probably figure it out if you guessed. CURTIS: Alright! And my picks, I’ve got 2 today. One is the “Essential Advice for Developers” which this brand new eBook out by Cory Miller just released today. I actually got to read through some of the beta copy as anyone who followed his blog could have by just following the link to the Google Doc for his outline and some of the original copy. I’m excited to read it and just downloaded it before the show so I’ve had a chance to dig through it, but his other books are awesome. My second one is, “Fullscreen Mario” which is the Mario game, the original, in HTML 5 which is pretty awesome. That’s it! ERIC: I think when I played it for 5 minutes, I got to World 4 of 5-2 or something like that. CURTIS: Yeah. That’s why our recording, they gets error because I was too busy playing Mario. ERIC: Da-ra-da-da-ra-da… [Laughter] CURTIS: On that note, thanks for listening!

Sign up for the Newsletter

Join our newsletter and get updates in your inbox. We won’t spam you and we respect your privacy.