Category: Consulting

  • 2015 goals (part 2)

    I met with Susan Hand last week to convert my incredibly long list of goals for 2015 into an actionable plan. By the end of the hour, I had a spreadsheet categorizing my goals into 3 main areas:

    • Consulting (currently my core business)
    • Programs/Products (things that will replace my consulting income eventually)
    • Personal (basically everything else)

    Susan also had me rank each goal according to whether it would generate revenue immediately or later, and whether it was mandatory to get done this year or merely optional. It was a good exercise since it forced me to think deeply about each goal and consider what would need to be done to declare the goal “complete.”

    We also did some preliminary scheduling of goals for each quarter of the year. It’s a great start to assembling a comprehensive business plan for the year. Susan helped me transition from my “brain dump” into something organized, prioritized, and understandable.

    The next steps I’ll need to take to continue developing this plan are:

    1. Using the worksheet we started, spend some more time documenting my “ultimate” 2015 goals and activities for my core business, programs, and personal growth.
    2. Start a 12 month calendar and start blocking out holidays, vacation, travel plans and events. These are the days that I already know I’m not going to be working.
    3. Once I’ve completed the 12 month calendar it’s time to start laying in my quarterly, monthly and weekly plans. I’ll start with what goes in each quarter and then break it down by month. If I’m not sure what month I’m going to do something, I’ll leave it in the quarter list until the quarter gets closer and move it down to the month at that point.

    I want to thank Susan for sharing her time with me. If you’re looking to develop a similar business plan for 2015, get in touch with her. I’ll be posting periodic updates as I continue building out my own plan and executing on it. In fact, I may dedicate a entire post to executing on goals in a few weeks. It’s something I struggle with. I’m sure I’m not alone in this, but in my experience it’s much easier to come up with goals than it is to actually bear down and start doing the work necessary to achieve them. Procrastination springs eternal.

  • 2015 goals (part 1)

    I established some general goals for 2015 in my 2014 annual review, however I’ve since become convicted about being more specific about these goals and describing them in a bit more detail. Fortunately, my friend Susan Hand is a project manager and has graciously offered to donate some of her time this week to assist me in refining and organizing my goals.

    Here’s my not-so-short list of things I want to accomplish this year. These aren’t in any particular order and they aren’t categorized very well. Realistically, many of these probably can’t be accomplished in 2015 (if at all). I’m only one person and don’t have infinite time and resources (though I wish I did). But the first step to accomplishing something is establishing it as a goal. So here we go:

    • Establish realistic quarterly goals for the year
    • Maintain my existing monthly revenue from consulting
    • Finish building my 7 Days to Kick Sugar email course
    • Finish building my How to Build a Transcript email course
    • Hire a contract writer to improve copy for Teascript, my SaaS app
    • Hire a contract writer to create a companion eBook for Teascript
    • Aquire and execute a marketing plan for Teascript
    • Double monthly revenue from Teascript by the end of the year
    • Put Teascript on “autopilot” by automating or outsourcing time consuming tasks
    • Move my blogs from AppFog to Linode
    • Write a new post on my personal blog each week
    • Write a new post on my distance education blog each week
    • Put up Facebook/Google+ pages for my company, Adeptware
    • Put up Facebook/Google+ pages for my consulting services
    • Assist with organizing a local tech conference
    • Present at the Triangle Ruby meetup
    • Present at the Agile RTP meetup
    • Attend Triangle Startup Weekend
    • Build a web site “health check” SaaS app
    • Build a SaaS app to establish, track, and achieve life goals
    • Write an eBook about how to manage variable income as a freelancer
    • Write an eBook about nutrition for developers (or more generally, freelancers)
    • Revise and re-release the Career 2.0 eBook with Jared Richardson
    • Exercise consistently 3 times per week
    • Select and hire a good financial advisor
    • Rollover my old 401(k) to an IRA
    • Pay off my home mortgage
    • Learn more about real estate investing
    • Start attending a real estate investing meetup
    • Find a real estate investor who can be a mentor
    • Aquire a piece of investment real estate
    • Learn more about investing in privately held businesses
    • Invest in a local privately held business
    • Continue on the Specific Carbohydrate Diet

    Yes, it’s a lot. I’m sure Susan will help me whittle this list down to something more manageable. It should be interesting comparing this list with whatever comes out of my meeting with her. Check back next week for those results.

    Have you established any goals for 2015 yet? Is your list as crazy as mine? Post a comment and let me know what you’re planning.

  • Secrets of Effective Nomading

    “Secrets of Effective Nomading” was a lightning talk I was planning on giving at this year’s Ruby Hoedown. Due to my flight arrangements, however, I was unable to give the talk in person. I made a video recording instead. It’s about six minutes long.

    If you’re not familiar with the concepts behind nomadic programming, you might want to read my introduction before watching the video.

    By the way, the Hoedown itself was fantastic. This is the third year Jeremy has run the conference and the presentations were top-notch. By far the best yet. The venue (the Opryland in Nashville) was also quite pleasant, if a little on the expensive side. The expense was worth it, though, if only to hear Jim Weirich present on a source control system that sounded a lot like Git, but wasn’t!

    And of course, the nearby mall complete with movie theater and Bass Pro Shop was just the icing on the cake. (C’mon Raleigh, when are we gonna get a Bass Pro Shop? Charlotte has one.)

  • Nomadic programming (part 1)

    I’m a freelance software developer which means I generally work from home unless a client needs me to be on-site. I don’t mind being alone to a certain extent, but after a few straight weeks it can get pretty lonely.

    Recently, I’ve started doing what I’ve termed “nomadic programming.” Namely, spending the day roaming between various wi-fi hotspots instead of working from home. This has worked really well for me. So well, in fact, that I think the concept needs to start spreading.

    Now I realize there are many freelancers out there who already do something similar to what I’m describing. I think it’s worth “formalizing” the process, though, by laying out the pros and cons of nomadic programming, and then giving some advice on how to actually go about doing it.

    nomad [noh-mad]: (1) a member of a people or tribe that has no permanent abode but moves about from place to place, usually seasonally and often following a traditional route or circuit according to the state of the pasturage or food supply. (2) any wanderer; itinerant.

    Why be a nomad? Why not stay at home? While staying at home has its benefits, here are some reasons why a nomadic lifestyle might be a better fit for you:

    • It zaps loneliness. Let’s face it, being at home by yourself isn’t the most exciting of propositions. Many of us have families and that helps a lot with the loneliness factor. For those of us who don’t, getting out into an environment with other people can defeat that pervasive sense that we are the only person left on earth. (Anyone who has seen “I Am Legend” will know what I’m talking about.)
    • It increases focus. This may seem counter-intuitive at first glance, but let me explain. When I’m at home, the temptation is to wander over to the kitchen for a snack, pop in a DVD, or conveniently set aside my work to get to those chores I’ve been meaning to do. The primary reason this happens is because my surroundings are familiar. It can be hard to focus on work at home because we’re used to doing so many other things there… relaxing with the family, mowing the lawn, picking up after the kids, sleeping, etc. If you’re anything like me, you have a natural tendency to procrastinate and substitute household activities for billable work. Nomadic programming kills this temptation. It places us in an entirely new environment with a new set of stimulations. It snaps us out of “being at home” mode. We can’t very well be tempted to grab a spot on the couch and turn on the TV when our home is several miles away. I’ve found that placing myself in fresh environments every so often greatly increases my ability to focus on the task at hand.
    • It boosts productivity. Hand in hand with focus goes productivity. I get so much more done in a new environment than I do at home. I’m not completely sure why this is yet, but part of it probably has to do with the way our minds work. When we get used to routine, time passes more slowly. We get bored. We get distracted. In a new environment, our minds have to be alert to take in the new stimulation that’s being provided. This alertness yields greater productivity gains. On Monday this week, I spent three hours in the morning coding by myself. I then spent three hours during the afternoon coding with a friend at Bruegger’s. I was twice as productive during the afternoon as I was during the morning. This isn’t because I’m not a morning person. It’s because being away from home and interacting with a good friend yanked my mind out of the routine it had slipped into, and the code flowed more freely as a result.
    • It’s a great way to network. With the aid of new location-aware tools (which we’ll cover shortly), nomadic programming is a fantastic way to meet new people that you otherwise wouldn’t have been exposed too. Let’s face it, the only people we interact with at the local user groups are other programmers just like ourselves. Contrast this with the coffee shop or the park. There is potential to run into a fellow entrepreneur, an insurance salesman, an airline pilot, a night stocker from the grocery story, the guy or gal who delivers our mail, etc. Exposure to a whole new set of people becomes not just possible, but likely. This is, again, an area where routine can work against us. If we get used to being around the same set of people all the time, it has the potential to kill not only our networking skills, but also our chances of meeting people that will stimulate our minds in ways that would not otherwise be possible. We shouldn’t just be learning from fellow geeks, folks. We should be branching out and learning from all sorts of people. Nomadic programming enables this kind of networking to occur naturally.
    • It’s just plain fun! Spending your morning sipping a latte, making a new friend, then choosing to migrate over to Panera together to grab lunch and share ideas can be downright enjoyable. It’s not all about cranking out the code to meet the deadline, folks. If your work is never fun, you’re in the wrong career. Being a nomad can make programming fun again.

    These are just a few of the many positive aspects of nomadic programming. What about the downsides, though? It can’t all be a stroll through the flower bed, can it? No, it can’t. There are some bees waiting to sting us:

    • It can be time consuming. Being a nomad requires travel time between the different places you visit. Depending on how far you travel, this can eat up time that could otherwise be used for billable work.
    • It can be expensive. Many places that offer free wi-fi right now are businesses that expect to turn a profit, and rightly so. It’s not ethical to take advantage of a work location without making it worthwhile for the people providing that location. This means that when you visit a coffee shop, you should order something (preferably something other than water). Add small dining costs like this to the gas you blew getting here and the expense can begin adding up.
    • It can distract from more important things. For those of us with families, it can be easy to get carried away with being a nomad and start routinely staying out quite late. Midnight coffee shops don’t help here. It’s very tempting to just keep working, especially if you’re having good, productive interaction with fellow nomads. This can quickly begin eating away at the time you should be spending with your family. It can be equally tempting to start skipping out on home chores, responsibilities at church, etc.

    While the downsides to being a nomad are real, they can definitely be managed. Wi-fi is getting fairly common, even in more rural areas, so travel time can often be limited. Expenses can be kept down by ordering cheaper items and putting in an extra hour of billable work to make up for what you’ve spent. Distraction is a harder nut to crack, but it can definitely be overcome with a dose of self discipline and some verbal accountability to your family and friends.

    When balanced against the advantages, it’s clear that nomadic programming is a good thing overall. So once we decide the benefits are worth it, how do we actually go about being a nomad? There are a few simple, easy guidelines to follow and several tools that can make the process easier and more fun. We’ll find out what to do (and just as importantly, what not to do) in my next post.

    In the meantime, drop a comment and let us know if you’re doing nomadic programming.

  • Career 2.0 at TriJUG tonight

    Has your career been a random product of your manager’s whims or company’s needs? Never rely on your company to keep your skills current and marketable. Take control of your own career with a proven strategy.

    Jared Richardson presents a talk titled “Career 2.0: Take Control of Your Life” at tonight’s Java Users Group meeting in RTP. If you’re curious about the book we’re working on, come on out. His talk will cover a lot of what we’re writing about. Pizza and networking at 6:30, talk starts at 7.

  • Motivation and goals

    Motivation is generally the natural result of what we’re doing. We’re motivated to get a license so we can drive to the store. We’re motivated to learn a new programming language because our current job is boring. We’re motivated to lose weight because we want to look like the people in the movies. But often, motivation isn’t natural or free.

    Yet most things worth doing in life require the proper motivation. If we have goals that don’t have built-in motivation, it’s up to us to provide what’s lacking. For example, I’m not wild about a consulting gig I’m on right now. The work just isn’t that interesting. I motivate myself to work on the project each day by taking hourly breaks and ending the day with a reward… an hour spent reading a book or watching a movie.

    This is what has worked for me in my particular situation. The things that motivate you will probably be different. Being around certain people can be motivating. Seeing clear progress towards a goal can be motivating. Cash can be motivating. Reading certain books can be motivating.

    Speaking of motivation, Jared Richardson and I have been in the planning stages of a new book for the past few months. We launched this blog to motivate us to move more quickly toward our goal of publishing the book before the next ice age hits. Having a blog about the book makes us accountable to the public. If we aren’t making progress, people will complain. That’s highly motivating for us.

    What motivates you? Tell us in the comments.

  • Integrate GTD with Gmail using Firefox

    Getting Things Done is a book by David Allen. The methodology from the book, commonly referred to as GTD, has become quite popular inside certain tech circles. I’ve been using GTD for roughly a year now. I can’t claim to be an expert at it, but it’s helped me stay organized during a period of my life that would otherwise have been extremely unorganized.

    There are many tools out there that make implementing GTD on your computer fairly painless. For you fellow Mac cultists, Actiontastic does the job nicely with a clean, minimalist interface. There is also Tracks, a Rails-based web application that you can install… well, pretty much wherever. What I’d like to introduce in this post, though, is a unique Firefox extension called GTDGmail.

    GTDGmailI’ve been using GTDGmail for a few months now. Once installed, it integrates with Gmail and modifies your view slightly. Among other things, it divides your tags into four categories: projects, contexts, statuses, and references. As e-mail messages come in, you can categorize them as actions by tagging them with the “Action” status. If an e-mail contains important information you’d like to keep for future reference, tag it with a “Reference” and a “Project.” As you tag your e-mail, it becomes available under GTDGmail’s pre-built search links that appear above your tags.

    You can also send yourself actions and references. This is where the famous GTD practice of “capturing” comes into play. The idea is to get all that stuff floating around in your head out and organized into action items. Sending yourself an action or a reference results in a new e-mail message in your inbox, automatically tagges as an action or a reference and ready to be organized further into projects and contexts.

    GTDGmail also has some handy non-GTD uses. For example, it makes regular tagging much easier by placing links at the top of each e-mail, one link for each tag. Simply click on a link to add that tag to the e-mail you’re currently viewing. Click the red X next to the tag to remove it from the e-mail. This is much faster than scrolling through a drop-down to find the tag you want to add or remove.

    The only downside to GTDGmail is that it does make Gmail less responsive. Since GTDGmail has to overlay Gmail’s existing layout with additional information, it can get bogged down at times. However, the upside of being able to immediately categorize your incoming e-mail into action items more than makes up for this. GTDGmail is not for everyone, but I encourage you to try it out to see if it fits your own organizational style.

  • Resources for entrepreneurs

    Check out Lifehack’s list of resources for entrepreneurs. It’s an incredible collection of useful sites and blogs with advice ranging from how to start a niche business to how to maximize your Google AdSense income. I’m at the stage right now where I’m trying to learn as much as possible about what successful entrepreneurs have done to actually be successful. A resource like this may be the closest I can get without actually shadowing someone.

  • How does one handle busy days?

    My new consulting business, Adeptware, is in its second month and today I got slammed. Phone calls and e-mails with potential clients, a trip to the bank to get my new DBA forms copied for my accounts, an evening planning session with the calendar, installation of a new domain name and web site for a client, etc. My rhetorical question is this: how does one handle such days? A day with barely any time to breathe. A day in which I’m happy to have new business, but wondering how to fit it all on my calendar. I don’t expect an answer. Tomorrow will most likely be dead, except for the Ruby Meetup which I’m hoping will be packed again like it was last month. I’m beginning to think that’s just the way it goes for us self-employed chaps.

  • Announcing Adeptware

    Adeptware :: Software consultancy specializing in Ruby, Java, .NET and PHPI’m pleased to announce that the web site for my new software consulting company, Adeptware, is now live. Half the battle in starting something new is picking a good name for it. The name was the result of a combination of suggestions from my family. I’m quite happy with what we came up with, and even happier that the domain name was available. I plan on expanding the site later on, but for now it’s suitable for what I want to say.

    My goal for the company is to solve clients’ business problems through custom software development in Ruby, Java, .NET and PHP. I’m also interested in helping clients implement agile processes in their own environments, especially automated testing and continuous integration, two things that I’ve had a lot of experience with.

    I plan on leveraging my background in agile methodologies and a variety of programming languages and techniques to create compelling, durable software for clients. Whether you’re a startup, small business, or Fortune 500 company, I’m interested in working with you. If you’d like more information, feel free to contact me via the web site or simply post a comment below.