Matthew Lang avatar

Matthew Lang

Family guy and web developer

Time to Grow?

I always keep my ear to the ground when it comes to local businesses starting and closing in my local town. You never when an opportunity might arise.

A couple of months ago I noticed that a hairsdessers, whom I used to be a customer of and got to know the owners well, had closed down. This morning I found out that the owners (a married couple) were still working locally, but had decided to rent chairs in another local hairdressers so that they could continue to serve the customers that they had built up in their own business.

Being a business owner with staff is a huge responsibility and one that isn't easy to depart from. Once your employing staff and delegating duties to them, it's your responsibility to steer the business in the best possible direction, whilst also ensuring that your staff contribute and are paid well for their duties.

I've been in enough small businesses over the years to see this first hand. Sometimes the business owner does a good job and sometimes they don't. The majority of the time though, I've seen the bad side of this. The business as an entity isn't doing well enough to support it's staff which usually results in the laying off of some or all of those staff.

For whatever reasons you have as a business owner for closing down your business, it can't be an easy decision to make when there is staff involved. If you've built up a loyal army of staff over the years that can be depended upon, how do explain that they no longer have a job when your business closes?

As much as I would love to expand my freelance business over the coming years into a registered company with staff, I keep having to remind myself that there's a huge responsibility to employing staff and ensuring that there is enough there for people to be paid. I've been on the receiving end of three redundancies. I'd rather not be the guy on the other side of the table giving them out.

For the moment I'm happy to plod on as a single freelance developer providing a service and value to my clients. I only have myself and my family to look after and that's enough for me.

One thing that I will need to focus on this year is increasing my client rosta for my freelancing business. With just a handful of clients at the moment, I definitely have enough work to keep me going for the foreseeable future, but what happens when the work for those clients dries up? At the moment I have enough savings to see me through a few months of absolutely zero work, but that's not the fallback plan I had in mind.

Before I actually find clients though, I need to determine what value I can offer these clients, and that's where I need to start work. Approaching clients is one thing, but unless I can sell something of value then I am definitely not going to appeal to anyone.

Technical Value

Looking back at the last year of work, it's clear that my strengths now lie in the following stack for web development:

  1. Heroku for application hosting.
  2. Ruby on Rails as my chosen web development framework.
  3. Cucumber and RSpec as a testing stack I'm well versed in but I would actually prefer to be digging more into MiniTest, the test library that is now included in Ruby.

Selling this as a value though could be done with testimonials from my current customers, as well as showcasing some of the web sites that I have worked on over the last year.

The other option for displaying my value on this topic would be to write a book on one aspect of my development stack. I am leaning towards Heroku as a favoured choice having seen very little books in the past on Heroku. However Heroku is such a well documented service, would I be simply duplicating the docs that Heroku have? I would need to provide something more than the basic docs. Tips and strategies on getting more from Heroku while being able to keep costs down would be a good place to begin.

Knowledge Value

As for the my specialised field, I've been building web applications in the healthcare sector for the last 12 months. It's a sector I'm very experienced in having previously worked in the NHS and also having worked for a software provider whose main customer was the NHS.

For a product idea, I am currently building a CMS targeted at GP surgeries in the UK. The proving ground for this product is going to be the GP surgery where my wife is the practice manager. While building the CMS for this practice, I'll be able to get invaluable feedback from my wife who will be the administrator for the site.

Having this knowledge of the health sector would allow me to focus my attention on chasing clients similar to this. While many developers might have the technical skills that match mine, I will be the more valuable option for having the knowledge of the sector to help these clients.

I'm definitely not setting this in stone as the only two options for the year, but it's a start. I'm putting an emphasis on these two forms of value, as I am trying to attract clients that are looking for either of these forms of value, but it would be ideal if they needed both.

Apps - Free Isn't Free Anymore

Well on the app stores at least.

It's been bugging me for a while now, but you may have noticed the number of games on Apple's App Store that are free. There's quite a lot of them actually, but some of them are not in fact free despite their price.

There's a growing trend now of games that are utilising the In-App Purchases (or IAPs from here on in) ability in apps to subsidise the fact that the game is free to install. It's a freemium model really. Give the game away and then charge for extras. I first noticed it on the game Kindgom Rush, but this game can easily be completed without the need to purchase any of the additional characters that the game offers.

In other games though, the list of IAPs is there as an assist to players to finish a level or the game. Candy Crush Saga and Bad Piggies are two such examples of games in the App Store that employ this model. The purchases are enough to make think they're a one off, but I suspect that this is not the case with many people. Considering that King's (creators of Candy Crush Saga) monthly revenue was allegedly once reported to be half a million dollars a day, it's easy to see how those little purchases can add up given how popular the game is.

Here's the problem I have with IAPs.

I have two sons, a one year old who is too young to talk, never mind understand the value of money, and one seven year old, whose life revolves around technology.

I limit my oldest to the number of games he can have on his iPad and the amount of time he spends playing them. Nothing wrong with that. What's troubling though is the amount of times he has asked for IAPs for games from me. I'll let him make IAPs for the games he really likes but not on a frequent basis. Also, all his IAPs come out his own pocket money. It seems that a growing number of games are adopting an IAP purchase to unlock new features or get new addons. To an adult it's easy to say no. To a kid it's not so easy.

