Transitioning from full-time code monkey to consultant?

Jonathan Scott's Avatar

Jonathan Scott

26 Jul, 2011 11:27 PM

Hey all,

I'm currently working for a large enterprise software company building large Flex apps. RL has been a godsend for this, but the "big company" aspect is dragging me down.

I look admiringly at some of the RL gurus like Joel & Stray who have their own consulting gigs, work from home, and are their own bosses. I'd love to bring my architecture skills to the table and work on smaller more agile projects, instead of maintaining this beast of an application forever. However, it makes me nervous to think about giving up a well-paying steady gig for something more risky.

Has anyone made the transition from full-time to consultant in the Flex world? Any words of wisdom on how to (or how not to) do this?

I realize this is a bit off-topic, but I see the RL community as the cream-of-the-crop cross-section of the Flex community so I figured it would be a good place to ask.

Thanks!

  1. 1 Posted by Stray on 27 Jul, 2011 09:30 AM

    Stray's Avatar

    Hi Jonathan,

    Good questions! I was going to write a short answer and then I wound up writing an essay ... I hope some of it is useful. I've pulled out the key points here:

    • There is no such thing as "day rate" or "hourly rate" work in the real world - clients are always paying for features.

    • Agencies have contacts but also scrape off a huge margin and are never invested in the long-term decisions.

    • There will be clients who screw you and don't pay, or pay so late that you burn money maintaining your cash flow through debt. Assume at least 10% reduction in your gross income for that. If you take on work that involves you hiring other people then assume a 20% reduction in your gross income because you'll need to pay them even when the client stiffs you. If you hire more than one or two other people then take a further 10% hit because of the unpaid project-management you'll be doing.

    • When you find a good client it's worth over-delivering to get more work from them rather than work with the agencies and non-paying idiot clients.

    • My net hourly rate over the last 4 years has been £10 ($16) overall. That includes writing books, doing work pro bono and the projects that I got screwed on until I gave up working with agencies, and deducting all my business costs including paying freelancers (sometimes at a loss). For every hour I worked, £10 wound up in my pocket.

    • I work about 2500 hours a year. But I also get to take long holidays, dictate my hours etc.

    • It's never worth building up technical debt - it will always cost you (personally) more in the end, and the longer you leave it, the more it costs you. Extract yourself from situations that force you to build technical debt as quickly as possible, and don't work with those people again. Every hour you spend maintaining bad code that you were forced to write in a hurry is an hour that you're not writing the code that will let you invoice the next project.

    • Make a clear list of what you don't do as well as what you do, and stick to it. For example - we found a correlation between "flash websites" and "nightmare clients"; I stopped taking on projects that would be better done in HTML, and I've never regretted it. (I believe the correlation is vanity - and vanity sites are a bottomless pit). I don't take projects where I can't see the end goal as being valuable. I don't enable clients to make terrible decisions - either for themselves or for their end users. If there is an adequate and cheaper off-the-shelf solution I just point the client in that direction and don't take the work - you don't want these jobs anyway.

    • I highly recommend it for the sake of sanity and enjoyment. Financially it can suck, but it can also be rewarding, and there are ways to get a bit of both worlds if you can suck up the corporate stuff for brief periods. (I can't).

    • Tim O'Reilly has a one-line manifesto for alpha-geeks: "Do something that matters." That way, if you don't get paid, or you end up working a ton of hours more than you expected, or you miss out on social events because of deadlines - at least it was in pursuit of something that mattered.

    Good luck!

    Stray

    ----

    True consulting makes up only about 5% of my work.

    I have a very small company (myself, one more full time dev, a designer/animator who works with us 50% of her time) and our main work is on a product we built for a large engineering company, which we also then sell to other smaller engineering companies.

    So - my day-to-day is on a large project (70k loc + tests) with a code base (Robotlegs of course) that is almost 2 years old now - what makes it fun is that we release new features all the time (we release weekly on average), and we've got a great relationship with our clients. It helps that they're engineers - they 'get' the process!

    It's an e-learning product, highly interactive, and we produce the lessons as well (which are swfs) - so I get to architect mini-projects for the lessons too - games, interactive exercises, reports and so on. And because I'm the boss and lead architect, I love being able to say "yes, we can!" when the client has an idea.

    I also take a few small projects each year, generally these are as favours to old clients that I liked working with and want to keep a relationship with. I usually under-charge and over-deliver on these because I'm really only interested in building the thing - and I'll negotiate that I can use the code for teaching or blog posts in return.

    I do work from home, I don't have a boss, I am absolutely in control of my project, and I love the code and the process. But my pay is neither good nor steady :) That's a choice though - I like to leave space to write books, which doesn't pay at all, and I choose the gigs that make me happy, not the ones that make me rich. I also have some long-term health problems, and I take a lot of holidays - so I guess in an average year I probably only work 9 months - but I work 6 days a week when I'm working, and 10 hours is a short working day!

    I like to over-deliver if it feels like I'll learn something from implementing an extra feature, so I add my own ideas to the product as well. Our clients appreciate this and it's how they justify to their bosses bringing such a large project to a tiny company (when I'm off sick or on holiday and they have to wait for something).

    I have stopped working with agencies - the model just doesn't make sense to me. In the end we always got screwed because the client wants a piece of work worth X and the middleman wants his (fat) cut, so we frequently found ourselves trying to do it for X/2 or even X/3. I know others who do like this way of working, but the agency is never invested in the long-term so they rarely make decent decisions.

    I also got burned a few times by working with agencies who were so ignorant that they promised the clients things that weren't viable, and then either the client didn't pay because their expectations hadn't been met, or the client paying became conditional upon us doing a whole load of extra, unpaid work. In some cases we never got paid, and - worse - I still had to pay the freelancers who had helped me out, and in another case I wound up taking them to court and got the money but it was a total hassle.

    It's easy to be attracted by a 'day rate' but the reality is that (in the UK at least) most clients don't have an open ended budget, and so almost all projects are on a fixed-price basis once you get honest about it - they'll pay your "day rate" up to X days, but they're still really paying you for features not time.

    The consequence I most frequently see from pretend "day rate" pricing is that the client gets nervous if you don't make the progress they can *see*. Then the agency leans on you to rapid prototype a visual spike. Then they want *more* features the next day, so the spike becomes the basis for the final product, and you never get the opportunity to go back and build it the way you intended. Then you're working hard *and* you hate your code, and that's a crappy existence whatever the "day rate" was.

    If you're potentially going to have to maintain this monstrosity, you then have to consider whether you rebuild it on your own time (which I always found myself doing) or wind up trashing your reputation (and your sanity) through the bugs that inevitably emerge and the difficulty of adding more features. Yikes! Robotlegs can help with this to an extent but it's not a complete solution - you can still create horrible code in Robotlegs by taking shortcuts.

    So - I'd consider my day-to-day role to be one of product development much more than consultancy - but we had an original client who was prepared to part-fund the product's development. What's awesome is that the client is now selling our product into other large companies - they can recoup some of their development costs that way and we get the extra work producing more content (at a profit). So I hope that my earnings will go up over the next couple of years purely through that.

    It rather depends how much money you *need* to make - I don't think Shaun (Darscan) would mind me telling you that he does a mix of really well paid on-site consultancy at city companies, and then long periods of building his own projects because the money can tide him over.

    My family and I live a pretty cheap life - so I have the flexibility not to need to earn big bucks right now, though I do need to up my earnings in future. Joel has 4 kids - so his needs are somewhat different!

    In the medium term I'm interested in this idea: http://grouptalent.com/welcome

    I'd like to have a network of Robotlegs devs that I can work with to turn around really nicely built projects very rapidly - Robotlegs lends itself so well to that kind of work.

    It's one of the things I'm hoping might emerge out of the try { harder } experiment - some ideas for how we can collectively leverage our talent.

    Stray

  2. 2 Posted by Stray on 27 Jul, 2011 09:37 AM

    Stray's Avatar

    I just realised that it's worth pointing out that going to work used to cost me around £3000 ($5000) a year, between transport and extra lunch costs and so on - so you should remember to factor that in to your financial calculations, as that comes out of your net income.

    Stray

  3. 3 Posted by Jonathan Scott on 27 Jul, 2011 04:51 PM

    Jonathan Scott's Avatar

    Thanks Stray! This is very helpful information, and it's great to know the pros and cons. The grouptalent idea is intriguing... I'll definitely check it out.

  4. 4 Posted by Toti Fanara on 27 Jul, 2011 06:06 PM

    Toti Fanara's Avatar

    Many thanks for the very insightful post Stray! And of course also thank you Jonathan for sparking it with your great question.

    It's a very good idea to add the costs of transportation and meals. To that I'd add also the resources spent on increasing personal skills whether that's buying books and other didactic materials, attending courses, participating to conventions and so forth... that too will come out of your net income. Those are expenses that will vary from case to case and while in some instances may be nearly negligible, in others will be a substancial amount that should be definitely factored in.

    Obviously any other expenses that are taken out of your net income should be added to the balance sheet to get a precise idea of what's the real amount being earned once all expenses are accounted for.

    Thanks for sharing the grouptalent link, about that I have a quick question:
    Employers may be concerned with protecting themselves since through a such system product ideas may easily leak and be replicated. That's usually a delicate topic difficult even to solve when hiring in the conventional manner (face-to-face) and many companies require to sign documents that are a somewhat deterrent and aim to discourage a possible replication binding the hired entities by means of some legalese mumbo-jumbo (although often that wouldn't stand much of a chance in any US court). Just a curiosity... you may think about this "product idea leak" as something like the story behind the idea of Facebook (just to mention an example that may paint faster what I am referring to here), where Zuckerberg would be the dev team and the Winklevoss twins, the employer.

  5. 5 Posted by Stray on 27 Jul, 2011 08:22 PM

    Stray's Avatar

    Hi Toti,

    I don't sign contracts (except for publishing contracts for books).

    In the end all relationships are based in trust and it mostly we add value outside of the space that can be contracted - so instead I like to be up front about this and discuss it with my client.

    I always tell them that they are free to walk away from our arrangement at any time - and then the onus is on me to keep them.

    They are often a little surprised, but usually once we talk about it for a while they realise that it's a good thing.

    All ideas in our space are inherently made valuable by their execution - I'm sure a whole bunch of other people have started failed replicas of Facebook - but only a limited number gain traction.

    People who worry too much about this stuff are clients I don't want to work with anyway - I like pragmatists!

    Stray

  6. Ondina D.F. closed this discussion on 27 Aug, 2012 10:37 AM.

Comments are currently closed for this discussion. You can start a new one.

Keyboard shortcuts

Generic

? Show this help
ESC Blurs the current field

Comment Form

r Focus the comment reply box
^ + ↩ Submit the comment

You can use Command ⌘ instead of Control ^ on Mac