Is there already a Backlash against DevOps?

web

Like any newer software development methodology, DevOps obviously has many proponentsy proponents, but at the same time others feel antipathy towards the practice. Similar reactions have happened in the past; for example, with Agile, as well as even older methodologies, like the Waterfall. Software engineers tend to be a passionate group, and it is not surprising that a measure of dissension arises once anything reaches a certain level of popularity.

Here is a closer look at some of the rationale behind a DevOps backlash. If your organization already uses it or is considering the transformation of its own software development process to follow its principles, read on for useful insights.

A Major Reason Developers are threatened by DevOps

A recent article by the DevOps development shop, Fixate, looked at why some developers hold a grudge against the methodology. One major reason is many software engineers are used to handling full-stack development – everything from the database design to the middleware to the user interface. They are even able to deploy the completed application into production.

DevOps divides many of these responsibilities among a collaborative team while also leveraging automated tools to increase the efficiency of the software development process. Organizations are trying to thrive in an increasingly competitive business landscape, and this fact remains the biggest driver of the adoption of DevOps. Intra-team interaction and speed are the keys, not necessarily the venerable lone cowboy programmer who’s a jack of all trades.

Modern companies using DevOps want technology professionals that are experts in a specific area and are able to work well on a team. This makes full-stack developers feel threatened about the future of their careers, so they lash out at DevOps. The concerns of the business generally carry more weight when it comes to a choice of methodologies.

Is DevOps a Poor Fit for the Enterprise?

Fixate also notes the difficulty in successfully adopting DevOps at larger enterprises that already have their own well-defined software development processes. Still, as the practice matures, many larger organizations are successfully transforming to take advantage of the new methodology. Expect this rationale to lessen over time as DevOps continues to evolve, and the tools that support the process add more useful functionality, especially containers and process automation.

Steps to combat a DevOps Backlash

With DevOps rapidly becoming an industry standard, any naysayers, especially individual developers, will likely have their voices drowned out. Larger enterprises still wary of the practice need to consider their ability to survive in a marketplace where the competition is taking advantage of DevOps in larger numbers. Fixate feels that fans of the practice should continue to advocate its advantages while keeping an open mind towards those who may feel differently.

Ultimately, there is no denying that DevOps is almost an industry standard. At the minimum, companies of all sizes need to explore following at least some of its practices in addition to taking advantage of related tools to make its own software development process work better. Remember, your competition is probably doing the same thing.

Stay tuned to the Betica Blog for additional dispatches from the always evolving software development world. Thanks for reading!

GitHub Analysis reveals the Changing Face of Programming Language Usage

One obvious constant in the technology industry is its rapid pace of change, and the practice of programming offers no exception to this rule. What was once a popular language at the turn of the century might hardly get used for applications today. On the other hard, new programming languages seem to appear on a monthly basis.

Data from the source code repository, GitHub, offers a window on this changing face of software development. Let’s look more closely at their analysis to check the latest trends in programming language usage. Perhaps these insights might be of use in your own team’s development efforts?

393 Different Programming Languages at GitHub – in One Year!

GitHub boasts 4.5 million users who maintain around 10 TB of source code at the repository. Incredibly, those development projects are written in 393 different programming languages. Even more impressive is that data only represents one year of GitHub usage statistics!

Those numbers have only increased since the original July publication of an article by Waren Long at the source{d} blog used as a reference for this post. Another interesting point is their analysis doesn’t even include JavaScript, one of the most widely used languages, because of GitHub users’ propensity to refer to popular libraries, like Node.js or React.js, as a project’s language instead of JavaScript.

Long’s methodology for determining programming language is quite detailed, so refer to the link in the previous paragraph for additional insights, if interested. 

The Current Most Popular Programming Languages on GitHub

There are few surprises listed among the most popular languages currently in use at GitHub. Python and Java rank at the top of the list, with a popularity percentage of 16 and 15.3 respectively. That doesn’t necessarily mean both languages have more lines of source code stored in the repository. That honor lies with PHP, even though it only ranks at #5 on the popularity scale.

Other languages in the top 10 include the venerable, like C, C++, and C#, along with relative upstarts like Ruby, Objective-C, and Go. Apple’s newer programming language for iOS applications, Swift, rounds out the top 10. A related analysis adding in Google search queries to the GitHub data notes that Go is currently the “hottest” programming language.

Moving from One Language to Another

The original source{d} blog article also looked what languages programmers are transitioning into over time. This is useful information for both individual developers as well as software development shops. For example, many Visual Basic developers eventually transition into C#, which isn’t surprising for programmers working primarily on the Microsoft technology stack.

PHP developers, on the other hand, tend to move into Java, Python, or even C#. Python’s current popularity is confirmed by the fact that 24 percent of programmers working in the five other most popular languages — Java, C, C++, PHP, and Ruby – eventually work with Python. The “walled garden” nature of Apple platforms is revealed by the high percentage of programmers switching between Swift and Objective-C for project work.

Ultimately, anyone working as a programmer or a manager of software development needs to dive into the source{d} analysis of GitHub’s data. It’s truly fascinating.

Keep coming back to the Betica Blog for additional insights from the software development world. Thanks for reading!    

Software Architects need these Four Essential Skills

Of course, strong technical ability is a requirement for anyone employed as a software architect. This role is almost always filled with someone who forged their skills working at least a few years as an application engineer. What separates the best architects from those merely holding the job title are the other intangibles necessary to thrive in today’s business world.

O’Reilly Media recently looked at four essential abilities a software architect needs to truly be successful in this era of Agile and DevOps. Let’s take a closer look at these skills to see if adding them to your toolbox makes you better at the practice of software development. Good luck!

Technical and Business Leadership

A good software architect knows how to lead the developers on his team, while also working closely with business stakeholders and project managers to ensure the project requirements are clearly defined with sufficient progress being achieved. Mark Richards, an experienced software architect and author, commented on the importance of this trait.

“It’s being a technical as well as business domain go-to person, it’s really to help clear roadblocks to the team so they can actually move forward. Being a leader as an architect means providing technical help and guidance, it means to help the team make decisions and form those decisions and validate them, and also to provide motivation to the team and support whether it be technical or non-technical support,” said Richards.

The Ability to Negotiate

Software architects also need to be able to negotiate at times to ensure a technology project proceeds in a smooth fashion. This skill comes into play when first determining the technology stack and basic architecture for an application. Sometimes, stakeholders may want a feature beyond the scope of the project or its budget. Similar negotiations happen with project managers and even the development staff, ensuring buy-in before the actual work commences.

Strong Decision-making is a Must

While the product owner or project manager typically rank higher in the hierarchy of most technology projects, a software architect still needs to possess strong decision-making skills. This especially comes into play regarding the technology stack used on a project, i.e. programming language, database, virtualization platform, etc. A strong-minded and confident approach definitely helps to formulate a robust architecture for a software application.

Collaboration is Vital in Today’s Technology World

It stands to reason any software architect working at a company with a DevOps organizational structure knows how to collaborate with their coworkers. Many enterprises also use architectural teams to define system architectures as a group. In this latter case, being able to share ideas and concepts with other like-minded professionals – in an ego-free fashion – helps ensure the best possible applications are built for the organization. Richards feels a mediator role helps when architectures are defined using a team instead of an individual architect.

In any case, it is obvious the best software architects possess a variety of skills that go beyond writing great code. Consider developing these abilities in your own work to take your software development career to a higher level.

Thanks for reading the Betica Blog; check back soon for additional news and insights from the constantly changing software development world.