Still to this day I find people who miss our definition of hacking. We are not talking about hacking into networks to steal passwords or industrial secrets.
The Oxford English Dictionary defines hacker as
A person who uses computers to gain unauthorized access to data.
It also has an informal definition of
An enthusiastic and skilful computer programmer or user.
Although the latter is closer to how we define hacking it is still lacking. By hacking we mean a creative mindset where the most important thing is solving a problem through ingenuity.
We have a lot of processes in the work we do. Agile Development underpins our day-to-day work and we regularly practice the agile cermonies of daily stand-ups and show and tells. We also use Rapid Prototyping to prove ideas quickly and blend some Design Thinking and User Research to ensure we are trying to solve the right problem.
Compared to the Waterfall approach to software development this is of course a sane way to approach to delivering client projects and offers us the ability to move with speed.
Sometimes though there is simply just an itch to scratch that might not have huge business value or warrant inclusion within a well planned out sprint. In our experience this is when the greatest innovation happens.
Hack days also represent a creative transfusion that can re-energise a technologist. By stepping out of the constant stream of client or product delivery they have the opportunity to be free. No tickets, no deadlines, no managers standing over them.
As a business we run quarterly hack days where as a company we all work together on a theme. These are generally loose themes like ‘Hardware’, ‘Games’, ‘The Olympics’. For the Games Hack Day one idea was to link games on a mobile device through high frequency audio. This was driven by a desire to play games with friends more than anything else.
Within a day a functional prototype of this idea was complete showing it was possible. This idea was developed a little further and eventually became AdOn, a startup that won an InnovateUK prize.
Without the spirit of experimentation that hacking encourages this simply would not have been possible.
We have used hacks to solve some of our own business problems too:
We have also had a lot of fun experimenting with ideas.
Hacking isn’t a practical technique. It is a mindset that encourages people to experiment and get things done. For large enterprises they are often unable to embrace this philosophy even if they want to because of their scale and heirarchal structure. This is where consulting opportunities for businesses like our arise but even so we have had success in changing client mindsets just by showing them what is possible in a day. We have facilitated a business process redesign in a day and seen first hand that non-technical minds are just as capable of embracing a hacker’s mindset as anyone else.
The philosopy of hacking has been around for a while and certainly as long as pebble has existed. In that time we have seen many technologies come and go. Hacking has maintained a strong place in the fundamentals of our business though. It allows us to maintain and foster a culture of experimention that ultimately manifests in the product we offer to our clients.
Business aside hacking is just plain fun too giving us the opportunity to collaborate with people we might not normally collaborate with. We have realised several product ideas through hack days and helped many clients to create new products and service lines. We have even managed to win new business with hack days.
Have an update or suggestion for this article? You can edit it here and send me a pull request.
Build your own Vim statusline
Statuslines in Vim are not hard to create. Making your own means one less dependency in your life.
Custom Vim Bindings in tmux 2.4
tmux 2.4 made a significant change to key bindings. Here is how to support custom keybindings for versions before and after tmux 2.4
Using template files in Vim
Vim templates or skeletons, allow you to specify a template to be used for new files with a certain extension.