Chapter 4

Getting set up

It has all been a bit theoretical and fluffy so far, but don’t worry, we’ll shortly be taking our first steps towards getting a web app up and running. One last thing before we do: let’s make sure that we’re set up effectively for the duration of our web project.

Productivity

There are only so many times you can be patronised by the same advice about minimising distractions, but here it is one more time: switch off Facebook and email, set aside uninterrupted periods of the day, and work at the start and end of the day when everyone else isn’t.

In whatever way you decide that you work best, the one thing you should do is ensure that when you are working you’re as productive as possible. You must reduce the friction between what you want to do and how long it takes to do it on your computer.

Keyboard shortcuts

All repetitive actions should have keyboard shortcuts associated with them to reduce the time spent moving your hand to the mouse, moving the mouse to the appropriate menu item, clicking it and returning your hand to the keyboard.

Learn the keyboard shortcuts at both an operating system level (for example, switching between applications) and for individual software packages.

You can often modify keyboard shortcuts that aren’t immediately memorable. For instance, I regularly use the thesaurus tool in Microsoft Word on a Mac. The default keyboard shortcut requires you to break three fingers each time you access it (Command+Option+Control+R), and isn’t easily remembered. I re-mapped the feature to a simpler shortcut (Command+T) that was programmed for an action I never use (indent first character).

App launcher

Both Mac OS X and Windows provide native support for launching applications using the keyboard alone: Spotlight on the Mac and Quick Launch on Windows. Even so, you may find that third-party alternatives are faster and more sophisticated. From personal experience, I find Quicksilver1 launches frequently used files and applications quicker than Spotlight. Windows users should check out Mighty Box2 and Launchy3.

Folders and files shortcuts

You’ll spend a lot of time working in your web app project directories, so take a few seconds to add shortcuts to them in Windows Explorer Favorites or Mac OS X Finder Places, or on your desktop.

Keyboard and mouse

These two unassuming pieces of hardware are the main interface between you and the computer, so it makes sense to spend a little effort and money on them.

You may not need the multi-touch gimmicks of the Apple Magic Mouse, but make sure that the mouse you choose gives you the flexibility to scroll easily along both axes, and preferably offers a third configurable button that you find comfortable. Don’t opt for a ‘squeeze’ side button if it doesn’t feel natural.

Computer performance

We’ve all experienced the frustration of having to wait for a computer to open or close a simple file, or slowly judder as it processes a complex wireframe that you’re desperately trying to finish. Install the latest software updates, clear out the files and trial applications you don’t need and install that extra module of cheap RAM that you’ve been meaning to for months.

Version control

As your web app develops, it’s inevitable that you’ll occasionally move backwards as well as forwards. Perhaps an experimental feature doesn’t quite work out as planned, or you have to trace the history of a questionable design decision in your documentation.

No matter what your role – project manager, developer or designer – version control software will save you time and frustration, enabling you to view and revert to previous versions of your documents, image files and code.

Each time you want to save a version of a file, usually after it has reached an established milestone, such as a code fix, or a new document chapter, you check in the file to the project repository. The repository is a growing archive of all changes to all files, which can be queried at any point for a particular version of a file.

If you’re working in a team, version control offers even greater benefits, especially if your team is comprised of multiple people with the same role, such as two developers writing code. The repository, which stores all changes to project files, is shared between everyone in the team. As a result, the version control software ensures that if several people change the same file, any conflicts are handled appropriately. Version control software can also offer, among other features, file locking functionality that allows team members to check out a file for exclusive editing.

Version control software has been a popular tool for decades. Consequently, a wide range of options is available of varying price, sophistication and ease of use. Also known as revision control and software configuration management, a search for these terms on Google or Wikipedia will highlight the most popular, which are too numerous to list here.

Let’s take a brief look at two of the most widely adopted, free, open source options.

Subversion (SVN)4

This well-established tool offers sophisticated functionality including merge tracking and file locking, and it can be installed on all popular operating systems. The default Subversion tool is fairly technical to use, but a number of cross-platform graphical apps are available (for example, RapidSVN5) to enable all your team members to easily check their files in and out of the repository. Subversion is a standard centralised version control system: all files are checked in and out of a single, central repository, which is often located on a shared server. If you’re working by yourself, you can just use your computer.

Git6

With a different take on version control, Git doesn’t yet offer the same choice of simple graphical interfaces that Subversion does. If you are technically inclined you may welcome the distributed model over the standard centralised model. Rather than relying on a central, shared repository, Git creates a full personal repository on each team member’s computer. Changes to files are distributed using peer-to-peer technology. This model has advantages and disadvantages: for example, it is a better model to use when network access (to a centralised repository) can’t be guaranteed, but it may inadvertently train team members to work more privately without frequently sharing their changes.

Many web apps are available to ease the use of version control, including hosted Subversion repositories7 and Git collaboration tools8.

Backup

