Agile and DevOps make Perfect Partners

A recent technology report came to a conclusion that won’t be a surprise to many of you. It seems Agile and DevOps offer more benefits when paired together at an organization compared to when they are implemented individually. This makes sense when considering DevOps grew out of a need for a better organizational structure for technology projects using Agile.

With the hopes of making your application development process more efficient, this article looks at the details of the report to find those actionable insights relevant to your software engineering organization. Good luck in your efforts!

The CA Technologies Report on Agile and DevOps

CA Technologies commissioned a study by Coleman Parkes Research to ask technology executives on how their organizations’ implementation of Agile and DevOps is transforming their business operations. The study’s lead conclusion noted that 81 percent of the surveyed executives feel Agile and DevOps are a vital aspect of their operational evolution. The study’s other insights also provide food for thought for your managerial team.

Over 80 percent of those surveyed said their organizations are currently using either Agile or DevOps. Still, only one-third of those senior executives felt either methodology was sufficiently implemented at their business. CA Technologies concluded that this highlighted a maturity gap needing to be fixed for those businesses to truly evolve their operations.

The Benefits of Mature Agile and DevOps Programs are Numerous

Companies able to successfully implement both Agile and DevOps all across their organization see numerous benefits according to the executives in the survey. Advanced Agile users are able to act on important decisions sooner than those new to the methodology. Experienced DevOps enterprises implement ideas 42 percent faster than those companies not using the organizational structure.

Adding DevOps to an organization already well-versed in Agile causes new business growth to increase by 63 percent compared to companies only doing Agile. Operational efficiency also improves by 41 percent. These last two conclusions from the study should be enough to convince most larger technology shops to combine Agile and DevOps instead of merely doing one or the other.

The survey also noted some of the leading factors preventing a company-wide implementation of Agile and DevOps. Security issues ranked as the top reason for both methodologies, followed by budgetary concerns, and the lack of integration tools. Organizational culture and resistance to change are also contributing factors.

Using Agile beyond Information Technology

The CA Technologies study also mentioned that Agile offers benefits to organizations that go beyond their IT department. Some of the surveyed executives noted their companies use Agile in the marketing (54 percent), customer service (53 percent), and sales departments (52 percent.) Finally, only six percent of the companies have implemented Agile across their entire enterprise.

Angela Tucci, CA Technologies’ general manager for Agile management summed up the survey’s conclusion. “Agile and DevOps practices lead to happier, more productive employees…which in turn leads to happier, more satisfied customers. And when Agile and DevOps are practiced together, the benefits are even better,” said Tucci.

When you need additional insights on the ever-changing software development world, come back to the Betica Blog. Thanks for your readership!

Swift – the Apple Programming Language for Mobile Devices and More

Until 2014, if you wanted to write applications for Apple iOS (the iPhone or iPad), watchOS (the Apple Watch), tvOS (Apple TV), or even a macOS desktop application, the most straightforward way involved using the Xcode IDE with Objective-C as your language. This changed when Apple released a new language, known as Swift. The main advantages it brought were a relative ease of learning, improved safety, along with a more readable and concise programming style.

Let’s take a closer look at Swift to see if it makes sense to use for your team’s Apple programming projects or more.

The Genesis of Swift

The development of Swift began inside Apple in 2010, with an internal project team led by Chris Lattner. The language’s first iteration was introduced to the world at Apple’s WWDC in 2014. New versions are typically released in concert with an Xcode update – Swift 3.0 becoming available in September of 2016.

Although originally a proprietary language owned by Apple, Swift entered the open source domain under the Apache 2.0 license in 2015. This also allows developers to target Linux in addition to Apple’s array of platforms. RemObjects Software even makes the Elements compiler that lets Swift code target .NET, Android, and the Java runtime. 

Needless to say, the language is growing in popularity, as evidenced by IBM’s website allowing you to write Swift code and quickly see the resultant output. Apple themselves released an iOS app, called Swift Playgrounds, that provides an introduction to the language as well as the practice of programming. It is suitable for anyone from ages 12 to 100.

An Overview of Swift’s Features

