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!

Add Chef to your Organization’s DevOps Kitchen

Companies looking at DevOps with the hopes of streamlining their software development process sometimes struggle with the initial implementation. Leveraging the right set of DevOps tools is an important factor in achieving success as much as any organizational or policy-based changes. One such tool – known as Chef – is especially helpful for shops taking advantage of the Cloud as part of their overall application engineering strategy.

What follows is a closer look at the features and functionality of Chef to see if it allows your team to manage server infrastructure quicker than ever before.

Open Source Server Configuration Management for the Cloud… and more

Chef’s main functionality centers on the management of Cloud-based infrastructure. It offers value to any company whether they manage ten servers or ten thousand – no matter the platform. It lets your development staff focus on ensuring their software runs properly, instead of having to deal with the drudgery of server administration tasks. While it truly shines in the Cloud, Chef also works with on-premise servers as well as a hybrid infrastructure.

A Code-based Approach to Server Management

What makes Chef unique among similar infrastructure management tools is its emphasis on using code to define and automate a collection of servers. This lets you handle automated server management in a similar fashion as your applications, with development, QA, and production environments ensuring a high level of quality. Additionally, letting your developers manage servers using code fits nicely with the overall philosophy of DevOps, where formerly segregated duties are handled in a more communal fashion.

A development kit, known as the Chef DK, includes everything required to develop and test infrastructure automation code. Test Kitchen handles the running of these tests, using InSpec as the TDD programming language. Not surprisingly, the included code analysis tool is known as the “Food Critic.”

Continuing with this kitchen metaphor, the collection of code used to automate and define a server infrastructure is known as a cookbook, and – of course – they are made up of recipes. This nomenclature definitely helps developers new to Chef better understand the functionality of each part of the system. Behind this somewhat humorous style lies a very powerful tool.

The Chef Server is the central repository for every cookbook in the system. This design allows the Server to manage any number of physical or virtual machines in your infrastructure. The Chef Client runs on each of these nodes; staying in constant communication with the Server.

An Essential Tool for DevOps

As noted earlier, Chef offers any DevOps organization the means to manage their technical infrastructure easier than before. Its code-based scheme for server management lets you leverage your development talent in a new fashion. The kitchen-based metaphor used in Chef also makes it easy to understand by both your technical and non-technical team members.

Chef, and similar tools, like Ansible which we previously covered, play an important role in any company deriving value from its investment in DevOps. Ultimately, this is a methodology requiring more than just a change in organizational structure for success. Download Chef to see if it makes sense in your shop.

Thanks for reading the Betica Blog. Keep coming back for additional insights from the software development world.