News from the World of Software Development — February 2018


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!

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.