Everyone’s a (Perl) Critic, and You Can Be Too!

The perlcritic tool is often your first defense against "awkward, hard to read, error-prone, or unconventional constructs in your code," per its description. It's part of a class of programs historically known as linters, so-called because like a clothes dryer machine's lint trap, they "detect small errors with big effects." (Another such linter is perltidy, which I've referenced in the past.)

You can use perlcritic at the command line, integrated with your editor, as a git pre-commit hook, or (my preference) as part of your author tests. It's driven by policies, individual modules that check your code against a particular recommendation, many of them from Damian Conway's Perl Best Practices (2005). Those policies, in turn, are enabled by PPI, a library that transforms Perl code into documents that can be programmatically examined and manipulated much like the Document Object Model (DOM) is used to programmatically access web pages.

Four Scrum Master Success Principles

TL; DR: Four Scrum Master Success Principles

Contrary to popular belief, the Scrum Master success principles are tangible, when we guide the analysis with an outside perspective.

Read on and discover four Scrum Master success principles, from when not to use Scrum to product quality to supporting the Product Owner to putting self-management at the center.

A Case Study on Spring Framework

The Spring Framework is a great application framework and inversion of control container for the Java platform. It is also a great example of high-quality software. Spring Framework is the foundation for all Spring projects. Collectively, the Spring Framework and the family of Spring projects is often referred to simply as "Spring." Spring provides everything required beyond the Java programming language for creating enterprise applications for a wide range of scenarios and architectures. It has been developed over 17 years.

We analyzed the Spring Framework with CodeMR. CodeMR is an architectural software quality and static code analysis tool. You can find  analysis report generated with CodeMR at: https://www.codemr.co.uk/case-reports/spring-framework/html/html_report_spring-core/htmlx/lbd/dashboard.html.

Help Remote Teams Thrive

Moving to remote work is a huge challenge for many organizations. It can feel slower and harder than working in an office. So why is it that some organizations seem to actually run better remote?

Well, it turns out that working remotely is just exacerbating the challenges we all face. Those organizations that are thriving have learned to address those challenges, so working remotely isn’t as problematic for them.

Challenges of Adopting Service Mesh in Enterprise Organizations

There are many challenges to overcome.
You may also like: What's a Service Mesh? And Why Do I Need One?

Recently I wrote a piece for DZone and their Migrating to Microservices Report on the challenges of adopting service mesh in an enterprise organization. One of the first things we tackle in that piece is “whether or not you should go down the path of adopting a service mesh” Here’s what I said:

Start with an answer of “no”. If you’re just getting started with microservices and a handful of services, make sure you have the foundational pieces in place first. Microservices and its associated infrastructure are an optimization enabling you to make changes to your application faster. You can make a lot of strides toward going faster without a service mesh. You may even want some of the goodness that a service mesh brings without all of the complexity. Check out something like Gloo, an API Gateway built on Envoy proxy.

Changes in Cybersecurity (Part 2)

We're excited to announce Trend Reports by DZone beginning with Application Security! Everyone involved in building applications — from developers to CTOs — should think about security ramifications. This Trend Report will explore what developers feel are the most prominent threats, where corporate priorities lie, and how secure coding practices are being implemented. Keep an eye on your inbox and our homepage on July 22nd to learn more.

To understand the current and future state of the cybersecurity landscape we spoke to, and received written responses from, 50 security professionals. We asked them, "How do you see the cybersecurity landscape changing?"

We Can’t Seem to Escape the Problem of Complexity in Software Development

A typical project in the IT industry often looks like a giant roller coaster. At first, it seems that everything is fine, and superhero programmers will find a solution for any kind of problem. 

But a little while later, we learn that even good ideas can fail. And we have to continue building the project, but this time with the help of crutches.  

The Importance of Agile Leaders

An Agile mindset is crucial in management roles for organizations that are moving towards Agility. I observed this while working in various organizations and currently am a witness of it while assisting my customers.

Decisions, actions, directions, and vision often come from the management level, especially in the hybrid world. When an organization thinks about applying Scrum, they shouldn’t expect only changes in how teams work, but also,  they should start considering how the management team intends to operate.

Large-Scale Agile: Where Do You Want Your Complexity?

One of the pernicious problems in large-scale software development is cross-team coordination. Most large-scale Agile methods focus on product and portfolio coordination, but there's a harder problem out there: coordinating the engineering work.

Poor engineering coordination leads to major problems: bugs, delays, production outages. Cross-team inefficiencies creep in, leading to Ron Jeffries' description: "a hundred-person project is a ten-person project, with overhead." One of my large-scale clients had teams that were taking three months to deliver five days of work—all due to cross-team coordination challenges.