Five tips to avoid software development cost overruns
Companies are turning more and more to technology to meet specific needs such as eliminating recurring tasks or increasing productivity and efficiency. While there is a plethora of software available on the market for payroll management, communication within different business units, and marketing automation, companies are increasingly looking to develop customized software solutions to meet specific
The rubber duck debugging method or the art of solving a problem when you’re a programmer.
When you write code for software, if there’s one thing a programmer knows for sure, it’s that at some point it will get stuck. This happens all the time, and any programmer can tell you that. No matter how much experience you have, whether you are a beginner or a veteran, you will find yourself
Industry 4.0 and Internet of Things
The concept of the Internet of Things (IoT) is basically very simple. Sometimes we also talk about Industrial Internet of Things (IIoT) for the industrial sector. The idea is simply to connect physical objects to the digital world through the Internet. It gives these objects their own digital existence. But Why? Initially, it’s essentially about
Agile on the cloud…
Have you ever heard of platforms such as Amazon Web Services (AWS), Google Cloud Platform or Microsoft Azure? Do you know how to get the most benefits from them? If we do not properly understand the different services offered and how they can interact with each other, transitioning toward Cloud Computing can be a huge
Spikes and Emergent Design
There is a technique, initially introduced by the Extreme Programming movement, which consists in adding an element to the product backlog that we call a “spike.” The team agrees on a limit of time to be invested in this item. The goal is to acquire the knowledge necessary to reduce the risk, understand a requirement,
Pair Programming: how to maximize the benefits of collaboration?
Pair programming is an Agile software development technique that was popularized in the 1990s by the Extreme Programming methodology. One of its rules is that each work item performed must go through the hands of at least two team members. As a reflex, we might think that the code review process is the ideal way
Do you care about testing?
I recently “talked” to my past self of several years ago, and we came to talk about unit testing. Back then, I did not care about unit testing. Today, I still do not care, but in a different way. Despite years passed, many of the issues raised in this conversation are still relevant. Do
Why do I want to start coding again since I became Product Ower?
Imagine that you are Product Owner for a Sodoku application: you would probably be able to describe the game’s rules to your development team and to provide as condition of success, a resolved puzzle and the corresponding valid starting grid. But it would be more difficult to specify a starting point without the reference of
The value of the Event Store’s events (part 2)
In the previous post, we saw how to create events based on commands. Why not update the database directly? Why do we need to go through an Event Store? Let’s talk a bit about the current situation… Currently, the majority of systems keep their data in a relational database common to several information systems. The
Imagine a world where the past is the only truth… all the truth (part 1)
Your computer systems surely contain several structured and relational databases. You must regularly make copies to avoid losing information. Despite these precautions, you lose all the intermediate states (system states after a past event) of your information systems. If all you are interested in is the final state, it is not too serious. However, it
Microservices: an Agile architecture — Part 2
Read the first part of this article here: “Microservices: an Agile architecture — Part 1”. Using Domain Driven Design (DDD) to create microservices By relying on model separation offered by DDD, we can easily join the same concept at the basis of microservices. We only need to break down the business model in several
Microservices: an Agile architecture — Part 1
The digital era in which we live nowadays requires us to bring several changes to our way of doing things. Businesses that are still seeing software development as a costly burden and not as a strike force, will soon face many important challenges. To surf on the technological wave, businesses need to be able
Hello World business version
The Basic Hello World The best way of learning a new language is still to write the classic Hello World application. I can’t count the number of times I’ve started a new project using this simple application. For example, this is the simplest Hello World application that can be done in C#: After launching Visual Studio and