BT

Facilitating the Spread of Knowledge and Innovation in Professional Software Development

Write for InfoQ

Topics

Choose your language

InfoQ Homepage Design Content on InfoQ

  • The DDD Do-Over

    Jimmy Bogard had a rare opportunity to do what many developers want after finishing a tough project -- a do-over. His team worked on two very similar projects, both using DDD. He discusses the lessons learned from the first project and how the team avoided common pitfalls and was more successful on their later project.

  • Refactoring to a Deeper Model

    Paul Rayner uses a case study to demonstrate how refactoring your code can lead to a deeper understanding of your domain model. Through common code refactorings, combined with the implementation of patterns, the codebase became more cohesive and easier to reason about, reducing the time to perform some common tasks from weeks or months to just hours.

  • Coaching Technical Practices

    In the past 4-5 years I have been working as a software development coach, helping organizations around London improve their technical practices. I focus on XP practices, specifically TDD, Pair Programming, Refactoring and Simple Design. In this article I share my experiences organizing coaching sessions, including subject selection and sequencing, exercises for each subject and session formats.

  • Models and Their Interfaces in C# API Design

    Traditional MVC, MVP, MVVM, Web MVC; the common element in every UI pattern is the Model. And while there are many articles discussing the view, controllers, and presenters in these architectures, almost no thought is given to the models. In this article we’ll look at the model itself and the .NET interfaces that they implement.

  • Managing Data in Microservices

    This article provides practical examples of how to manage data in microservices, with an emphasis on migrating from a monolithic database. It is recommended to build a monolith first, and only migrate to microservices after you actually require the scaling and other benefits they provide.

  • Five Things Every Developer Should Know about Software Architecture

    Given the distributed nature of the software systems we’re now building, and the distributed nature of the teams building them, it's more important than ever to understand the basics of software architecture. As a short introduction to the topic and to debunk some myths, here are five things that every software developer should know about software architecture.

  • Q&A with Dan Szuc and Jo Wong on Make Meaningful Work

    Raf Gemmail speaks with UX leaders Dan Szuc and Josephine Wong about Make Meaningful Work, a humanistic framework and set of practices born from applying human-centered design to the workplace. Sitting beneath existing methodologies, it enables teams to share and understand character perspectives, in working towards producing impacts which are meaningful to them.

  • Q&A on The Rise and Fall of Software Recipes

    Darius Blasband has written a book which challenges the conventional wisdom of software engineering: he protests against the adoption of recipes and standards-based approaches and rails against the status-quo. He calls himself a codeaholic who advocates for careful consideration of the specific context and the use of domain specific languages wherever possible.

  • How to Effectively Collect User Feedback in Mobile Application

    This article analyzes a variety of forms of collecting feedback in mobile applications from a number of perspectives, including user experience, development, operations,and cost. It also analyzes in which scenario each form of feedback is more applicable, with the purpose of helping mobile application developers or product managers use the right feedback mechanism and improve their products.

  • How to Sell Refactoring? The Case of Nordea Bank AB

    Refactoring is often not a technical challenge. Teams can accurately diagnose inefficient code design. If they have sufficient time and budget at their disposal, they would probably get things done. In this article, we focus on the strategic code refactoring. This distinction was introduced by the BNS IT consultants as part of the method called Natural Course of Refactoring.

  • In Defence of the Monolith, Part 2

    In the age of microservices, "monolith" has become a dirty word. Yet, monoliths, designed with an emphasis on modularity, can be a better solution for complex domains, such as enterprise applications. The second part of this 2-part series covers a practical approach to creating a successful, modular monolith.

  • In Defence of the Monolith, Part 1

    In the age of microservices, "monolith" has become a dirty word. Yet, monoliths, designed with an emphasis on modularity, can be a better solution for complex domains, such as enterprise applications. Part 1 of this 2-part series explores the key differences between microservices and monoliths, highlighting the pros and cons of each approach.

BT