News from the Worlds of Software Development and QA — July 2016

Welcome to this month’s look at a few interesting stories over the previous few weeks from the worlds of software development and QA. Last month, the new continuous testing QA methodology and the hope for standardized software testing practices in the video game industry were some of the topics we covered. Read further to see if any of July’s news inspires your own development and testing efforts.

Leveraging the Scrum to improve the QA Process

Companies that are veterans of the Agile methodology typically use scrums to promote communication between developers and their business stakeholders. These daily stand-up meetings ensure project statuses get reported and important action items aren’t missed. In a July article for TechRepublic, Transworld Data President, Mary Shacklett, talks about the benefits gained including QA personnel in the scrum.

She describes a variety of software failures in her past that could have been prevented if only collaboration between QA and developers were improved. This needs to happen throughout a project, but it is especially vital at the beginning when application design and prototyping take place. In the past, we’ve talked about the importance of catching software (or design) errors early in the process, as the cost of fixing issues increases exponentially later in the SDLC.

Shacklett also feels both developers and QA engineers need to be involved with executing unit tests, a task typically falling to the developer who wrote the code in question. End users and business stakeholders also need to be involved at important points during the SDLC, most notably before the app (or enhancement) is deployed into production.

Popular Developer Phrases that annoy the QA Engineer

As we just noted, it is important that software engineers and QA professionals work well together on the same team. That doesn’t mean developers don’t have their pet sayings that annoy their software testing colleagues, as noted in an article in DZone. While humorous on the surface, they do reveal a need for better collaboration — something improving in the industry with the increased adoption of Agile. Here is a quick sample.

“But it works on my machine” — is a common refrain after a QA engineer finds a bug in code that probably passed the developer’s unit tests. Maybe that company needs to use a better environment manager, like Vagrant

“Are you sure you are testing the right version?” — which is a phrase potentially illustrating the poor management of versioning and builds.

Check out the DZone article for other similar examples of programmer-speak.

The Hottest Technologies for Software Developers

A recent survey of software engineers from Evans Data reveals the hot technologies currently in vogue with developers. Four technologies stood out from the rest of the pack. The Internet of Things was noted by 45 percent of the surveyed Big Data developers, while the Cloud is considered hot by 27 percent of all developers.

Over half of the data mining app developers are working on robotics applications, and nearly a quarter of all developers are involved in machine learning development.

It is surprising to note the importance of parsing massive amounts of data among IoT and robotics applications, which probably speaks to the higher adoption rate of those two technologies in the industrial sector compared to the home.

Come back to the Betica Blog for additional news and insights from the related worlds of software development and QA.

A Practical Application of Agile Tribes for Software Development

Last week we provided an overview of Tribes, a recent innovation in the world of Agile software development methodologies. In a nutshell, Tribes organizes a development shop into teams of employees known as Squads, Tribes, Chapters, and Guilds by either the projects they work on, as well as their role in the company. Squads and Tribes relate more to specific project work, while Chapters and Guilds focus on their profession (developers, testers, etc.).

If all these different groups seem a bit confusing, check out last week’s article for a more detailed explanation. This time out, we are going to look at a practical example of how a software development shop uses this organizational structure to build applications in a more efficient manner.

How Spotify made Agile Work

Spotify, the music streaming company, is one of the first enterprises where the Agile Tribes structure saw a successful implementation. Alistair Cockburn, one of the original developers of the Agile idea, was reportedly impressed with Spotify’s Tribes matrix implementation.  “Nice. I’ve been looking for someone to implement this matrix format since 1992, so it is really welcome to see,” said Cockburn.

A matrix-like structure isn’t completely new when it comes to structuring a software development organization. Spotify’s innovation comes by grouping people with different skill sets into Squads, so software engineers, QA professionals, and business analysts all work on the same team reporting to a Product Owner. The focus is on product delivery as opposed to organizing workers by their function. Instead, the Chapter structure organizes employees in this manner.