Like eating more vegetables, working out regularly and exercising sobriety, creating backups is usually met with a mental sigh: it’s something that we all know we should be doing, but somehow never get around to. Even though two-thirds of us have suffered data loss, over three-quarters still don’t regularly back up9.

When you lose forty photographs of your sleeping cat, it’s not the end of the world. If you lose part of your web app work, it could affect your career and income. So please, push pass the mental sigh this one time.

Assuming you’ve set up version control, you may already have a basic level of backup. For example, your Subversion repository may be on a separate computer or server, in which case your local working copy has some level of recoverability. Alternatively, you may be using a distributed system like Git, where your repository may be replicated on other team members’ computers.

Even so, this offers only a certain level of protection. You should still implement a dedicated backup solution, so that you retain full control over how and when copies are made and recovered, and so that data that isn’t version controlled, including your emails, settings and software, are also fully protected.

A Google search will highlight an array of native and third-party software solutions for backup, both local and online. A hybrid approach provides the best peace of mind.

Periodic full system backup

Mac users: Use the Time Machine feature to quickly configure a periodic backup of your machine. If you’re lucky enough to have a Time Capsule, Apple’s wireless external backup drive, this offers the easiest solution, as you can set it up and forget about it. Otherwise, you’ll need to connect an external hard drive, either permanently or as frequently as possible if you’re using a laptop.

Windows users: Although not visually sexy like Apple’s Time Machine, versions of Microsoft Windows from Vista onwards offer a robust and straightforward Backup and Restore Centre, accessible under the Control Panel. Use the Automatic Backup feature to define a backup schedule onto an external hard drive or second computer.

Periodic repository backup

You’ve set up your version control software to ensure that you can review and rollback to any previous version of an important file for your web app. Now let’s make sure that this repository of changes is also backed up in case something goes awry.

If you decide to use a hosted repository service, check that they perform off-site backups as part of the package; if they don’t, find another provider. If your repository is located on your local computer, it will be covered under your full system backup, as discussed in the previous step.

If, however, your repository is on a separate computer, such as a server shared among your team, you’ll need to ensure that a separate periodic backup covers this server, or at least the individual repository directories and files. Specifically backing up a Subversion or Git repository can be a little technical: as usual, a Google search provides the detailed information that we don’t have space to cover here.

Online backup

You’ve been slogging away on some brilliant new code for a few days but it’s not quite ready to commit into version control. The last regular backup happened four days ago, like clockwork. What happens if at this point your computer is stolen or your hard disk is corrupted? You can certainly recover from the last backup, but those few days of lost work will cause a lot of frustration and heartache.

Online backup is the simple answer, assuming that your computer is usually connected to the internet. The better online backup apps will continuously monitor the files on your computer, and back up changes to their online storage as the files are amended.

Many online backup services offer a decent free package. As I’m writing this book, my frequent saves (every couple of minutes, because I’m obsessive) are almost instantly synchronised online to my free Dropbox account.

As an added benefit, files that are backed up online can be accessed from other computers, so if you’re somewhere without your work machine and need to access a file, just log in and download the file that you need. Similarly, you can use these services to synchronise files between multiple machines.

One final word on the subject: remember to test your backups every now and again. Make sure that they can be restored.

Twitter

If you don’t have a Twitter account, you should set one up now – even if you’re not a fan of Twitter or you just don’t get it.

You should also dedicate a small amount of time every couple of days to the following Twitter tasks, even if it’s five minutes in a lunch break

Find and follow relevant users

These include potential users of your app, people in the same industry, competitors, and those who use similar technology. You can find people to follow through directory apps like Twibes10 or use Twitter Search11 to discover users who tweet about relevant subjects. Hopefully, many will follow you back.

Establish yourself

Tweet a couple of interesting links or thoughts that are associated with your project. If you can’t think of anything useful to say, find some good links on Delicious and tweet those. You could try http://delicious.com/tag/maps to find interesting links related to a mapping app, for instance, or http://delicious.com/tag/productivity for a productivity app. Include relevant hashtags in your tweets (#maps or #productivity, for instance) to expose them to a wider relevant audience.

Be a good Twitter citizen

Follow back relevant people who follow you, reply to people who ask you questions and retweet interesting links.

This small investment provides you with an extremely powerful tool throughout the duration of your app development. By establishing yourself as a decent, valuable Twitter user, you in turn gain the attention and respect needed to ask favours when you need to. You’ll be able to more easily research your market and find out what planned features will and won’t work; you’ll get speedy answers to technology and design problems; recruiting beta testers will be a breeze; and the difficult task of attracting post-launch attention is given a critical boost.

Think of Twitter as a value conversion app: by investing some real value into it each day, you get to extract value back out when you need to, in whatever form your followers can provide.

Summary

Make the most of tools that increase your productivity and reduce risk.

Web App Success book coverAlso available to buy in a beautiful limited edition paperback and eBook.

This work is licensed under a Creative Commons Attribution 4.0 International License.