Traditionally, development was a precise, arduous art; each piece of a project had to be independently constructed then carefully assembled into a final product capable of handling unseen issues.
However, not only was this a slow process but trying to predict unseen issues in advance led to unexpected problems down the road. It is difficult to predict how a system will respond to problems without actually testing them.
Chaos Engineering for Robust Systems
One of a project manager’s most important tools in building a stable end product is chaos engineering.
Chaos engineering involves intentionally adding stresses, unexpected inputs, and new problems to the system with the goal of breaking it. Once it’s broken, failure points can be identified, weaknesses can be patched, and the entire program becomes much more resilient than before.
Novice project managers underestimate the value of chaos engineering all too often; intentionally breaking a product in as many ways as possible is not a new manager’s first strategy. However, it is only by analyzing its failures that a team is able to repair them. Strong project managers employ chaos engineering continually throughout the development process, in order to catch issues as early as possible.
Adding Automation to Increase Efficiency
Patching problems that weren’t caught early enough in the process is often a team’s biggest time waste. Right behind that, however, is having developers do basic, rote work unnecessarily.
It can seem counterintuitive to spend time developing tools the customer will never see, just for an internal team. However, where automating routine work reduces the man-hours required for a project, automation is often the best time investment a team could make.
If a team member spends ten hours developing a tool that’ll save them ten minutes a day, in two months they’ll have earned that time investment back. If the tool can be used by multiple team members, it’s often less than a week before they have earned back the time invested, and are actively saving working hours.
Automation not only vastly speeds up development, but can also slash costs. Labor costs for intelligence workers is often one of a project’s biggest expenses; decreasing the number of working hours required to achieve the same outcome can reap massive savings.
Best Practices for Implementation
For both chaos engineering and automation, the key phrase should be “early and often.”
In chaos engineering, the quicker a project manager can identify problems, the more time and money they’ll save. This means testing a solution as soon as possible, and continuing ongoing chaos engineering in order to catch weak points as soon as they become a potential issue.
For automation, the earlier a task is taken off developers’ plates, the less time they’ll waste on it. Whenever a simple routine task is noticed, a project manager should set aside a small amount of time to dig into possible solutions and automate if it seems time efficient.
A best practice for productive project managers is to identify team members best suited for ongoing chaos engineering. As chaos engineering needs to be continuously applied, making it a one-time task handed to a random team member is nonideal. Instead, consider handing it to chaos engineers who can continually think of new ways to test the system so that the task doesn’t get left behind.