News from the World of Software Development – 2017

Welcome to this month’s look at a few recent stories from the software development world that hopefully pique your interest. If you want to check out last month’s news digest, simply click on the following link. Leverage any insights found in the current digest to help you and your team deliver applications more quickly and with fewer errors. Good luck!

The Crowdsourced Software Testing Market continues to Grow

The market for crowdsourced QA and software testing services remains on the upswing, according to a July article in WhaTech. Last month’s Betica blog post covered the concept in brief; looking at how Applause, a company championing crowdtesting, calls upon upwards of 300,000 testers for a variety of projects. The WhaTech article also noted the emerging popularity of services similar to those provided by Applause as a key driver of this nascent market’s growth.

The QA services market study by ReportsWeb referenced in the article predicts an annual growth rate of over 10 percent through the end of this decade. Companies are largely using crowdsourced testing to derive real-time opinions on product development, overall software quality, and verifying the efficacy of developers’ bug fixing efforts.

In addition to crowdsourced testing, the QA services market is also seeing a growth in testing companies focused on a specific industry. These companies are better able to serve verticals due to their experience in the specific domain. The article noted Infosys’s testing service offerings aimed at specialized business sectors, including finance, healthcare, insurance, and retail.

Still, a vast majority – 88 percent – of the current software testing services market performs application testing across a variety of platforms and business sectors. Offerings focused on verticals, like those provided by Infosys, are expected to become more prevalent over the next few years. The financial services industry holds the highest share of this vertical-oriented testing market at 34 percent.

Click on the following link if you are interested in reviewing the ReportsWeb study from the article.

Using Mindfulness to improve Software Development

The benefits of meditation and mindfulness are numerous, with lower stress levels and an improved ability to focus being only two notable examples. What if using mindfulness techniques could actually lead to writing better software? That is the concept of an article by Anne Krog Iversen published this week in SD Times.

Iversen feels that mindfulness helps keep “brainpower in a positive flow” which leads to staying focused on the programming task at hand. She notes the practice also boosts a software engineer’s emotional intelligence, which keeps their morale and ability to collaborate at their highest. These are important things in an era where Agile and DevOps are so popular throughout the software development world.

She recommends taking at least 15 minutes each day for an in-office meditation session; being sure to find a nice quiet place for the practice. Taking a minute of silence before each meeting is another good idea to ensure everyone stays focused and attentive. Of course, that latter tip essentially contradicts the improv session advice from last week’s article on improving Agile standup meetings.

Ultimately, finding any means to foster productivity is a worthy goal. “For a software developer, having a clear, balanced and focused mind can be a tremendous asset while striving to produce high-quality software and aiming to balance work with life,” said Iversen.

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

Improving your Agile Standup Meetings

Meetings and communication in general are essential aspects of any Agile process. The number of get-togethers probably depends on your organization’s choice of Agile framework, but some form of daily standup is likely. Making those standup meetings more valuable and efficient adds to the efficacy of any software development project.

Given that Agile is supposed to make software engineering faster, here is a unique idea for improving those Agile standup meetings. Consider this bit of insight to ensure your next development effort is completed on time and under budget.

Improv makes your Software Development Meetings more Valuable

In an article for SD Times, Madison Moore describes how improv – used in a fashion similar to a comedy troupe – offers the potential to make daily Agile meetings more rewarding. Wayde Stallmann, who works in the software development industry as an Agile coach, devised the practice to improve the productivity and collaboration level of meetings. Stallmann feels using these improv techniques during meetings – both standups and scaled retrospectives – enhances four vital Agile qualities: collaboration, trust, creativity, and communication.

Starting off each meeting with an improv activity lasting a few minutes helps get everyone’s attention focused on the task at hand. “In the first few minutes, everyone talks and has equal voice. No one dominates the game which sets the tone that no one dominates the meeting,” said Stallmann. Once again, the focus is on fostering collaboration among a team of equals.

Some of these gaming activities serve well to fire up the brain – useful for standups occurring first thing in the morning. The Alphabet Conversation is one such example. One person starts a conversion using a sentence beginning with the letter “A;” followed by the next person with “B,” and so on.

