News from the World of Software Development — February 2018

devnewsfeb

Welcome to this month’s edition of our regular software development news digest. We try to cover a few recent stories of interest to both software engineers and QA professionals. Hopefully, the insights within help foster some ideas to help your own team’s application development efforts.

If you are interested in checking out last month’s digest, simply click on the following link.

Apple actually slowing down its Software Development Process

Given that hardware – the iPhone, iPad, and even the new HomePod smart speaker – drives Apple’s enormous revenue, sometimes we forget they remain one of the largest software development companies in the world. Recently, Cupertino suffered a few highly publicized bugs in its iOS mobile operating system. Perhaps the company approaches the SDLC in a too “agile” fashion?

As such, Apple plans on slowing down the rate in which it releases iOS and macOS updates. The company hopes to increase its focus on stability and bug fixes as opposed to trying to fit a ton of new features into every release. News about Apple’s shifting development cycle appeared this month in ExtremeTech among other sources.

Major iOS version releases are now expected to take place every other year instead of on an annual basis. Given that the older iPhone battery slowdown “bug” attracted interest from the U.S. Government, it is a smart move for Apple to take a more measured approach to OS releases. It will be interesting to see how well they keep to a more deliberate schedule in a competitive computing industry.

If you want to read more on this topic, check out former Microsoft engineer Steven Sinofsky’s blog entry. Considering Sinofsky’s role in leading Windows OS and Microsoft Office development, his insights are worth your time.

Automated QA Tool Company gets Venture Capital

Giving software engineers the ability to test their code in an automated fashion remains a key part of any Agile or DevOps implementation. A Boston-based startup led by former Stackdriver principals is building an automated testing tool suitable for continuous delivery scenarios. Their nascent product shows promise as evidenced by the $10 million in venture capital awarded to their firm, named Mabl.

News about Mabl’s venture capital success appeared this week in Xconomy. The fact that Mabl’s chiefs, Dan Belcher and Izzy Azeri, sold Stackdriver – a Cloud management software company – to Google in 2014 likely helped attract funding for their new venture. In an era where continuous deployment is the Holy Grail for many companies, automated testing is vital.

At the core of Mabl’s tool is a service that operates like a virtual QA engineer. Dan Belcher described the approach of Mabl. “Think of Mabl as an extension to your QA team, like you hired a new QA person. Just as you’d train the person about your app, you train Mabl, and expect [it] to write new tests, new test cases, run tests automatically, and find defects based on an understanding of how the application works,” said Belcher.

The tool leverages machine learning routines to improve its ability to find bugs and even predict their existence. It integrates with Slack as well as other email and messaging tools. If Mabl looks like something your development team needs, explore the information on the company’s website.

That’s it for this edition of the Betica Blog News Digest. As always, thanks for reading!

Is DevOps favoring the Devs over the Ops?

Group

On paper, DevOps involves the merging of the software development and network operations teams with the hopes of faster application deployment. Companies in a variety of business sectors enjoy competitive advantages because of a successful DevOps implementation. Software engineers and network administrators happily collaborating for the greater good of their employer remains the ideal view.

However, some operations professionals in the industry feel the developers are dominating things too much. Are these the signs of an emerging “civil war” in DevOps? Let’s take a closer look at the details to see if you need to worry about your own team.

Do Network Engineers truly feel Railroaded by DevOps?

A recent article by David Rubenstein in ITOps Times reveals a growing disenchantment with DevOps from networking professionals. They feel the demand by executives for a faster software development process is leading to a lack of control over IT operations. Rubenstein notes that software engineers use DevOps as a cover to “circumvent IT processes that have long protected businesses from costly downtime and security breaches.”

He isn’t alone in this opinion. Lucas Carlson, vice president of strategy at the Cloud automation firm, CA Automic, explains this position in detail.

