At the New York Times, one intern recently learned a painful lesson: It can take a long time to set up a development environment. In this case, about two weeks.
While set-up time varies for a number of reasons, can your business afford even half of those cycles every time your developer needs to test something new?
Sure, it’s the New York Times. This intern is probably dewy-eyed and ambitious. Wait, isn’t that good? Don’t you wish you could capture that passionate spirit of creativity and innovation for your startup?
Are innovation and efficiency juxtaposed in the world of software development? Or, can you have your cake and eat it, too?
That’s just what Djed Studios was aiming to do when the consumer Internet company created push-button development environments using technologies, including Docker.
Djed Studios’ stack is in Python, a skill set lacking in most developers. A push-button reset and automated code deployment process helps developers test the impact of new code, create a streamlined web development workflow, and foster a self-service culture that reduces the workload for the infrastructure team. Eat your heart out New York Times.
Right now, app development, specifically for mobile, is one of the hottest jobs in IT, according to CompTIA and as reported in this FierceCIO article. These developers must test their app on any number of constantly changing platforms. That means a whole lot of test and Q&A cycles.
In order to create efficient, high quality (i.e., non-buggy) apps, mobile app developers must test in their local development environment as much as possible. The longer the time between coding and testing (i.e., after apps have gone into production) the harder it is to find and correct issues. And margins drop as more dev resources are consumed.
Why? Because context switching comes at a price. There are two flavors in regard to this:
One is when your developer, let’s say his name is Bob, is waiting for a long period before he receives feedback on the feature he recently worked on. Now, he is moving on to develop a new feature. A long waiting period in this context, by the way, is referred to in minutes. (Think about the consequences he might face if the order changes to hours or days … simply, disastrous!)
The second type of context switch is a simple human distraction. Or, if Bob is a multi-tasker on your team.
Context switching could greatly disturb the agility of your team.
A cost-effective, productive developer environment calls for:
Effective test loops in the local dev environment
Spin up and discard environments in a heartbeat
Maintaining the team’s agility
How to Save Your Dev’s Time
A simple developer workflow can be depicted by the following diagram:
In order to optimize developer workflow productivity, for starters, let’s use the following tips:
1. Dev Equals Prod: Streamline your local developer in such a way that it’s almost a complete replica of your production environment. One of the biggest overheads you can face is finding a bug in production that didn’t occur in your local developer environment. The only way to eliminate this is by making sure your local developer environment matches your production in every setup and all configurations.
2. Set Up Faster Feedback Loops: As discussed before, your developer hates to wait. By increasing the feedback time, you give way for your developer to get distracted easily. This paves the way for quicker bug detection and handling.
3. Automate; Don’t Documate: The most common errors and bugs can be readily credited to human involvement and third-party dependencies. For instance, documenting every step of a configuration process is great! However, an error in the document implies there’s an error that’s been passed on to every other developer that uses the same document.
The focus should be on automating repeatable tasks. Such examples include spinning up a local developer environment after a failure, software installation, and bug detection.
Invest the Saved Time to Make Money
So, what does an optimized developer workflow productivity mean to your business?
Reduced Time to Market and Increased Innovation: You no longer undergo long, tiring processes of releasing a new feature or product. What once took weeks or months together, is now possible to explore in just a few days.
Easier Hiring of the Right Talent: There is always a need for the right talent. One misplaced developer on your team can cost you greatly. A good developer workflow eases the ramp-up process of a new hire, while also motivating employees to create better and more products.
Business Continuity and Organizational Ownership: The more you automate, the more ownership there is. This eliminates the involvement of the human element to perform manual steps. As a result, it removes the bottleneck of a new hire or a replacement on the dev team.
Find out today how businesses use DevOps to improve their developer productivity:
Click here now to learn about an Assessment Package designed to further optimize your developer workflow and get more from your dev team.
Or, uncover how to move away from an inefficient infrastructure that interferes with your progress. Take this 60-point DevOps Readiness Test aimed at improving your infrastructure across six key areas.
What are you waiting for?
Did you find this useful?
Interested in getting tips, best practices and commentary delivered regularly? Click the button below to sign up for our blog and set your topic and frequency preferences.