What I do as a non-programmer

A few weeks ago Spencer Fry (Carbonmade) posted a nice article about what he does as a non-technical/non-programmer employee/executive at a web-based company. I had already been playing around with a post discussing the same (his is very good) but it inadvertently fell to the wayside while I was…well…doing those things I wrote on my list.

The life of non-programmer at a web-based shop is interesting to say the least. A lot of time is spent either mulling the things that absolutely are necessary to keep the business on an upward trajectory and battling with myself as to whether that thing is actually necessary. That is to say, battling over what to contribute and what not to contribute (I believe the latter is more important than the former in the long run). Additionally, it’s not a rare moment when I’m questioning whether or not I can stay as valuable to the company as our code-contributing staff (who are literally the architects of our future/potential success).

I started in 07 as 50% of our non-programming staff (but 1/3 of our startup). In the early days it was easy to pick up the slack. I was eager to contribute ideas and copy and brainstorming sessions where we laid all of our future successes out like a road map. As soon as I understood the business well enough though, I resigned to do my best to pull my own weight since I was unable to contribute to the code.

Here’s my short list of 9 (but maybe more…) aspects of my non-programming position. Which I might also title my “start up job description”.

1. Test
2. Draw diagrams (but not imaginary screen shots – relational diagrams can help a lot more than “I want this button right here”)
3. find non-technical solutions to user problems
4. be a buffer
5. Build the business: go sell something, find customers, make $
6. Refrain from complexity (don’t spend time asking for additional features, just because you’re not busy doesn’t mean programming staff isn’t chipping away at the most recent revisions, enhancements, bug fixes)
7. write FAQs, site copy, user guide books, make tutorials
8. never use a bug as the basis to add an enhancement
9. PUBLICIZE
  1. Test – never a day goes by when I’m not on the system. I’m a power user. Be it Moodle, proprietary systems or just a home page. No link goes un-clicked, no combination of variables goes untested and no bug is left unearthed. When our programmers think the code is “perfect” it’s my job to point out where things break down or usability becomes confusing or some other practical/common process has been disrupted. I check from different browsers, different operating systems and with different end results in mind. Then I ticket and follow up and repeat. Testing, to me, is really synonymous to providing customer support and it’s either proactive or reactive (so might as well start testing now before you’re trying to test to find out a certain nuance that a user submits later).
  2. Draw diagrams (but not imaginary screen shots – relational diagrams can help a lot more than “I want this button right here”).
  3. find non-technical solutions to user problems. You might also call these “hacks”. If there’s a crazy bug or usability issue, I’ll ticket it. But I’ll also find a way around to ensure it’s not a blocker. Doesn’t load right in IE? Try FF. Doesn’t display in my profile. Unenroll and re-enroll. Blockers get highest priority, so when there’s a back log of those it’s my job to find (and disseminate) workarounds for the non-blocker (but critical) issues. This often means that I’m elbows deep in user interaction, guiding them through ways to fix the issue themselves or fixing this issues remotely to give them the smoothest user experience.
  4. be a buffer: I mentioned earlier that programmers are extremely valuable; that’s why I focus on keeping them out of the focus. The programming staff I’ve worked with is efficient and creates excellent applications for our clients. But they shouldn’t be changing passwords or trouble shooting for specific user issues. This goes the same for the executive/programmer line of communication (if you happen to be at a bigger company). Distractions are costly. If there’s a road map that is worth following, it’s only a matter of time before a client need 0r CEO idea brings you off course. Creating a buffer can help your app “stay the course”.
  5. Build the business: go sell something, find customers, make $, organize paperwork, manage finances (this stuff is the simplest when you’re getting started but it grows and grows in proportion to success).
  6. Refrain from complexity: don’t spend time asking for additional features, just because you’re not busy doesn’t mean programming staff isn’t chipping away at the most recent revisions, enhancements, bug fixes.
  7. write FAQs, site copy, user guide books, make tutorials. I would say that this is probably the 2nd most important role, besides customer support and satisfaction.
  8. never use a bug as the basis to add an enhancement.
  9. publicize/socialize: manage twitter, blog about the business, do the presentation circuit. Whatever you can do to spread the word about your business should be done and done well.

Too small to fail

It irks me that our government copped out of ditching a bunch of crap business by claiming they “were too big to fail.”  Bull crap.

Honestly I think the administration should have forced Ford (the only solvent US car maker) to buy GM and Chrysler.  Ford would have gotten a great deal and would be poised to totally drive American car manufacturing for the next decade at least (until the likes of Tesla or GEM caught up).  I’ve been a GM supported all my life, but that doesn’t mean I believe they “can’t” be allowed to fail.  In real life (at least what I thought was real life), if you make bad decisions continuously, you can/will fail.  Then you own up the the mistakes and regroup.  This is as opposed to unreal life, where we currently reside, where you can drive your company down the tubes, get a huge government bailout and then claim a profit.

He's not that chubby anymore.
He's not that chubby anymore.

That’s why I love the idea and process of launching web-based applications.  As a full-time employee and a work at home dad (I have a 8 year old wiener dog) I have the freedom to invest my spare time (what little there may be) into… well, whatever.

I have a business registered in Vermont.  We’re just getting started, there are two of us as partners.  But we have revenue.  In a sense we made something ($) out of nothing.  Our skills applied created a monthly cash flow that covers, among other things, the cost of this blog and enough for some good business related books and perhaps a breakfast/lunch at our favorite spot in Burlington when I’m in town.

Luckily it’s addicting.  I’m not satisfied with a few bucks a month and I believe I have the skills and connections to get that boosted (and hopefully high enough one day to be my full-time).  My partner has the same expectations.  Of course, it’s great that we have the luxury of spare time and other income to float us (don’t get me wrong).

The best part though, is that we’re too small to fail.  We’ve developed and deployed 1 web app already and are working on an additional while we cultivate the first project.  The total cost to do this?  About 100 bucks a month hosting, 50 bucks a year in domain registration fees and 125 dollars in business registration fees.  Are the apps high risk?  Of course, our time and effort is worth a lot (especially when we’re not paying ourselves), but the cost of keeping going is so low that we can chase whatever projects we want to.  When one fails completely, it just frees up room on the server and time in the schedule.  It’s nice to know that a part of our business could fail and we can keep on trucking.  We just need 1 stock in our portfolio to do well.  In the meantime I’ll keep advancing each.  Stay tuned.