contact Me

Email me using the form to the right, or send me a message on twitter @kvangork


Modesto, California
United States

Flow.jpg

Blog

Endorphin Drippers

Kirk van Gorkom

Clumsy-Ninja-1.jpg

The ninja is cute. He’s fun to play with. Rewards are endless, perfectly timed, and artificially delayed. A steady drip of endorphins—addiction by design.

The ninja is harmless. There’s no danger or possibility of failure. Put in time or money, and you’ll be a winner. No skill or effort required.

The ninja is not allowed on my kids’ iPads.

Games like Clumsy Ninja, DragonVale, and FarmVille guide players though a sequence of predefined steps, where interaction is limited to tapping or dragging a finger around the screen. They leave no room for the player to develop strategies, acquire skills, and achieve mastery. Instead, in a paint-by-numbers scheme, players tap on the marked spot, hope for random chance to give them what they want, or buy their way forward.

This is terrible preparation for life. In the real world, rewards are not automatic and precisely on schedule. In the real world, skill development is necessary to advance, and there will be difficult times where only persistence in the face of frustration will get you through. In the real world, you will not always win.

We play like we train. The time we spend on video games should be an investment: training for real life. There are at least two that I know of which fit the bill and are still massively fun:

  • Minecraft
    Legos for a digital age. A perfect playground for exploration and creativity. My children build amazing things in their various worlds.
  • Portal
    Puzzle solving at its finest. Hours of frustration while figuring out how to get past complicated puzzles only built up the eventual joy and achievement. The look on my son's face when he finished the game reminded me of the how it feels to conquer a hard problem at work.

Take some time to play games. Watch your kids as they play. Think deeply about what they’re being exposed to, beyond the levels of content appropriateness and fun. Think through the emotional connections and real accomplishments, and encourage your kids to spend time wisely preparing for the future while still having fun today.

Stop Subcontracting

Kirk van Gorkom

Part of Consulting Lessons, Learned by an Engineer

It's time for the software development community to end subcontracting.1

We've taken several jobs where our client was merely passing money and requirements down from their clients, and passing our work back up. At other times, we accepted more work than we could handle and hired subcontractors to do a big chunk of it. Both paths have convinced me that this practice is harmful.

We're all finite. It's terrible to admit this, but I have limitations of time and skills. My team has limited time and skills too, and so do you.

It's good to hire specialists as needed to fill holes in a skill set. I hire graphic designers to save me from having to look at my own creations, and it's great that your clients are hiring you to build the things they can't build on their own.

The problems arise when you re-sell the time of other specialists to your own clients, or let your clients re-sell your efforts up a chain. It's even worse if you're trying to do it in secret.

Why?

Communication

Imagine the last time a manager imposed a technical decision or baseless deadline on one of your projects. Interjecting your own limited understanding into the interface between other specialists and your client will produce the same kind of conflict.

Even if the specialist is just like you, there are problems that cannot be avoided. Each contract relationship relies on building a common understanding between two parties. When you subcontract down, you're guaranteeing to your client that you can produce an equivalent understanding with your subcontractor, simultaneously with a contract negotiation and scheduling to actually get the work done.

When have you ever seen such perfect communication and understanding between even two people? It doesn't happen. You're playing the classic telephone game with thousands of dollars at risk.
Compromises and flexibility are necessary for any project, but every layer increases rigidity. Want to accomodate a special request from the client? Better get approval from your subcontractor first, and hope that they haven't subcontracted even further.

No thanks. It's time to stop.

Quality

Emotion and motivation are huge factors in productivity. It doesn't matter how diligent you are, how focused you are, or how amazing your skills are. If you don't care, you won't produce the best.

How much do you care?

It's human nature that the farther removed we are from a project's ultimate purpose, the less we are able to care about it. Whether the goal is delighting users, making money, building a business, humanitarian work—or all of these at the same time—every layer of contract terms, negotiations, pricing, and red tape will diminish the emotional investment of the participants and the quality of work they're able to bring to the project.