Like all trends though, today's hot new game is always going to end up the next day's old news. Which means that the money you can spend on IAPs for games, can be wasted if that game is no longer played with. It's not a major problem in our house now, as our oldest is extremely limited to the IAPs he can make. How annoying would it be though to spend so much money on a game for it to be deleted and never played again?

Mobile game developers have no obligation to only producing one-cost games, but it would be nice to see some of these game developers move away from the IAP model.

I grew up in an era where the computer game was a one off cost. You paid for the game and then you played it as often as you like. Console games are getting more and more expensive, but they are getting better and better, and most games offer hours of entertainment for that one off cost. It's an investment, but one that I think works very well, especially when you have kids that love gaming.

Thankfully companies producing games for the Microsoft and Sony games consoles are still following this model for the next generation of console games, but how long before we start seeing even these games adopting an IAP model?

I'm not sure that will happen to the level it's happening in mobile gaming, but I know one thing. I'm more wary now of those 'free' games that are topping the charts and proving to be hits with the kids. Even though they're listed as free, I know that for most of them, they're not really free.

Budgeting Your Apps & Subscriptions

As part of my smarter budgeting theme for the year, one area I'll be looking to budget better for is the amount of money I spend on apps and services on the Internet.

It's no secret that I like to pay for the services I use. It just makes sense to support the products that you love to use. That's what keeps them in business. We all have preferences for the tools we use and how we work, but I thought I would share some of my thoughts on keeping your apps and subscriptions in check.

Keep A Budget

Common sense really, but things can get out of hand if you keep on subscribing to multiple services or subscriptions on the Internet. Set yourself a monthly budget and make sure you keep within that budget.

App stores and easier ways of paying online make instant purchases too easy to do now. You can quickly spend $20 or more in a few minutes on apps and services. Review your budget each month and be ruthless with making cuts to your monthly subscriptions.

Ensure you're leave yourself a little room in your budget for experimenting with apps. You can't trial an app before buying it, so leaving yourself a little room for trialling a couple of apps a month.

Find Value

I pay for things that give me value. The same goes for apps and subscriptions as well. I subscribe to a number of email newsletters, but they all offer some form of value. It's easy to subscribe to a newsletter thinking that it's $5 per month, but are you getting value from spending that money each month?

I think it's hard to quantify value, but the way I see it is that if I use that app or service on a daily basis then I'm getting value from it.

Don't Double Up On One Device

Having multiple apps on one device that do the same thing is a waste of money and time. At one point I had three apps on my iPhone for writing. Each was used for a different form of writing, but I've learned now that I can use one app more effectively for all my writing on my iPhone.

Doubling up on apps means that you also need to spend more time learning how to use those apps. Why spend the time learning about two apps when you can really master the one app.

Apps Can Vary Across Different Devices

So I mentioned there that I had three apps on one device, but what if you have a phone and tablet? Well in this case, you can use the same app for both devices if you can. If the app can work for you well enough on both devices then use it.

However, with devices having different form factors, it makes sense to use different apps that play to the strengths of each device. Yes you'll end up with multiple apps that do the same thing, but the money spent is justified in getting a tool that makes the interaction you need easier.

These are just some of my thoughts on the budgeting of apps and subscriptions. They're basically the guidelines I use to keep myself from throwing away money each month and drowning myself in unnecessary apps and subscriptions. I hope they can help you too.

Time for a Reboot

Alan Francis wrote a really great article at the start of December about how he wanted to get back to his Extreme Programming roots and start programming deliberately. If it's too much for some of you then here's a non-programmer translation.

Programming by coincidence is where programmers make assumptions on the code that they are writing. These assumptions lead to code that isn't completely tested and could lead to problems in the application the code was written for. It's like acting on automatic pilot.

I looked back at the last year of programming I did. I opened the project I had been working on for the most of last year and did a code review on it. In general the code was okay, there were tests to cover the core requirements, and I had refactored when I could, gradually trying to improve the code with each iteration. However there was still gaping holes in the code that I should have investigated further. These parts of the code are tested but they are not tested extensively for edge cases, and that's where the bugs can happen.

When I was first introduced to agile methodologies in software development, I read the Extreme Programming website and another book, The Pragmatic Programmer. Both were excellent sources of information and let me taking my first steps in the agile world. Since then I've tried to improve my agile skills with every project I do.

After reviewing the code of the project in question, I couldn't see evidence of an improvement from my time working on the codebase. I seen lots of features that I implemented, but not much else in terms of improvements in the making the code better. When I thought back, I was aware of the features I was implementing but I didn't take the time to really think through the features and their impact on the code. It hasn't cost me any late nights in terms of application crashes, but it's not a road I want to go down.

So this year I'm focusing on a little bit of a reboot for my software development skills. Out goes the new programming languages, the new project ideas and the rest of the programming books I promised myself to read. Back in comes a collection of programming books that I haven't read in over 10 years, but books that I know will get me back on the right path again.

The good habits and practices of great programmers haven't changed much over the years and they probably won't for the next few years. Programming languages and frameworks will come and go, but the ideals and skills that many programmers pursue are still the same as they were 10 years ago. Sometimes it just needs a little time to remember them and go over them again.