adam121 - Fotolia
Software developers make vital contributions to organizations, yet they are constantly asked to do more. Development teams must often take on some level of testing and security. However, it's often unclear how they're supposed to manage all that work.
As more organizations begin to take a shift-left approach -- in which some tasks move to earlier in the lifecycle to become dev responsibilities -- developers must balance the quality of and speed at which they deliver features. To find an equilibrium, consider and contrast the importance of several factors, including how important quality is to your business, customer demand for new features and the composition of the dev team.
"Looking at these [factors] and attempting to measure them should give you a starting point to calibrate where you are versus where you might want to move to," said Russell Smith, co-founder and CTO of Rainforest QA, an on-demand QA platform.
However, the shortage of development talent makes it more difficult to handle security, ops and QA responsibilities, as does the inability to measure and benchmark these parts of an engineering organization. And this lack of benchmarks makes it difficult to establish best practices and prioritize resources.
"There are no standards here, and it's mostly reinvented per organization and often per leader, per org," Smith said.
How Trulia overhauled its QA
Trulia LLC, a real estate listing service, broke up its dedicated QA team to focus on quality and velocity. A shorter software lifecycle and the need to scale faster prompted Trulia to shift left.
"Waiting to test until production is near completion can lead to expensive mistakes and delays that could have been caught early on with a shift-left approach," said Vladimir Deynega, senior software quality engineer at Trulia.
With the change, Trulia sought to empower development teams to take ownership of quality from code creation to release. Deynega is of the belief that the IT staff could not over-test. However, he also did not want to overtax developers, so he focused on maximizing tests within three key constraints: developer knowledge, resources and time.
Trulia discovered that improved prioritization and automation can help it strike the right balance between traditional dev tasks and QA. Instead of manually testing software, Trulia encourages developers to create test scripts. Furthermore, continuous integration helps Trulia reduce bugs and errors and improve code quality.
"Tests should be created at every step, including DevOps, ops, security and QA, to increase quality," Deynega said.
Despite the benefits of the shift-left approach, it was an imperfect transition. Deynega has kept an eye on multiple missed ticket estimations, which are usually the first sign of an issue.
"We're always monitoring for [a] drop in velocity, which can indicate there is something going on with a particular team," he said.
Unclear acceptance criteria can often slow a team down. Also, watch out for an increase in software defects, a lack of motivation, negativity or a change in work habits, as they are symptoms of an overburdened or under-skilled workforce.
Focus on the culture
To strike the right balance between developer productivity and giving them more responsibilities, teams must include management that can foster a supportive culture.
"Shift-left problems are cultural more than practical," said William Turner, director of CS, QA and RM at Aras, a product lifecycle management provider. Once companies address cultural issues, he said, they can find ways to enhance QA, DevOps and security much more easily through strategic technology investments.
As much as everyone wants faster development cycles, developers simply can't write all the code for projects in two days. So, Turner encourages programmers to work closely with QA to reduce surprises during testing, which can lead to faster and more predictable delivery.
Managers should identify bottlenecks to help developers keep up with company goals and schedule time for training and review processes. When teams ship good code the first time, they can spend more time on new projects.
However, Turner said you shouldn't just throw work at the team. It's better to engage with team members to determine what work can be done and in what time frame. A shift-left culture means trusting your team to tell you what they can deliver, and then adjusting your targets for a compromise they can meet. When you know the workload is too much upfront, there's still time to adjust the schedule or reprioritize before a crisis occurs.
Include the whole organization
While developers take on more work in a shift-left approach, it's not all up to them.
"Shifting left should not be the sole responsibility of the application development team," said Matt Angerer, a senior value stream architect for Tasktop, a value stream integration provider. All the roles within an Agile team, including business analysts, developers, automation engineers and testers, should help ensure a smooth transition.
Angerer recommends three approaches non-developers can take to ease the shift-left process.
- Introduce static testing into the requirements management process. Never allow requirements to move into the design phase without another set of eyes reviewing every aspect of that requirement to ensure its validity.
- Try business process modeling tools. Advanced business process modeling tools can help meet the planning needs of different skill levels and personalities within your organization.
- Don't discount the value of virtualization tools. These tools can help simulate end-to-end partner testing much earlier in the lifecycle.
Happiness as a metric
"Many organizations suffer human capital loss as a result of poor morale on their application development teams," Angerer said.
Churn is expensive, both from an HR perspective and in terms of the knowledge capital that walks out the door. To combat churn, some companies use a Net Promoter Score (NPS) -- an index based on reported satisfaction -- to continually ascertain if employees would recommend their organization to a friend.
"With NPS, you're able to gauge workload overwhelm," Angerer said.
Try to identify behavioral patterns that might signal a work or skills issue. For example, a QA automation engineer who reported to Angerer would call in sick when he was up against a hard deadline.
Keep in mind that IT professionals can have starkly different personalities. Angerer learned to adjust how much pressure he applied to his teams and how quickly. Too much pressure too fast can lead to counterproductive results, while gentle, consistent pressure can achieve results without overwhelming the team.