Why Every Company Should Care About Web Development Operations
Web development operations could broadly be defined as the process of updating your website or web application. There are many ways that you could update your website, but how you go about doing it is very important for the future and quality of your website.
Most businesses that do not have an internal web development team are not aware of the importance of development operations best practices and what that might entail. This is because it has never really been exposed to them, and simply anything being accomplished on their website at a reasonable cost and timeline is a win, regardless of how efficient or effectively it was completed.
So Why Do Development Operations Matter?
Faster website development
Having a strong development operations process in place can make the development of your website go much faster. For instance, you can setup automatic deployments to deploy new changes faster. With version control software in place, a new developer on the project can download a repository quickly so that they can get setup to work on your website more efficiently. Ultimately, quality development operations should make web development much faster if done properly.
Multiple web developers can work on one project
With version control software you can merge multiple copies of a website so that two developers can work on different pages and features without worrying about over writing each others code.
Better testing & QA procedures
With multiple environments of your website setup you can test new features thoroughly on the development environment and then push that to the staging environment. Once tested on staging you can then push to production. You now have two online environments to test a new feature or bug fix, giving you an added layer of quality assurance before a feature goes live.
You can work on multiple features at once
With version control software in place, developers can work on different features simultaneously on different branches of the version control software. When the features are ready for testing or go live you can simply push them to the development environment for testing.
Documentation & accountability
You can see what different developers worked on and what they did. This documentation of code and development is important because when you add new developers to your website or project they will be able to understand and see what the other developers did and why.
Better future website development
A website that has a good development operations process in place will most likely have a senior developer reviewing the code of the other developers working on the website. This ensures that the overall code is relatively standardized and makes sense throughout the entire website. This will ensure that future website development will go much smoother because the entire website will be coded in a way that makes sense logically. Otherwise multiple developers working on the site that are not in good communication may use different styles and methodology throughout the site confusing new developers that work on the website.
What a typical Development Operations Setup Might Look Like
Ideally your website and host environments will have some sort of version control software like Git to manage multiple developers that may be working on your site such as different third parties and in house developers. However, if you are using a SaaS platform like Shopify or SquareSpace this might not always be the case.
Popular Version Control Software:
- Apache Subversion (SVN)
Seeing as most websites are not run by a SaaS platform I am going to focus on what an average development operations setup might look like for a website using something like WordPress, Drupal, or Magento. Typically you will want three environments setup for your website; a production environment for your live website, a staging website that mimics your live site, and a development environment for new features and changes. Additionally, you want all three environments to run on the same hosting setup so that there are no hosting related issues when testing new features or issues.
Your developers in an ideal situation should develop locally, push to a version control software, and then push that to a development environment. From there they can test the new changes. Once testing is complete the new changes can be pushed to staging which can also be tested and then pushed to the live version of the website.
Local Host => Git (version control) => Development => Staging => Production
This graphic illustrates how Trellis might work on a website. As you can see, the arrows can go through many paths. The reason for this is that you could add new features in many different ways and the way that you push new features, fix bugs and critical issues to the different environments you have might depend on the situation, severity of the issues, and the timing around launching such changes.
A hot fix is something that is a major problem to the live website such as something stopping someone from checking out on an eCommerce website. This has to be fixed immediately and the change will likely go straight to production because it is a critical problem. From there the change will be pushed down to staging and development so that when new features are added from the development environment to staging and production that hot fix is not lost.
A bug is a less critical issue than a hot fix that might get fixed on development or staging first and then pushed to all three environments. New features will be added to development first, and once tested, will be launched on staging, then production.
This graphic is meant to show that with development operations in place, multiple features can be worked on simultaneously. You could have a development team working on four or five different features at the same time, all of which can be pushed to the development environment when they are ready for testing.
There are also many more advanced development operations techniques that can speed up production and deployment. For instance you can create automatic deployments to push code to a live environment faster. There are screen-sharing technologies for showing someone your local host environment. There are also tools like Vagrant and Docker for packaging, creating, and sharing development environments faster and more efficiently.
The hosting package that you choose will have a large effect on the development operations you have in place. Some hosting packages come with many development operations processes in place such as Git version control software pre installed and other things that can be improve development operations. Look for a hosting option that makes your development operations process easier such as Pantheon, that enforces development operations best practices.
Ultimately having a strong development operations process in place will make not only current, but future development of your website go much more smoothly. It will also make it easier to add new developers to a project and phase out old ones which will most likely happen to any business as time goes on.