Everyone's telling us to "shift left" these days. This raises some questions. What's being shifted? Who's doing the shifting? How far left should we be shifting it?
Shifting left means addressing important parts of the development cycle early on. Doing this enables you to get an MVP out speedily, receive feedback sooner, and ensure your project is robust enough to handle the journey ahead.
So what needs to be addressed? Well, it differs in each project, but mainly you should be paying attention to: user validation, context acquisition, testing, security, and code review.
You definitely don’t want to end up with an Over-Engineered Boondoggle that doesn't actually solve a real problem. The best way to avoid this is to get validation from your users ASAP, and this means getting an MVP out pronto.
Some ways to help you achieve this include:
Working on informative documentation will help developers write code faster and avoid problems down the line. Understanding your codebase will help you understand what to code and avoid errors along the way.
To achieve this you could:
Do you ever buy an ice cream without a game plan? I thought so. First, you run through all the scenarios and figure out the best outcome from those preliminary tests. Testing early on will help speed up the debugging process and can even help you figure out just what you want your code to achieve.
Shifting testing left will:
You have to be prepared for problems in life and in code. Skip the security headaches and time-consuming review cycles by planning ahead. You can do this by empowering developers with tools to meet security standards by themselves. This reduces the time spent on tedious multi-person review cycles.
Achieve this by:
Reviewing code can get a lot harder as the project gets more and more complex. Make sure your project has the right reviewing tools to keep up with its scale.
Here are some great reviewing tricks:
Shifting left means getting a head start on some of the most important aspects of the development process. Both the general philosophy and the specific process changes of shift left can be boosted by using tools that enable the developer to take full charge of shipping a new feature or bug fix.
After leaving Google, many engineers miss the developer tools. Here's one ex-Googler's guide to navigating the dev tools landscape outside of Google, finding the ones that fill the gaps you're feeling, and introducing these to your new team.
Developers are systems thinkers and yet, most measures of developer productivity are metrics-based, instead of systems-based. In this post, Sourcegraph co-founder and CTO Beyang Liu presents five charts that visualize what really matters for developer productivity.