Matthew Lang avatar

Matthew Lang

Family guy and web developer

Little reminder ...

... from Adam Keys that you should reserve a place for work only.

The big idea from that article, burning a hole in my head, is that we should step away from our desks when we’re not working (for me, telling computers to do things). Thinking can happen on a walk, standing outside, or in the shower. Socializing can happen from the couch or mobile device. Procrastinating by reading, surfing, social networking, etc. can happen anywhere.

Quit your desk by Adam Keys

A few weeks ago I mentioned that I would be rewriting the Journalong application complete with a new front end that would be more simplistic. I was hoping to do away with the current look of the journal entry page by trying to re-design it. After a few of getting nowhere I've decided to throw in the towel in on the facelift to Journalong. It's given me too many things to think about regarding the user interface. Basically, I'm over complicating a simple thing.

I'm hoping in the next couple of weeks to push the rewritten version of Journalong to Heroku without the facelift. There will be no change to the functionality of the site, there will however be one immediate change that will be visible on the site.

I'm going to do away with the blog for the website. As a replacement for communicating with Journalong users I'm going to create a newsletter. Not only will it be used for notifying users of updates to Journalong but there will be tips and stories from users of Journalong.

The problem with the blog. It's almost impossible to determine which of your customers are reading your blog. Other than subscribing to Feedburner, or a similar service, there's no way to determine how many people are actively subscribed to your blog and interested in using Journalong.

With a newsletter I'll have more of an idea about who's interested in Journalong. I can monitor the number of people who are subscribed and determine how many are actually Journalong customers and how many aren't.

Once this is done, I'll be working on a number of new features that will make Journalong even easier to use. I hope you can all bear with me for the next few weeks. Good things are coming, I promise.

Trello: A Restrospective

For the last two weeks I've been using Trello instead of Taskpaper for managing projects like Journalong. It's really an experiment to see if I can get more things done with a visual system. Previously I was using lists in Taskpaper. It worked to an extent but anything that was at the bottom of list would frequently be forgotten.

So what is Trello?

Trello is a generic organisation and collaboration tool. Yes it sounds like a vague description, but Trello isn't tied to any one particular workflow. Basically Trello is a simple workflow and list manager.

A Trello board consists of several lists like so:

An example of a Trello board

You create cards that you move through the lists from left to right. The lists themselves can be called anything you want and can be modelled after any iterative workflow that you can think of.

A list on Trello

The cards are used to represent individual items of work. It could be a task, a feature for a product, an article you want to write or even part of your wild scheme to take over the world.

A card in Trello

The cards themselves contain a title and a description but can also contain a set of tasks, attachments and even comments from yourself and other users collaborating on the same board.

How I'm using Trello

I'm using Trello in two ways at the moment.

Primarily I am using it to get my finger out on moving some development projects along. Journalong was first to get the Trello treatment and work on it as picked up again since I started using it. I use it mainly to mimick the Kanban way of software development as you can see from the board below:

My Journalong Trello board

As well as using Trello as a way of managing software projects, I'm also using Trello to manage my blog. In particular, my weekday posts to the blog and the writing process involved for each post.

My writing Trello board

I have a backlog of ideas that I want to write about. It ranges from software development to personal reflective pieces. At the weekend I pick five ideas from the backlog for the coming week and assign each of them a day of the week. Then I stick them in the drafts column and start writing each one.

As they are completed they get moved on to editing and then they are ready to be published. While the Journalong board is fine, I might change the process for my blog posts. I don't want to get too bogged down in different steps for each post. I tend to write, edit and queues posts for my blog in the one sitting.

Great device support

What makes Trello great however is the support they have for different devices. It's one of the few applications that I have installed on by my iPad and iPhone. Initially I was hesitant of how Trello was going to be implemented in iOS. However since using it for the last few weeks, It's steadily becoming a favourite in my day to day apps category.

Trello on iOS

The iPhone UI is particularly nice as it lets you zoom in on a list within a board so that you can see all the cards for that list. Everything that you have available in the web UI is available here as well. Checklists, labels, attachment and comments are all there.

It's free!

One thing that you thought I may have skipped over is that Trello is a free for anyone to use. I had reservations about this until it was pointed out to me that the makers of Trello, Fog Creek Software, wanted Trello to be a free product from the start.

There is a business plan that allows organisations to use Google Apps for authentication and to get all their users across without any pain. There is also paid plan called Trello Gold that adds a number of nice touches like changeable board backgrounds and bigger file uploads. The free version of Trello is ideal for most people.

A great visual tool