It is difficult to go into too much depth on a programming language in a simple blog post, but here is a quick overview of some high-level features of Swift. The language syntax is similar to most other object-oriented languages (Objective-C, Java, C#, C++) with the notable absence of semicolons at the end of every line. Object notation using dots is easily understandable by any veteran software engineer.

Automatic memory management is a useful feature, greatly simplifying the coding process. Namespaces, generics, and native error handling (using a try-catch-throw block) are some of the modern language capabilities also provided by Swift. It even supports a few patterns from the functional programming world – most notably, map and filter.

In addition to memory management, a variety of compile-time features help enforce code safety. For example, your code isn’t allowed to set an object to nil; the complier throws an error in this situation. Xcode also includes a debugging console that provides a built-in interactive version of Swift.

If your team already has a few projects written in Objective-C, you are easily able to use Swift modules within the same codebase. This allows a quick migration to the new language or a mixture of both to leverage the capabilities and experience of your development staff. Finally, the compiler produces high-speed native machine code, providing fast performance to your users on any supported device.

The growing popularity of Swift, even beyond Apple’s proverbial “walled-garden,” makes it worthy of exploration if your shop is writing applications for the desktop or any type of mobile device – from wearables to smartphones. Leveraging Apple’s Swift Playgrounds iPad app or the IBM Swift Sandbox website offers an easy way to perform your own due diligence.

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

Quality Assurance for Smartwatches and Wearables

As smartwatches and other wearables are more embraced by consumers, compelling software applications remain the key to increased adoption of this new technology. With developers working on the cutting edge of a new software platform, QA engineers are also faced with learning how to properly vet applications for wearables. Do some of the same issues found when testing smartphones also apply on this new mobile device type?

This article offers an overview of the QA process for smartwatches and other similar devices, with a focus on app testing for Apple’s watchOS and Google’s Android Wear platforms.

Is Smartwatch Testing just an Extension of Mobile QA?

Some software development firms see wearable platforms as suitable for modified versions of their existing mobile app library. While this works for many simpler apps, the extremely limited screen real estate on a smartwatch somewhat tempers this enthusiasm. Wearables typically leverage a different set of gestures, which needs to be taken into account during development and testing.

Additionally, some smartwatch apps work in tandem with an app on a smartphone; for example, receiving a notification about an event on a wearable that gets handled on a paired smartphone app. In this case, a QA team is responsible for testing apps on two different devices simultaneously. Despite some similarities with mobile, software quality assurance on the wearable platform really needs to be treated as a different entity.

Software QA on watchOS

App development for the Apple Watch targets watchOS, Apple’s wearable operating system. Developers are able to use either Objective-C or Swift as a programming language, in a similar manner as iOS apps. Also like iOS, UX and design guidelines with watchOS are very strict, and Apple enforces them as part of their submission process, so your QA team needs to include vetting these guidelines as part of their testing regimen.

The Apple Watch user interface includes a digital crown and a variety of unique sensors, as well as the touchscreen, buttons, and microphone typical of a mobile device. Any watchOS test plans need to consider all possible inputs to the smartwatch. An Apple Watch connects to an iPhone using WiFi, Bluetooth, or NFC (near-field communications), so keep this in mind when testing watchOS apps that work with an iOS app.

Include a few Apple Watches as part of your mobile test farm if your development team plans on building apps for watchOS.

Android Wear and Quality Assurance

Google’s smartwatch operating system, Android Wear, is closely based on the regular Android platform. One advantage compared to the smartphone OS is Google made the UI interface standard among device manufacturers, which makes development and QA easier with little smartwatch model fragmentation. While not as strict as Apple, Google also provides a host of design guidelines and principles your developers and QA team need to be aware of.

While the Android SDK provides a Wear emulator, leveraging actual devices as part of your QA process is a must, as with the Apple Watch. With 10 different manufacturers offering Android Wear devices, acquiring models of the different smartwatches makes sense, but Google’s standardization of the interface lessens fragmentation problems compared to Android smartphones.

The inputs of an Android Wear smartwatch are similar to the Apple Watch, with the exception of no digital crown. In addition pairing with Android smartphones, Wear smartwatches can also be connected to iOS devices. Keep both of these points in mind when creating your test plans.

If you want more detailed information on software testing for wearables, check out this eBook by QA engineer, Daniel Knott. In addition to watchOS and Android Wear, he also covers QA on the TizenOS and PebbleOS wearable device platforms.

Keep checking back at the Betica Blog for further insights on software quality assurance – no matter the platform!