The 4 Pillars of Our Software Development Cycle

When we are developing apps or websites, we follow a devOps process that allows us to develop and test our code effectively, then deploy to a production environment and monitor uptime.

The 4 Pillars of Our Software Development Cycle
(Source: Intentionet)


Here are the productivity tools we use in the devOps cycle, how they help us build the web and software applications we do, and how our customers benefit from them.

As a web and web app development agency based in Queenstown, we create and work across all the different platforms the world offers.

We pride ourselves on working with all the major platforms – including Shopify, Craft CMS and React to build scalable and responsive websites and apps across eCommerce, SAAS and Professional Services brands.


Two commonly asked questions about software app development include:
  • What is software application development?

  • What is a software app developer?

  • What are the basics of the software development process?


And in this blog, we provide information to answer those questions and cover the four pillars of the software application devOps lifecycle:

  1. Develop

  2. Test

  3. Deploy

  4. Monitor


The Software Development Basics

The devOps life cycle is creating a web or app program or set of programs to carry out different tasks businesses require. Many processes include similar basic steps, from designing prototypes to testing to implementation. Choosing the right framework is also crucial, which we have discussed in our recent blog post about the difference between the open-source framework, React Native vs Flutter.

Simply put, an app developer is a computer software engineer responsible for creating and programming applications for computers, mobile phones and tablets. Much like how web developments can be built with a traditional CMS or a headless CMS (like Craft), software app developments can be built using various platforms, languages and tools too.


Develop

Docker

Why We Choose Docker for Software Development


The first devOps lifecycle tool we use is Docker, a set of developer tools and Docker CLI plugins that make it easier to build, test and share containerised applications. The multi-environment support is a major benefit for software developers, as Docker Context makes it easy to switch between environments. From our workstations environment to testing, staging and production – without needing to remember complicated strings of connection.

Put into technical words, Docker is a server on your computer, which creates another server on your computer for developers to place a website’s code. Docker is a virtual server where the operating system creates tiny operating systems inside it. It’s an agnostic operating system, so whether you’re using Mac or Windows (or any other systems) to view a development, Docker will create the server and act the same way across all team members’ computers.


Why We Choose Docker for Software Development

For our software developers, it offers an advanced way of dealing with the development cycle. As an agnostic operating system, it is a cross-platform software solution. If one developer uses a Mac computer and another uses Windows, Docker ensures that the web or software app development is consistent and acts the same across any computer. Docker benefits you because it:

  • Makes the development process faster and more efficient – meaning that we can complete your software faster.

  • Ensures the web or app development is consistent across any platform – making your new development scalable.

  • Is a cross-platform software solution that deals with advanced development – so no development is too big to handle (or too small).


Sass / .SCSS

Sass / .SCSS Variables
(Source: Sass-lang)


Sass is a stable and robust CSS extension language. The common problem with many CSS extension languages is that processes can get repetitive and tiresome. For example, suppose a software developer wanted to add anchor tags inside captions and make the paragraphs red while adding a heading. In that case, this means writing the captions three times would be necessary. Three times may not sound excessive, but imagine repeating the process for every little thing.


CSS

Short for Cascading Style Sheets, CSS is the thing that gives all objects on a page their styling, everything from width to height to opacity – everything on a page is built with CSS language.


How Sass Helps Us Develop Software

Sass enables our software developers to make changes smarter, such as editing small things at once and nesting them. In the end, a web browser only accepts CSS, and so Sass enables us to write in SCSS (the technical language name) and processes it into CSS. As a developer, this saves us weeks of work, which is why we use it in our production workflow because it:

  • Eliminates the repetitive process – you get your web, mobile or software app development faster.

  • Processes SCSS to the CSS language – so we can focus on other aspects of your project.


Webpack

Why Our Software Developers Use Webpack
(Source: Webpack)


Webpack helps software developers to carry out processes like transfer SCSS to CSS language. The main process we use is called magnification, and so as CSS files have a lot of white space, the magnification process sucks out all the white space.


Why Our Software Developers Use Webpack

An example of how Webpack is beneficial is when it comes to a folder of static images. Our software developers put the images into a folder, and upon building out CSS, it moves the images to appropriate places on the server. Overall, Webpack increases control over treating different assets it encounters – and you can decide to inline assets to your JS (JavaScript) bundles to avoid requests. Our developers use Webpack because it:

  • Gives our developers control over assets – enabling customisation.


Test

Jest

The Benefits of Jest and PHP for Testing
(Source: Jestjs)


Jest allows us to run automated tests. For example, when we’re working on a project’s front-end with more than one developer, developer one wants to know developer two’s change and ensure new changes won’t break other developers’ changes. So we run a command, and then Jest runs through some instructions automatically.


PHP

PHP is essentially the backend version of Jest. It follows a similar process, with benefits including flexibility and control.