I've enjoyed using Trello over the last few weeks and I've decided to stick with it for managing projects and my writing. Whether I'll use it for other things like sales leads, invoicing or anything else I can think of will be decided as and when I think I need something beyond a basic list to manage them.

I love the visual side of using a board. You get a clearer picture of where everything is and it means that you instantly know what you should be picking up next. Coming from a background of using mind mapping for a few years, I love systems that use visualisation to convey a message or intent. The nice thing about this tool is that it's visual, portable and adaptable to just about any process that you can think of. It isn't the silver bullet to everything, but if you're having problems getting projects organized and trying to determine where the bottlenecks are then Trello just might be worth checking out.

This post contains a referral link for Trello for which I receive a free month of their paid plan, Trello Gold, for each sign up. If you don't want to use the referral code, you can use this link to checkout Trello for yourself.

My Pyramid of Products and Services

Eric Davis' book on long term contracts, recommends making long term contracts the top tier of your services pyramid. "What's a service pyramid?", I hear you say. Well, basically your pyramid comprises of three tiers of products and services. Your affordable products and services for the masses are on the bottom tier, products and services for specific markets go in the middle tier with your premium service at the top tier. It got me thinking about the tiers in my pyramid of services and products. Do I have services and products in each one?

The Top Tier

Currently the only premium service I offer in the top tier is myself as a Ruby on Rails developer. This fits in with Eric's idea that only your long term contracts should reside in here and that's currently what I have in the top tier. I have a couple of long term contracts for providing myself as a development resource to teams using Ruby on Rails.

The Middle Tier

There's nothing in my middle tier, but that's okay. My top tier provides me with nearly all of my income at the moment, but I shouldn't leave this tier empty for too long. As a freelancer I can't be dependent on any one stream of income. Each product or service should be generating some income for me, but at least for the moment I have a good premium service that I can depend on until I get other products and services in place.

The Bottom Tier

At the moment, the only product or service that I have in my bottom tier is Journalong, my free journaling service for Dropbox. I don't have any other products or services here. There's definitely room for another product in here. Something simple and easy to manage. As for services I'm not too sure. I don't currently provide any short term affordable services that others would want. Well at least I haven't been asked.

There's definitely room here for more products and services.

What Next?

What I have taken away from this exercise is that I need to start thinking about other products and services in the middle and bottom tiers of my pyramid. The gaping hole in the middle of my pyramid requires a product or service or even both. It shouldn't cost more than any micro products and services in the bottom tier but should still be cheaper than my rate as a freelance developer.

As for the bottom tier, I am putting more time into Journalong with the goal of turning it around into a profitable micro-product. I've got a few ideas for other products and services in this bottom tier, but I need to be selective about those. There's only room for so much that I can do, and cramming too much into the bottom tier can take my focus away from the middle and top tiers. I will need to keep prioritising things over the next few months if I'm to have something in each tier of my pyramid.

What's My End Game?

During one of my capture sessions from my inbox, I came across this question in Eric Davis' newsletter from his book on long term contracting:

What's your end game?

It resonated with one of Stephen Covey's seven habits of highly effective people:

Begin with the end in mind

The idea is that in order to know what you want to do, you must first decide what your destination is going to be.

It got me thinking about what direction I am taking my freelancing business in and where I am going to end up. I certainly want to continue to be self-employed for the foreseeable future, but what exactly will I be doing in the future? More freelance work for clients? Consulting? Selling products? I'm not too sure.

I have had work experience with health organisations in the UK including some work in risk management for those organisations. I have prototyped a number of risk and decision management solutions in the past that did interest me. Could I apply this knowledge to building similar products now? Possibly.

Although maybe my destination lies more closer to home. Maybe I'll end up doing something outwith the world of web applications. One thing's for certain. If I'm to progress as self-employed for as long as I can, I need to work out what my end game is for my freelancing business.

The Best and Worst of Freelancing

When I first started freelancing, I thought I had the perfect job. Setting my own hours, working from home and no tiresome commute. These positives are what many people want from freelancing but there's a downside as well.

The downside

Working alone is hard for a number of reasons, but the main reason is that you are in fact alone. You're no longer part of a team, you're on your own trying to build a career with the resources you have available to you. It's not as dire as it sounds, but there's lots of little things you miss when you're working on your own.

The office banter is gone. I worked in a great team of developers a couple of years ago and I do miss the chatting before the stand up and pairing with other devs through the day. You can be the most connected person on Twitter, but it's no replacement for a face to face chat with people.

Then there's the resource part. Everything is on you, and I mean everything. No only do you have to deliver great work, but you also must communicate clearly with your clients, keep your skills up to date, market yourself and about a thousand other tasks that keeps your business running.