“DevOps to this day is really built by developers and for developers, and it really feels like a misfit to try to force IT operations to use DevOps tools, given their heritage, because they were built with developers in mind… They’re great for developers but not for IT operations, and that’s kind of created a shift, a divide, and it seems like almost ever since DevOps has been gaining traction and popularity, the developer role within organizations has become more and more raised and lifted. Everybody’s trying to hire developers. Developers are kind of the kingpins of the technology world right now. Developers are held at the highest ranks of where people in technology look up to, and IT operations has really been left behind in all of this,” said Carlson.

Is his view simply a case of sour grapes, a valid concern on the near-future of DevOps, or a mixture of both?

The Traditional War between Developers and Network Administrators

Since collaboration and communication are the hallmarks of modern software development, are we seeing a return to the old days where software engineers and network administrators were typically at each other’s throats? This author remembers a fellow developer regularly called network personnel at our company “setup.exe” in a derisive fashion. He felt their only value involved installing software.

This kind of attitude on both sides forgets one basic fact: development and operations are working for the same team. For his part, Carlson hopes for a new term to take the place of DevOps – AgileOps. Mere semantic changes probably won’t matter, especially considering the strength of DevOps as a buzzword. We’ll see.

Ultimately, these are all likely still the growing pains of a new methodology. Since the executive team controls the direction of the company – and the purse strings – developers and network engineers simply need to collaborate better. A slower approach to the SDLC won’t fly in this competitive Agile era.

Maybe some late Valentine’s Day cards need to be sent between developers and their ITOps brethren?

Keep coming back to the Betica Blog for additional news and insights from the software development world. As always, thanks for reading!

Functional Programming hits the Big Time

functional-progNo longer the stuff of more esoteric applications, functional programming is beginning to see increased usage across the software development world. At its essence, functional programming tells software explicitly what to do, instead of procedural programming’s focus on how to do it. As revealed in its name, it is a stateless paradigm with more similarities to mathematical functions than a massive object-oriented application.

Let’s take a high level overview of functional programming to see if it makes sense as part of your development team’s toolbox. Perhaps it triggers some insights to solve a pressing problem in your current software engineering efforts?

So what is Functional Programming?

The changing business world and its focus on interactive apps able to scale massively are outgrowing state-driven software. This fact is highlighted in a recent article by Forrester Research published in ZDNet providing a look at functional programming and its increased relevance to the programming community. The article notes FP requires a different mindset and approach compared to traditional programming languages.

A recent study reported that over half of all surveyed developers work for a company now using functional programming in some fashion. Forrester compares this migration to the emergence of object-oriented programming in the 90s. OOP served to transcend the limitations of procedural programming back then, and FP is poised to do the same thing to OO software today.

In addition to its overall brevity compared to object-oriented code, functional programming offers other advantages over older programming styles. It reduces regression errors in code, supports greater reuse, and also makes both the creation and maintenance of software an easier process. As noted earlier, applications written with a focus on the functional paradigm are able to massively scale better than OO software.

That latter point is especially important in a business marketplace increasingly dependent on eCommerce and social media.

Functional Programming Languages

While there is a host of functional programming languages considered to be “pure,” many of these are included as part of mathematical software. Thankfully, nearly all popular languages support the use of functional programming constructs embedded within any codebase. As such, programmers and architects need to be conscious of thinking in a functional mindset when designing and writing applications.

A hybrid language like Scala (or even F# for Microsoft shops) serves a bridge for introducing more functional concepts into a team’s “regular” programming style. Even old school examples like PHP or JavaScript are able to work as a functional programming language. Simply understanding how functions work within any language helps bootstrap this new mindset.

While Forrester provides the full functional programming report referenced in the ZDNet article, it requires a subscription to their research service. If your company already subscribes, congratulations and a download are in order. The research report is also available for non-subscriber purchase for $499.

Thankfully, there are other free resources available for learning about functional programming. The UK-based developer, Mary Rose Cook has a detailed blog post on the topic. Smashing Magazine also provides a useful introductory article.

Simply put, learning about functional programming is a wise choice for any software professional. Expect to encounter its use in your career soon, if you aren’t already using it today.

As always, thanks for reading this edition of the Betica Blog. Come back soon for additional insights on the programming world.