At Spotify, technical professionals are typically in all four groups; this means they essentially have two bosses. The Product Owner of their squad is focused on the building a top notch product, while the Chapter Lead encourages everyone in their Chapter to strive for technical excellence.

Spotify realizes that clashes sometimes occur within this organizational structure. Maybe a Product Owner wants to speed up a development cycle against the wishes of the Chapter Lead responsible for the developers on that PO’s Squad? The company feels this is a healthy kind of tension that ultimately results in a better product for consumers. 

The System Owner is responsible for the Overall Architecture

With a host of Squads all working on their own specific projects, there can be difficulty in enforcing standards and a common technical architecture across the entire department. Spotify felt there was a need for a System Owner role responsible for the overall architecture of their music streaming product. The System Owner includes two professionals following the DevOps principle: one is typically a developer Chapter Lead, while the other works in a systems role.

The System Owner role essentially serves as a traffic cop, ensuring the various Squads don’t clash when working on common parts of the overall application. The release process, documentation, stability, and scalability are some of the other areas of responsibility. Finally, the System Owner works with Spotify’s Chief Architect who handles architectural standards across all applications released by the organization.

Hopefully, this look at Agile Tribes in actions offers some insights for organizing your own company’s software development process. Stay tuned to the Betica Blog for additional news and ideas from the world of software development.

Using “Tribes” to successfully implement Agile

As the Agile software development methodology continues to mature, companies are beginning to leverage new and interesting strategies to implement the concept at their shops. Introducing something as revolutionary as Agile can be a difficult task with older, more entrenched IT teams. Even as the movement celebrates its 15th anniversary this year, it still seems foreign to development teams used to the Waterfall and other traditional methodologies.

Some shops are beginning to organize their development, QA, and business stakeholder teams into groups known as Squads, Tribes, Chapters, and Guilds to better facilitate the collaboration and communication vital for a successful Agile transition. Let’s take a look at this concept to see if it makes sense for your company.

Defining Agile Tribes and Squads

This new method for organizing teams in an Agile shop first evolved at the music streaming company, Spotify. The smallest group in their organizational structure is known as a Squad, led by a Product Owner. They tend to sit together; work closely on the same projects, and typically include developers, testers, and business analysts.

A Tribe is made up of a collection of Squads which share space in a common area. For example, a company’s mobile software development Tribe contains separate Squads responsible for iOS, Android, and other mobile platforms. The Tribe Leader facilitates an environment where each Squad is able to collaborate and share findings with each other, but they aren’t necessarily working on the same projects.

Chapters and Guilds help develop the Individual and the Organization

Chapters are independent entities within the overall structure that group employees based on their actual job duties. Many shops will have a Developer Chapter, QA Chapter, Business Analyst Chapter, and so on. A Chapter Lead essentially serves as the direct manager for everyone in their chapter when it comes to salary reviews, skills development, etc.

Guilds are another, less formal, structure inside the organization that are similar to chapters in that they include employees from different tribes, but are instead focused on specific areas of interest, like web development, Agile coaching, etc. The Guild Coordinator serves as the leader. They support the technical growth of the organization by researching new ideas while sharing found insights, code examples, best practices, and more.

There is a separate operations team for handling network and server administration at Spotify, but enterprises already embracing DevOps can easily include employees in that role into relevant Squads and Tribes. In that scenario, creating Chapters and Guilds specifically for those workers also makes perfect sense.

A Constantly Evolving Structure

Spotify uses quarterly surveys and regular dependency reviews to ensure their organizational structure is successfully meeting the needs of the business. This helps to mitigate any clashes and redundancies between individual Tribes and Squads. Additionally, the scope of daily Scrums is able to expand by including more Squads if required on larger products.

Ultimately, these innovative managerial efforts by Spotify and other firms illustrate how embracing the Agile methodology — albeit combined with the organizational changes more typical of DevOps — lets enterprises reach new heights by fostering a highly efficient software development process.

Come back to the Betica Blog for additional insights from the world of software development.