The upside

So you're working alone with big responsibilities on your shoulders, but there's an upside to working this way as well.

Having a balanced work life that doesn't eat into my time with my family is why I enjoy working from home so much. Not only do I no longer commute to and from work, but my hours are also dictated by the client work that I do. It's very rare now I work at night now. I fit all my client work in during the day, which leaves me time at night to do work on my own projects, get some reading done but best of all I actually get to spend time with my family.

The other big positive for me is I get work the way I want to work. I get to choose the hours I want to do. Having the flexibility to fit more in my day means that the weekend is left free for more important things like taking the kids to the park or getting myself out on the bike.

I also get to choose the the tools I want to use. It's very liberating to have this choice and not be confined to working with one tool or framework and be restricted by the equipment you can use. I've had my fair share of programming jobs in the past that wouldn't have been my first choice, but now I'm actually in a role where I'm enjoying what I am doing.

The verdict

I prefer this independent way of working. The positives really do outweigh the negatives for me. It's definitely not as easy or straight forward as I first thought it was going to be, but it is providing me with more opportunities to carve myself the career that I want.

Removing the Digital Deadwood

Programmers have always got old code lying around. Forgotten applications, libraries, ideas and other files and folders. Remnants of days perhaps when ideas were rife and ambitions were high. I have those days as well. I have an idea for something, I mock up a quick test with some code and then most of the time decide that it's not simply worth my time investing in it further. What remains behind is a filing system littered with dead folders and files.

Today I started cleaning up those dead end projects.

I deleted old applications that I'm not hosting anymore, deleted ideas for applications and products that I know are not going to work and also deleted a few repositories from Github account. I cleared out a few forked repositories that I had high ambitions of working on but haven't contributed to them.

From there I then started to remove a few applications from my MacBook Pro. I only deleted a few applications, but better to remove them than to have them sitting idly doing nothing. More deadwood gone.

Then I moved onto the online tools and services I subscribe to and removed a couple of them also. A few more dollars back in my pocket each month and that great feeling of removing yourself from a service or subscription that might distract you with an email each week, but you quickly delete it.

Just like clearing your desk or work environment of deadwood files, folders and other junk on your desk, it's also important to remove the digital deadwood as well. Start with your laptop or tablet and remove the applications you don't use, the old folders and files that are no longer relevant. Once your immediate work environment is clear, move on to your work environment in the cloud and trim those services that you don't use anymore.

Keeping a clean digital environment is just as important as keeping your physical work environment clear. You might just end up saving yourself some money or even getting some space back on your laptop. Even better, you might just have rid yourself of a few unwanted notifications each month.

You don't get anything for free in life, and that is definitely true for hosting platforms. In exchange for often what is perceived as a great free hosting offer is in fact a very limited service.

Take Heroku's free plan. It can handle a fair amount of traffic but it comes with a very limited database and if your website suddenly attracts a flood of new traffic then you are pretty much screwed. Heroku's free plan is good for early days of development, but it's definitely not a good starting point for your actual product.

A common complaint I hear from those with product ideas is the cost of funding their startup. In particular, web hosting. I've seen too many examples of products trying to run on inadequate hosting plans, often free or very cheap hosting, that fits the budget of the startup in limiting costs, buts increases the risk of the product's site failing to respond should it suddenly find itself on the receiving end of a rush of traffic to the site.

Being a lean startup doesn't mean you should limit your hosting budget so that you only go for free hosting services. You should at least be aiming for a being able to deal with the odd rush of traffic here and there from blog posts and marketing that link to your product. Marketing campaigns through emails and social networks can generate a lot of traffic to your product. With the sudden rush of traffic is your product's hosting platform going to cope? An unresponsive product means lost customers which in turn means potentially lost revenue. Nobody likes to lose money like that.

I'm not saying there isn't a place for free or very cheap hosting. Heroku's free plan is ideal for small static websites and good for test and staging environments for web applications. However for your products, that you want to generate you money, you need to spend a bit of money on a well provisioned hosting platform. This is a professional product you're selling after all, so why not invest some money in ensuring that others see a stable well hosted product rather than a product that times out with even the smallest surge of visitors?

There's plenty of choices out there and they range from bare Linux servers that you require you to set them up to managed hosting like Heroku. The choice is down to the amount of technical know how you have and how far your prepared to roll your sleeves up.

Being lean doesn't mean being cheap, it means providing a stable product that can scale with a growing number of sign ups and customers. That doesn't happen on free or cheap hosting plans, so spend the extra money on your product's hosting to get a stable platform that will be a step to ensuring that you at least get customers signing up.