While some may feel activities like the Alphabet Conversation seem like a waste of time, Stallmann finds tangible value in the exercise. “We get into the aspect of how a team can solve a problem that no one individually can solve,” said Stallmann. He’s encountered skeptics throughout his coaching activities, but maintains everyone eventually sees the light after they try out the process.

Creating Agile Team Players

The most important benefit derived from improv activities at the beginning of meetings isn’t making software development faster; instead these efforts teach everyone on an Agile project how to be a better team player. Companies eventually see a benefit from what first seems like an unintuitive exercise. “When I was with AT&T as a Scrum Master, I had a team where we did a three-minute warmup game to start each standup, and we did this for two years straight. They did it for a year after I left the team, which I think is testament to the fact that it wasn’t because I was asking them to do it,” said Stallman.

If your team’s morning standups seem like wasteful drudgery, consider leveraging Stallman’s improv gaming techniques. If it works for AT&T, it just may make a difference for your development staff. Getting their minds focused on the gaming activity to start helps keep their attention during the rest of the meeting.

When you need additional insights on the software development process, keep coming back to the Betica Blog. As always, thanks for checking us out!

PgBouncer and Pgpool – Essential for Scaling PostgreSQL

Companies looking at PostgreSQL as a production database alternative to Oracle typically want their web applications to scale quickly as those expensive commercial alternatives. The competitive modern business landscape – most notably the fickle online customer — demands high performance, and will look elsewhere when encountering a slow eCommerce site. Ensuring high scalability when using Postgres is a must!

Thankfully, the robust open source community around PostgreSQL developed two tools aimed to boosting the database’s performance on high traffic websites. Called PgBouncer and Pgpool, they need to be considered as part of any Postgres implementation. Let’s take a closer look.

A Lightweight Connection Pooler for PostgreSQL

PgBouncer serves as a connection pooler for Postgres. It is a lightweight tool known for a small footprint with minimal overhead. The program simply caches connections to different database servers. Its ability to manage a pool of database connections limits the number of actual connections to each Postgres instance; boosting the overall performance during a high traffic scenario.

Focusing specifically on connection pooling is one of the reasons PgBouncer is able to keep its small footprint. As such, it is not usable for other vital web database functionality, such as load balancing or replication. Pgpool is an option for handling those functions in addition to connection pooling.

Postgres Load Balancing, Replication, and more

Pgpool – now in its second major iteration, so Pgpool-II – is more of a Swiss Army knife of Postgres middleware functionality. In addition to connection pooling, it also performs load balancing, parallel query processing, replication, and failover handling – vital features for any scalable web application database. All client access to a PostgreSQL instance (or multiple instances) is managed through the Pgpool middleware.

Replication and load balancing are essential for any web application receiving high volumes of traffic. Load balancing lets Pgpool-II seamlessly distribute SELECT statements across multiple replicated database servers; improving overall system throughput as a result. As middleware, it mimics the API of Postgres, so a client application connects with Pgpool-II in a similar manner as any PostgreSQL server.

PgBouncer or Pgpool – what Option works Best?

Many system architects and/or database administrators probably wonder whether PgBouncer or Pgpool makes the most sense in their database application. Maybe using both is the best solution? The following database administration blog looks at this question while providing an overview of both tools.

PgBouncer by itself is the wisest choice if connection pooling is the only major need. Maybe a separate load balancer is already in place? This rule also applies to applications hosted in resource-constrained environments where quick database calls with low throughput happen frequently.

Pgpool naturally makes sense if you need its additional features, like replication and load balancing, combined with connection pooling functionality. Both tools work well together in applications where many database connections are expected and PgBouncer’s lower overhead in regards to pooling helps the overall performance.

Whether choosing Pgpool, PgBouncer, or a combination of the two, there’s no denying both tools remain valuable options for any high traffic PostgreSQL application.

Keep returning to the Betica Blog for additional information, advice, and insights from the rich world of software development. Thanks for reading!