DZone

Team Topologies: Organizing Business and Technology Teams

Effective software teams are essential for any organization to deliver value continuously and sustainably. But how do you build the best team organization for your specific goals, culture, and needs?

In the first episode of a two-part series, Matthew Skelton and Manuel Pais, authors of the new book Team Topologies: Organizing Business and Technology Teams for Fast Flow, join the Dev Interrupted podcast to share their secrets to successful team patterns and organization design. They also discuss how to build adaptive team models capable of evolving with technological change and organizational maturity.

Top 5 DevOps Success Factors

Several studies have found that incorporating well-planned DevOps into a project can have a positive effect. Some have found that developers in a DevOps environment spend up to 22% less time on unplanned work and reworking developed features.

This article will run you through several key factors of DevOps. It will ensure you create an efficient development environment for your software teams. It will focus on incorporating DevOps practices and the benefits that it brings to your Dev and Ops teams’ life.

Simple code: Version control commits

Currently the most popular version control system is git and I’ll be writing this based on git and it’s functionalities and capabilities.

Git is often seen as a way to enable distributed programming i.e. multiple programmers can work on the same code repository quite easily without disturbing each others work (much). In addition to that just like other VCS’s it’s also a log of work but to my experience that part is often unfortunately neglected. What I will be focusing this time is the log part because I think it deserves more attention.

Why to create a meaningful log?

The git log should consist from small meaningful changesets where each commit addresses a single problem. By dividing the log to small commits it enables resilient way of working. Being resilient enables simple and fast procedures to rollbacks, reviews, tags, branching etc.

Lets say that a developer is implementing a REST API. The API needs a web layer that receives the HTTP requests, it probably has some sort of logic layer to do data transformations and validations and maybe some calculations and finally it has a data storage where the data is persisted. There are options how to record this work to the log. One option would be to implement the API and record a single commit or squash the commits before pushing the changes to remote so it would become a single commit. Another option would be to record commits every now and then while developing and finally push those commits as is to the remote repository. Yet another way would be to carefully pick what is recorded per commit in order to have a set of meaningful commits that each address a single issue.

Example of the first approach would be something like this:

ContainerD Kubernetes Syslog Forwarding

You might have heard that starting version 1.20, Docker is no longer the container runtime in Kubernetes. Although this change didn’t affect the core functionality of Kubernetes, or how pods work in their clusters, there were users that relied on resources provided by the Docker engine. A small sentence in the blog article calls out that a critical component would be affected: logging.

Docker was not the only container runtime at the time of this change. Most cloud providers of Kubernetes (GKE, EKS, or AKS) managed this upgrade by defaulting the new cluster’s runtime to containerd. With this, their native tooling to export logs to their own logging services was properly migrated. If you would deploy a new cluster in version 1.20, you wouldn’t notice that something has changed. Behind the scenes, the monitoring agents were upgraded along with the clusters to start using containerd as a source for logs. No outages, no missing information.

The Battle Between Linters, Scanners, and Data Flow Analysis

When it comes to security tools, you’re typically balancing two things: how much time it takes for a tool to run to get deeper results vs. the quality of results returned.

As you might expect, faster tools scan just the source code in a single repo (without looking in the open-source libraries and SDK used) and may detect easy-to-find vulnerabilities. In contrast, tools that give better results and can find more challenging vulnerabilities with fewer false positives require more time to complete their scans.

Boost Your Development Environment With Ubuntu Multipass

Ubuntu Multipass is part of the Ubuntu ecosystem, but it works fine on other platforms and operating systems. It can be found at https://multipass.run. I use it daily during my development work. It has become an indispensable tool for keeping my workstation clean. It helps with the testing and deployment of my software.

Flame Wars Disclaimer

This article is not about cloud, deployment strategies, Kubernetes, helm, swarms, AWS vs Azure and alike. It’s about using virtual machines to help software developer and devops engineer with daily work.

What is No-Code and Low-Code?

According to Gartner No-Code and Low-Code will deliver 50% of all software projects in the year 2021. Even if these numbers are inflated, you’d have to be living under a rock to avoid noticing it is gaining traction, and it is gaining traction very, very, very fast. Hence; What exactly is it? Will it steal your job? And why should you even care?

The difference between Low-Code and No-Code

First of all, there is a huge difference between No-Code and Low-Code. No-Code is typically targeting “citizens”, as in people not able to create software systems themselves due to lack of software development skills. No-Code is often referred to as “citizen development” – Implying people without knowledge about programming language and software development theory can create software systems. No-Code is useful for simple customer facing frontends, with some interaction with pre-defined services, and simple database structures. However, we’re a far cry away from being able to deliver complex systems using No-Code, and I am not sure if we will ever reach that point either. Besides, even No-Coders requires low level modules and components to interact with, something typically accomplished by working together with a “real” software developer, churning out these components such that the “citizen” can orchestrate these components together.

How To Build a CI/CD Pipeline in Azure DevOps

Azure DevOps by Microsoft Azure is one of the leading tools that automate CI/CD’s process and, in turn, supports automatic builds and code projects to make them available to others. The Azure pipelines combine Continuous Integration (CI) and Continuous Delivery (CD) to consistently test and build the code and ship it to the target environment.

In this article, we will learn how to configure an Azure CI/CD pipeline and integrate it to LambdaTest Azure DevOps for bug tracking. 

How to Improve Upon Google’s Four Golden Signals of Monitoring

Google’s Four Golden Signals of MonitoringIf you’re an SRE, there’s a decent chance that you live and die by the “Four Golden Signals.” Alongside similar concepts like the RED Method, the Four Golden Signals form the foundation for many a monitoring and observability strategy today.

That’s not a bad thing. In many ways, the Golden Signals excel at distilling complex monitoring processes down into a core set of easy-to-digest concepts.

5 Tips for Writing Accessible Code As a Software Engineer

Technology forms the major backbone of our society today. However — not all technology is accessible to people with disabilities, which comprise around 15% of the world’s population. According to the 2021 WebAIM study, “97% of the top one million home pages had accessibility issues.” Moreover, according to an analysis from UsableNet Inc., the number of web accessibility lawsuits is expected to reach a total of a whopping 4,195 in 2021. These statistics reveal that we, in the software community, can do a lot better to make our technology more accessible. Software engineers can contribute by baking accessibility in their development process instead of waiting until accessibility auditing or fixing bugs at the end. Here are a few ways on how to get started:

1. Review the Web Content Accessibility Guidelines (WCAG)

These are an extensive set of guidelines on how to make your web application accessible to not just users who use screen-readers, but also other types of disabilities such as Deaf/Hard of Hearing, cognitive or motor disabilities. Many of these guidelines and principles also apply to Desktop based applications or really any technical product you can think of.  For software engineers focused on web development and who want to learn more the accessibility infrastructure of the web, I recommend reading up on Accessible Rich Internet Applications (ARIA) and the Accessibility Tree.