We often use Craft CMS for web and software app development, as the backend remains simple to use and the frontend is customisable.


The Benefits of Jest and PHP for Testing

Jest offers a CLI tool to control testing, along with an interactive mode to run tests for any code changes automatically. PHP brings customised backend development, flexibility and freedom, and added functionality without needing external files for data. The primary reasons for using these testing tools is because they:

Jest:

  • Offers a CLI tool to control frontend testing – ensuring your development is consistent and scalable.

  • Automatically runs tests for any code changes – so our developers can minimise human error.


PHP:

  • Brings customisation to the backend – providing you with flexibility and freedom.

  • Adds functionality without needing external files – so you can experience a more reliable development.


Deploy

GitHub Webhooks

Why We Choose GitHub Webhooks for Deployment
(Source: GitHub Docs)


GitHub is like a dropbox that’s designed for code. Software developers work on the code, pull down the codebase, make changes, save them and then push it into the GitHub directory. GitHub Webhooks runs testing independently – it updates the server on which the code is live and saves on human error.


Why We Choose GitHub Webhooks for Deployment

GitHub Webhooks is a script that repeatedly runs. Ourevelopers push the code to the repository, and Webhooks runs an automated script. Webhooks can be used to update an external issue tracker, update a backup mirror, and deploy to the production server. Webhooks is beneficial because it:

  • Runs an automated script – speeding up your development’s deployment.


Pull Requests

Errors happen in the code world, not just for us, but for every developer (pretty much). For example, when making changes to app development, instead of stamping the development as finished, developer one will tap developer two on the back with a pull request. The request prompts developer two to look over new changes.


Why Our Developers Use Pull Requests

Pull Requests ensures software developers can do their job while avoiding potential issues down the line. Our developers can send a pull request from one developer to another, which puts the developer responsible for finding problems and eliminates the risk of human error should only one developer revise changes. We choose Pull Requests because it:

  • Prevents human errors – minimising the risk of potential development issues.


CircleCI

Before deploying our development to the server, CircleCI will create its own server and run all the testing. CircleCI enables testing to be carried out on our developers’ local computers before being pushed, or upon deployment, runs on two independent computers to find bugs between the two different computers.


How CircleCI Helps Us With De

An example of CircleCI in action would be if two app developers used different website building or app making software. For example, if one developer uses a Mac and the other, Windows, CircleCI would test on the two computers, finding the bugs. CircleCI is beneficial for software deployment because it:

  • Finds potential bugs between different computers – preventing issues in the deployment stage.


Monitor

Uptime Robot

Why We Use Uptime Robot to Monitor Software
(Source: Uptime Robot)


Uptime Robot hits the server every 30 seconds and makes a request just like a public visitor would, but it fires a message to Slack or the communication preference choice if it doesn’t get a response.


Why We Use Uptime Robot to Monitor Software

Uptime Robot is the first line of defence, well it should be, and is our first line of defence. Using Uptime Robot ensures that we know when a server has crashed or not and informs our application developers immediately. We use Uptime Robot when monitoring software application development because it:

  • Monitors the server – ensuring there are no crashes.

  • Communicates crashes immediately – enabling developers to fix the issue fast.


Raygun

Raygun monitors any problems that may cause failures, and instead of telling the person on the browser, it takes that error and fires it to our Slack channel. The difference between Raygun and Uptime Robot is that Raygun is only interested when it gets a response.


The Benefits of Raygun for Software Monitoring

Raygun monitors the console logs, so the log of all events happening on the web browser. As a result, our software developer can avoid problems and failures that may turn customers away from the web or app development thanks to continuous monitoring because it:

  • Monitors all events happening on the web browser – avoiding failures.


Cloudflare

Like the other two monitoring systems, it detects problems, and if it finds one on the server, it communicates via email.


Why We Use Cloudflare for Monitoring

Cloudflare improves the application availability by monitoring network latency and server health at the root, identifying the best resource to serve user requests. Cloudflare helps assists our team in mobile app development software and other development monitoring because it:

  • Provides a powerful solution and in-the-moment reports – keeping developers up to date with potential errors and issues.


When we combine all three monitoring systems, it provides us with a powerful solution. And in return, it provides us with in-the-moment reports and prevents long-term errors and issues.


An Overview of the Software DevOps Lifecycle

We use productivity tools to extend our capabilities and performance when developing web apps, mobile apps and software. From preventing human errors from delaying development completion to powerful automation functions, each tool assists us at different stages of the devOps cycle.

There's plenty of ways to create a web or software app with React and many reasons why so many developers choose it. And we recently wrote about it, specifically why React Native is a game changer for mobile app development.

As a team of dedicated software developers, we’re committed to delivering your web or application development to you just as you would expect – reliable, scalable and robust.

Get in touch with us today, and let’s discuss how we can work together to make your software application development a reality.