Yeah that hustle porn is all bullshit. I'd rather go back to bartending as I did in my 20s than be one of those losers.
Thank you for the encouragement. I'm giving this serious thought. One of my 2020 goals is currently vaguely defined as "invest into the professional growth of others".
Kinda depends on how large your product / project is. I work as a (mostly) solo dev on very large projects that are typically completed by teams of 5-10 and take 6-12 months to complete (even for a those teams).
* Pivotal Tracker is IMO the best agile PM system.
* I break each project into Epics, then down into discrete Stories, basic agile stuff.
* I only score stories at 1, 2, 3, 5, 8, 13. Anything larger MUST be broken down.
* Any story scored 8 really should be broken down into smaller pieces. Any story scored 13 MUST be broken down.
* I use Harvest to track time against individual stories, and require that any subcontracted developer do the same. This allows me to determine for any given dev, including myself, how much actual time a given point weighting equates to.
It's a lot of work to do this at the outset of a big project and feels very waterfallish. And it's tiring to think so deeply into implementation details. But it's very much worth the effort.
My personal pattern is to whittle the project down in multiple passes. So Pass #1 is just breaking things into Epics. Pass #2 is breaking the Epics into 8 or 13 point stories. Pass #3 is breaking those 8/13 pointers into 1/2/3/5 stories.
I absolutely do not open an IDE until this process is done. It's so tempting to just start writing code. Avoid that temptation. :)
At this point, almost 12 years in, I've got what salespeople call "time in territory". I'm known to a small but always growing group of executives who change jobs every few years. Fortunately they see value in having me come in to their new company on a basic consult, and often these basic consults turn into more extensive projects.
In the beginning I worked my ass off, frequently for next to nothing, just to make connections, deliver quality work, and build experience. When I was getting started in 2003 this meant writing an ecommerce site for my girlfriend's employer, taking gigs on Rent-a-Coder, and doing small jobs for the employers of friends.
The biggest thing has been maintaining relationships with contacts. Stuff like the occasional email to say "hey, what's new with you" or "I'm going to be in your town, let's grab a beer." It's fun to stay in touch with people and be someone that takes an interest in them and their growth. Sometimes this leads to business, but that's just a by-product. The objective is to build good relationships, as cheesy as that sounds.
Yeah, time estimation is really tough. When I started I figured out I just needed to take my time estimate and double it. Then I got really analytical about it. Now I take my gut estimate and add 20%, but I've also gotten away from time-based billing into value-based estimating (that's a whole other very deep subject).
The "really analytical" phase wasn't too crazy by HN standards:
- Break the complete project in Pivotal Tracker down to stories no larger than 8 points
- Track the time spent on each story in Harvest
- Use that data to figure out how much time a given point score equated to, along with variance.
- Work to reduce the variance.
I should also say...I've been estimating software for, good god, I haven't done this math lately, 18 fucking years. Do anything repeatedly that long, your instincts become pretty solid.
Man, been there. You have to act fast and aggressively to demonstrate that value that you've been providing to the incoming manager. And even then, you don't always win.
At the same time, once you reach a certain point, you can become choosy about who you work with. I maintain the client relationships I do because I like the people I work with. If someone new comes in, they're not value focused, they just want to bring in their guy no matter what, well, bummer, but attrition can't be completely avoided.
> certainly have a huge base of developers out there who need help going out on their own and could use some coaching on the business and sales sides.
Yeah? I was really planning to make a move in this direction in 2020. Another investment opportunity combined with imposter syndrome has put this on hold. Mostly imposter syndrome if I'm honest.
But...I should do this, work to help other devs move out of their employer's house and out on their own. It's as rough and shocking as those first few years outside of mom and dad's but man...if you can make it through the initial bits it's worth it.
well, it's not the sexy stuff that creates "Show HN" posts! :)
Complex public facing sites for mid-size to large corporations. "Complex" meaning custom-written 3rd party integrations, highly interdependent content structures, and often tricky data migrations from incumbent platforms.
Internal process management tools. But! These tools are just the digital manifestation of a consultation where we do a deep dive into the client's existing processes to optimize and streamline them before we set them in concrete with code. I refuse to wrap software around rubbish processes.
Yes, the pivot into consulting is hard. It's a lot more abstract than "I will build you widget X for $Y", which is a hard enough business in which to get initial traction.
The first shift for me was making a mental shift from "I provide widgets for dollars" to "I solve problems, sometimes software is involved". This altered the way I price my services and how I communicate about them to current and prospective clients.
0. Make sure your house is in financial order. If you are a habitual user of credit cards, have high monthly debt obligations, and no saving, before you even think about going out on your own, change that.
1. Audit your ability to estimate time and hit deadlines. Most developers are rubbish at knowing how long a project will take, even a small one. Make sure you can hit a deadline. This is more important at the outset than your ability to estimate.
2. Start thinking about yourself as a provider of solutions rather than as a developer. You happen to have the superpower of being able to create software, but that's just a tool. Real value is delivered by providing solutions to problems within a business.
I could write pages on each of these points, if you have further questions I'm happy to answer.
Getting your first client, a couple ideas:
- Talk to small marketing / ad agencies in your town that won't have internal developers, offering to put some technical muscle behind what they're doing for their clients.
- Look for people in your personal network that could benefit from your superpower. Offer to build tools to solve the issues they're dealing with.
These are super generic ideas, I can offer better and more targeted advice if I know a little more about you and your skillset. Hit me up at [email protected].
I work in a niche of sorts, so the sales channel is 100% word-of-mouth referrals.
My champions are executives that tend to move from one company to another every few years and usually bring me in when they've got a new gig. Also, each new company provides the opportunity to build new relationships with new people who themselves move on to new companies, and the cycle continues. :)
Thank you for the encouragement. I'm giving this serious thought. One of my 2020 goals is currently vaguely defined as "invest into the professional growth of others".