DZone
Thanks for visiting DZone today,
Edit Profile
  • Manage Email Subscriptions
  • How to Post to DZone
  • Article Submission Guidelines
Sign Out View Profile
  • Post an Article
  • Manage My Drafts
Over 2 million developers have joined DZone.
Log In / Join
Please enter at least three characters to search
Refcards Trend Reports
Events Video Library
Refcards
Trend Reports

Events

View Events Video Library

Zones

Culture and Methodologies Agile Career Development Methodologies Team Management
Data Engineering AI/ML Big Data Data Databases IoT
Software Design and Architecture Cloud Architecture Containers Integration Microservices Performance Security
Coding Frameworks Java JavaScript Languages Tools
Testing, Deployment, and Maintenance Deployment DevOps and CI/CD Maintenance Monitoring and Observability Testing, Tools, and Frameworks
Culture and Methodologies
Agile Career Development Methodologies Team Management
Data Engineering
AI/ML Big Data Data Databases IoT
Software Design and Architecture
Cloud Architecture Containers Integration Microservices Performance Security
Coding
Frameworks Java JavaScript Languages Tools
Testing, Deployment, and Maintenance
Deployment DevOps and CI/CD Maintenance Monitoring and Observability Testing, Tools, and Frameworks

The software you build is only as secure as the code that powers it. Learn how malicious code creeps into your software supply chain.

Apache Cassandra combines the benefits of major NoSQL databases to support data management needs not covered by traditional RDBMS vendors.

Generative AI has transformed nearly every industry. How can you leverage GenAI to improve your productivity and efficiency?

Modernize your data layer. Learn how to design cloud-native database architectures to meet the evolving demands of AI and GenAI workloads.

Related

  • Shifting Left: How Modern DevOps Is Changing the Software Development Landscape
  • Streamlining Development Workflows With Internal Platforms
  • A Product-Management Approach to Platform Engineering
  • DevSecOps: Integrating Security Into Your DevOps Workflow

Trending

  • Next-Gen IoT Performance Depends on Advanced Power Management ICs
  • Go 1.24+ Native FIPS Support for Easier Compliance
  • Customer 360: Fraud Detection in Fintech With PySpark and ML
  • Mastering Advanced Aggregations in Spark SQL
  1. DZone
  2. Data Engineering
  3. Data
  4. There’s a Better Way To Deploy Code: Let’s Share It

There’s a Better Way To Deploy Code: Let’s Share It

Gatekeeping best practices within the developer community benefits no one. If there's a better way to deploy code, we should share it.

By 
Andrew Backes user avatar
Andrew Backes
·
Feb. 28, 23 · Opinion
Likes (1)
Comment
Save
Tweet
Share
3.4K Views

Join the DZone community and get the full member experience.

Join For Free

Gatekeeping best practices within the developer community benefits no one. If there's a better way to deploy code, we should share it. Why? Because a developer community is just that: a community. What benefits one team will help another, creating more efficient processes, reducing hassle, and elevating software quality and performance across the board. We are witnessing increased collaboration in the DevOps space, a trend we should encourage.

What Is Gatekeeping?

Senior developers have learned many lessons over the course of their careers, and many developed innovative solutions to development cycle challenges. In the past, they may not have openly shared their experience and knowledge; whether it was intentional or not, they were essentially gatekeeping their practices.

Why Should Developers Eliminate Gatekeeping?

When gatekeeping happens, the next generation must spend years gaining understanding and developing their own strategies. This is unnecessary — the knowledge already exists with experienced developers. Sharing wisdom eliminates trial and error. When everyone on the team knows the best ways to do things, the entire team can be more efficient. And they can innovate even further, creating new strategies that help everyone. 

What Is the Benefit of Sharing Deployment Practices?

A business's competitive advantage lies in its software, not its deployment process. Streamlined deployment contributes to superior software. This approach enables development teams to spend their time writing great code and committing it to production without the stress of dealing with Kubernetes complexities and needing additional resources. 