Over time, operating at low levels of passion will erode your craft. Don't risk it.

Team Building

Teams are strong because they have common goals and commitments. If parts of your team are literally only present for the money, and not committed for the long haul, you can't invest your resources in developing and bringing out their best work, knowing they might be gone at any time.

The churn of subcontractors will compound your time required to manage the team, as there will be no time or incentive for members to build efficient communication structures—learning how to work together.

Marketing

  • Subcontracting upstream can be momentarily lucrative, but outsourcing your sales pipeline means you'll never know when you'll have work, or for how long.
  • Confidentiality clauses will limit how much you can talk about the work you've done, and keep your portfolio thin. It's particularly frustrating to be prohibited from publicizing the apps you're most proud of.
  • Middlemen have no incentive to send you referral business. They win by keeping you available for their use, and in a weaker negotiating position.

What To Do Instead

Focus on building a portfolio of clients so that you're able to decline subcontracted projects.

Hire a permanent team, not mercenaries. Find excellent people who value the same things you do but have different skills, and commit to building great things together. If you're not yet able to hire a complete team, use your experience and network to be a connector. For example, as an app developer, you know more about working with app designers than your client does, so be a trusted advisor as they find and engage a designer for the project team.


1. For this post, think of subcontracting as whitelabeled outsourcing, and don't forget the series disclaimer about staying profitable and doing what works for you. There are lots of complicated situations in the world. ↑ return

Marketing Basics for Engineers

Kirk van Gorkom

Part of Consulting Lessons, Learned by an Engineer

Marketing is probably the hardest part of business for us engineers. Our world is built on the quantifiable and the real. Without being too uncharitable, Marketing isn't like that at all.

What is, is, to us, and misrepresentation is utterly foreign to our brains. The code compiles, or it doesn't. The build is works, or is broken, and there's no confusion about these things. No spin.

Frankly, this disqualifies us from ever being great marketers. As your business grows, hire someone with the right skills to market for you, but don't waste time fighting your nature and diluting your best skills.

Congratulations!

There's never been a better time to do this. Demand for software development has outstripped supply for decades, with no equilibrium in sight. That fact means you can survive, even comfortably, while making numerous mistakes that would kill a normal small business in any other industry, and while performing minimal marketing work.

At the same time, it's never been easier to start a software development business. You've already done so if you call yourself a "freelancer" or a "consultant" or an "indie", and that has created a situation where despite enormous demand, it is increasingly difficult to stand out and get noticed among the crowd.

Dismal predictions out of the way, there are a couple things that are important to note about marketing:

Word of Mouth & Portfolio

Parties, trade show booths, direct marketing, etc. have failed to bring in any significant new projects for Forge Apps. The only reliable way we've found good new clients is when they see our work or talk to someone who has worked with us.

Step one for those interested prospects is to visit our website.

The first version of our website was terrible. Eventually we were wise and rich enough to hire a designer, and now our website conveys competence and professionalism to prospective clients. If you're not in a place to spend money on custom site development, buy a theme or use a hosted service. Alternately, just host in plain ascii, but under no circumstances: attempt your own custom graphic design.

 Do not let engineers near photoshop, it can only end in tragedy.

Don't be afraid to cull your portfolio on a regular basis. Quality over quantity.

We've built dozens of apps, but after a few years have passed even our best work looks and feels dated. Remembering the effort it took to build my own incomplete javascript framework only to see it obviated by jQuery a few months later was all I needed to get rid of one old project.

Perception

The core of marketing is perception. While marketers will try to build and alter perception, it's important for all of us to be aware of how our actions will be perceived. Cultivate empathy in yourself. The ability to get your thoughts out of your own head and look back at your actions or plans and evaluate how other people will perceive them is critical. Once you are aware of how others perceive you, you're on your way to closing deals, negotiating contracts, and managing projects.

Note: I'd like to dive into my half-baked macroeconomic theories about industry consolidation and inherent instability of some business sizes, but that will have to wait for another post.