Avoiding fainting goats
Undertaking a sizable web project is a big commitment in terms of time, money, and emotional investment. Here are four key questions to ask a web development company before you hire them.
Generally, the more time and money you spend, the more emotional you become. Sometimes you feel the love but more often you'll be crying into your triple shot mocha-choco-latte-cino (I wish this was real) over a failed web project. To ensure the web development company can deliver (and exceed) your expectations, here are a few key questions to ask:
What version control system do you use and how do you use it?
Version control is absolutely critical. If your developers stare becomes vacant and their eyes start to glaze over, you need to run for the hills and find someone else. It may be rude, but you will be saving yourself a world of hurt.
Good version control and workflows force developers to be accountable for the code they write, allow their peers to review their work and enable them to roll back to a previous version if something doesn’t work as expected. In short, it offers your project accountability, reliability and peace of mind should anything break. Not having a version control system and a process for using it is grounds for instant dismissal.
Favorable keywords to listen for:
Git, SVN, Gitflow, Mercurial, BitBucket, Branching, Pull, Push
What form of automated testing do you use?
This will help you understand if value from your development team is to remain consistent or decrease over time. If they answer “oh we ask our clients to click around the site until they find something that breaks”, you’ll probably end up with a site that acts like a fainting goat - it’ll fall over into a state of rigor mortis at the first sign of trouble.
Automated testing is the practice of running tests against newly developed code to check that business critical functionality is still working correctly before being released to the live site.
A complete solution will include continuous integration. Continuous integration is where the entire site is built by merging the new code with the existing live database in a sandbox environment, tests are automatically run and a report is compiled and sent to the developer. There is no better, sure-fire way to build a reliable website than with continuous integration and automated testing. For sites which are business critical, continuous integration is essential.
Favorable keywords to listen for:
Continuous Integration, CI, Behat, Codeception, Jenkins
What Project management tools do you use?
Ummm.... "a spreadsheet and email" is the wrong answer here. Building large websites is a complex process, from maintaining all the media assets (photoshop files, images, videos, documents, wireframes) to tracking development tasks across a team of developers. Times need to be recorded and feedback from the client analysed, all the while communicating back to the team and project owners in a timely manner so that the momentum is maintained. There are many balls in the air! Agile teams move quickly creating great return on investment but the result of this is a rapid burn rate. A slippage in the project timeline by just 1 or 2 weeks can be costly.
Project management tools are a place to centralise the day-to-day of a project but the most important thing is transparency with you, the client. You should have a login and be able to access the details of your project to see what is happening at any time.
Favorable keywords to listen for:
Trello, Pivotal tracker, Jira, Flow, Basecamp, Workflowy
What technologies do you use?
The two main categories here are Open source and Microsoft/Proprietary. Traditionally the two groups had different benefits and drawbacks but over time, the gap has closed significantly. In the past, a proprietary solution meant license fees but more reliable support whilst an open source solution meant free but no support guarantee.
Over time, open source solutions have proven to be much more developer friendly and in turn have attracted much more investment. This has lead to a place where open source support, while still not guaranteed, is as good as, if not better, than a proprietary solution. Alternatively, over time, proprietary solutions have become increasingly constrained as the developer culture slowed and support for open source became better, meaning businesses found it harder to justify the cost of licenses which seemed unnecessary.
Recently, as a result of this shift taking place, Microsoft has finally 'open sourced' their core development technology (.net core). When even the most monolithic companies are making the switch, it's obvious that open source is the way of the future.
If you hear the words 'license fee', you're looking back in time.
Favorable keywords to listen for:
Open source, PHP, Ruby, Python, MySQL, Drupal, Wordpress, Apache, Nginx