InfoQ Homepage Articles
-
Functional UI - a Model-Based Approach
Functional UI techniques rely on the functional relation between events processed by the user interface and the actions performed by the interface. If the user interface has discrete modes in which its behavior can be expressed simply, a modelization with state machines is an advantageous functional UI technique. This article explains the technique, its benefits and how it is used in the industry.
-
Software, Aesthetics, and Craft: How Java, Lisp, and Agile Shape and Reflect Their Culture
The software industry styles itself on architecture and construction, but rarely discusses aesthetics.
-
How to Avoid Cascading Failures in Distributed Systems
Cascading failures are failures that involve some kind of feedback mechanism. In distributed software systems they generally involve a feedback loop where some event causes either a reduction in capacity, an increase in latency, or a spike of errors. Laura Nolan explores them using public accounts of real production incidents.
-
Q&A on the Book Unleashing the Power of Diversity
The book Unleashing the Power of Diversity by Bjørn Z. Ekelund describes the Diversity Icebreaker, an experiential communication exercise where people learn about themselves and others. The differences are named Red, Blue and Green, a language of diversity that is relevant for interaction, problem solving, giving feedback, and creating inclusiveness and trust.
-
Service Mesh Ultimate Guide 2020: Managing Service-to-Service Communications
This online guide aims to answer pertinent questions for software architects and technical leaders, such as: what is a service mesh? Do I need a service mesh? How do I evaluate the different service mesh offerings? In software architecture, a service mesh is a dedicated infrastructure layer for facilitating service-to-service communications between microservices, often using a sidecar proxy.
-
Application Models as Working Software
Discusses using an application model in an iterative time-bounded development approach. Employ user flows to create easily comprehended stories that contain sufficient detail. Get closer involvement from UX design and product owners to create solutions prior to the first coding iteration. Incorporate as-built decisions back into the model to ensure its relevance in an ongoing product lifecycle.
-
The Kongo Problem: Building a Scalable IoT Application with Apache Kafka
In this article, author Paul Brebner discusses the best practices for developing IoT projects using Apache Kafka and Kafka Streams technologies and how to maximize Kafka scalability.
-
Go, See & Do. A Guide to Running a Gemba Sprint
This article is a guide to organizing a Gemba sprint; a sprint where teams, leadership, and management work together with the ultimate goal of coming together as an organization. Ahmad Fahmy explores what is needed to set up a Gemba sprint, how to organize and run one and provides some dos and don'ts to make a Gemba sprint effective.
-
Mono: from Xamarin to WebAssembly, Blazor, and .NET 5 - Q&A with Miguel de Icaza
Mono started as an open source .NET platform in 2001, being developed by Xamarin until 2011. Since the company’s acquisition by Microsoft in 2016, both Mono and .NET Core have been developed in parallel. In the light of the most recent releases, InfoQ interviewed Miguel de Icaza —the original author of the Mono project—to talk about the current state of Mono and its future in the .NET ecosystem.
-
Q&A on the Book Agile Machine Learning
The book Agile Machine Learning by Eric Carter and Matthew Hurst describes how the guiding principles of the Agile Manifesto have been used by machine learning teams in data projects. It explores how to apply agile practices for dealing with the unknowns of data and inferencing systems, using metrics as the customer.
-
Q&A on the Book Righting Software
The book Righting Software by Juval Löwy provides a structured way to design a software system and the project to build it. Löwy proposes to use volatility-based decomposition to encapsulate changes inside the system’s building blocks, and explains how to design the project in order to provide decision makers with several viable options trading schedule, cost, and risk.
-
Q&A on the Book Managing the Unmanageable
The book Managing the Unmanageable by Mickey W. Mantle and Ron Lichty provides rules, tools, and insights to manage programmers and teams. It explores how to hire and develop programmers, onboard new hires quickly and successfully, and build and nurture highly effective and productive teams.