Enabling these best practices is critical as software development processes grow increasingly complex and teams constantly innovate ways to improve and simplify them. The multitude of execution options creates endless task combinations, and when teams work in silos, each will develop its own strategy. Why is this a problem? Teams will deliver software at different rates of innovation, making it extremely difficult to forecast the long-term direction of the business. Conversely, ordering chaos enables more precise expectations. When everyone shares their secrets, it reduces complexity because developers aren’t creating new solutions to problems that already have an answer. 

How Can Teams Share Best Practices?

One way development teams can standardize deployment best practices is through continuous deployment. This process builds onto continuous integration and delivery (CI/CD), pushing code into production and automating the entire release process. Continuous deployment makes software delivery simple, reliable, predictable, and repeatable and eliminates most code release troubleshooting. 

Consider this example: automated Canary analysis (delivering code to iterative audiences) may seem foreign and sophisticated to development teams focused on basic tasks such as delivering files to the server. These developers may be overwhelmed by the prospect of conducting a progressive release, but they don't need to be. Continuous deployment removes manual steps, so developers and engineers don't need to learn new deployment skills to reap the benefits of an efficient, dependable, and error-minimizing release process. Even pre-elite teams can successfully use continuous deployment to improve software creation. Experienced teams understand the advantages, but due to gatekeeping, this practice is not used widely. As a developer community, we must share these innovations. 

Do We Build the Tool Ourselves or Use an Existing One?

Many teams ask themselves: Should we build our own tool for deployment? While the self-built approach may seem cost-effective, it creates a narrow view of tasks and short-sighted decision-making. Teams focus on the rudimentary checklist rather than the bigger picture of boosting performance metrics. 

Yes, getting the update out is vital. But teams must also look to enhancing future production and value by improving deployment frequency, lead time for code changes, change failure rate, and time to restore service — all while meeting growing user expectations. The proof is in the pudding: companies with higher release rates generate four to five times higher revenue growth than those pushing updates less often.  

Do-it-yourself tools lack the scalability to keep up with growing process complexity, expanding audiences, and heightened demand. Teams running their own solutions often find themselves distracted from building sustainable value for users. In other words, time spent building and maintaining tools could be used to instead improve software and deployment speed. 

In the end, adopting an existing solution is less work than building one. Someone has already put in the effort to create tools — teams should jump on the opportunity to skip over those steps. Then developers and engineers can spend their time on value-driven activities like building software. Reinventing the wheel won't provide a competitive advantage. An existing continuous deployment solution that maintains service and operations while automatically committing code to production maximizes time and resources. 

Teams constantly create ways to improve processes and workflows — but those solutions shouldn't stop with them. Best practices that save developers and engineers significant time and frustration should be disseminated to the entire DevOps community so they can build even better methods. Gatekeeping inhibits innovation. The superior solutions created by opening the communication gates will help teams now and make an easier, more productive future. 

Software development Software quality Build (game engine) Gatekeeping (communication) Production (computer science) Data Types DevOps workflow

Published at DZone with permission of Andrew Backes. See the original article here.

Opinions expressed by DZone contributors are their own.

Related

  • Shifting Left: How Modern DevOps Is Changing the Software Development Landscape
  • Streamlining Development Workflows With Internal Platforms
  • A Product-Management Approach to Platform Engineering
  • DevSecOps: Integrating Security Into Your DevOps Workflow

Partner Resources

×

Comments
Oops! Something Went Wrong

The likes didn't load as expected. Please refresh the page and try again.

ABOUT US

  • About DZone
  • Support and feedback
  • Community research
  • Sitemap

ADVERTISE

  • Advertise with DZone

CONTRIBUTE ON DZONE

  • Article Submission Guidelines
  • Become a Contributor
  • Core Program
  • Visit the Writers' Zone

LEGAL

  • Terms of Service
  • Privacy Policy

CONTACT US

  • 3343 Perimeter Hill Drive
  • Suite 100
  • Nashville, TN 37211
  • support@dzone.com

Let's be friends:

Likes
There are no likes...yet! 👀
Be the first to like this post!
It looks like you're not logged in.
Sign in to see who liked this post!