As a consultant I am called in to solve specific problems and I would like to start working on the problems at hand as soon as I can. But, very often, there are other problems that I have to overcome before I am able to spend my time on the problems I am being paid to solve. Here is my wishlist.
A Reliable Internet Connection
Most people in Sweden have a really good Internet connections, but it is
surprising how many big companies don't. Even more surprising is that it is not
seen as a major problem. A consultant usually costs at least 100 euro an hour,
having us idle because of a slow network is bad business practice.
Some companies even take it further. If the connection is not flaky enough they
make sure there is an even more flaky proxy that will make sure that every task
performed will take special work since many of the tools we use for daily web
development are not easily configured to work with a proxy.
Please give me fast, reliable networking without obstructions.
I want to work with my personal computer. I have configured it to make me as
effective as possible and I don't want to be forced to work on another computer
just because that is corporate policy. Having my personal computer also allows
me to work from wherever I am, at home, on the train, etc. Sure, I can
configure the computer that I am given to work the way I want it to work,
but that is time spent on a different problem than I was hired to solve.
Software as a Service
I also find it frustrating to have to use legacy tools. Many of them are not
working well and I would like to do without them. We are living in the era of
Software as a Service and a lot of the best tools are provided as services and
as a consultant I already have accounts for them and it is only a click a way
to allow me to become part of the company team.
I have an email address. A remarkable thing about an email address is that it works no matter where I am.
I don’t want to use corporate email and be part of various groups that I care nothing about.
I want to use my own email that I can access from anywhere through a good interface.
If a company is using Github that means that I can be setup and working on the
source code in a matter of minutes.
Apart from being easy to setup and familiar to me, Github has a number of
advantages over other solutions.
- Built-in markdown parsing allowing documentation with simple navigation to
other documents, issues, code, pull-requests and commits.
- Issue tracking seamlessly integrated with version control allowing for easy
tracking of issues through the code.
- Visualization of branches allows developers and other interested parties to
see what is being worked on at any time.
- Pull-requests is a simple way for developers to do code-reviews and to
communicate publicly about code.
Most teams I work with often work (or try to work) with an agile process. This
often means that we use a Kanban board of some kind. I have tried a number of
them and Trello is the one I like the most. It is lightweight, provides (near)
real time updates to the board, and it has clients for Web, Android and IOS.
This makes it easy to see what is being worked on and easy to update or add
new tasks even if I am not at the computer.
Travis is continuous integration as a service. It is ridiculously easy to set
up and it integrates really well with Github. I know that it is easy to setup
up a Jenkins server to do this but what is the point when Travis is already
setup and running.
Campfire or Skype
Campfire and Skype are awesome tools for collaborating teams who want to keep in sync across time
Platform as a Service
I also find it much better if the product being worked on is hosted by a
service provided that can be easily accessed from anywhere. Depending on what
level of control you need there are a number of options. I like Heroku and
Nodejitsu for hosting Ruby and Node and it is often all I really need.
If I need more control it is easy to switch to Amazon or another IaaS providers
if the need comes up.
I want the best for my clients. To do this I want to work with really good
tools, from anywhere. I want to work in an environment that keeps me happy and
productive. Merry Christmas!