Team Topologies is not enough; you need a management model to match!
The most important part of Team Topologies is also the one most people overlook
Adopting an Intentional Strategy for Managing Team Cognitive Load
My observations on the effects of CAPEX and OPEX on organisational behaviour
During my career, I’ve been involved in different digital transformations, ranging from financial to telco institutions. Those digital transformations aim to evolve the operating model (or parts of it) and bring digital capabilities to the forefront. As part of it, new ways of working are implemented, which leads to new practices to manage capabilities. You might recognise those digital transformations by other names, such as Agile transformation, DevOps transformation, or cloud transformation.
Skills required for a CTO – be transformational
Today, most companies have a CTO. Title, responsibilities, and expectations of the job may vary per company, as there is no singular definition of a “CTO”. But what I notice from various assignments in the software and technology industry is a convergence of the skills required to fill the role of a CTO.
Thoughts on organizing architecture
When being part of an enterprise, you will meet different architects on any given day. The first one introduces itself as a solution architect, the other calls itself the enterprise architect, and they both mention a domain architect. It might feel like different names for the same thing, and perhaps even a bigger question, do we even need all of these different architects? Should the team not be able to make all of these architectural decisions by themselves?
Mental models: a reflection on AWS outage
My reflection on the recent AWS outage (November 2020). Rather than focus on the technical aspects, and how technical dependencies can be managed, I will deep dive into social aspects; namely the mental models, and how they play in a sociotechnical system under stress. I will share my experiences in how to escape from the reliability trap
Organisational structures to create autonomy: what I’ve learned from my daughter
As a parent, I have the gift to see my daughter grow. I’m learning every single day, and I’ve some learnings that apply to organisations, allowing people and teams to be autonomous
Diverge and converge to create a Context Map
My experiences of applying some Design Thinking techniques to my Context Mapping workshops
Chaos Engineering as management practice
Chaos Engineering is perceived as a technical practice. However, it can be leveraged as a management practice to create a safe environment for individuals and teams. It is one of the practices that an organisation can leverage to be anti-fragile.
Using Team Topologies to discover and improve reliability qualities
Team Topologies is the work of Matthew Skelton and Manuel Pais, and I use it as part of my job. From a sociotechnical perspective, a team-first approach is paramount for any organisation and helps to decrease the accidental complexity. As such, I’m often asked ‘How can we operate in DevOps?’ or ‘How can I have a reliable service to deliver value to my customer?’.
What does "system" mean in the socio-technical land?
One of my interests is in socio-technical systems. However, when I discuss it, namely with IT folks, the word “system” implies that it is an IT system. Well, I believe that it is more than that, and I will try to convey my ideas in this blog post.
My experience during DDD Europe 2020
First blog of the year. And I decided to blog about my experience during DDD Europe 2020. Is there anything better? 🙂
My EventStorming learning: use visual anchors before the discovery of Bounded Contexts
EventStorming is a visual collaboration technique, invented by Alberto Brandolini. This post will not go into the details of EventStorming, and you can find useful resources on the web. Instead, I will share learning from the many sessions that I facilitated!
Augment your knowledge during software modelling sessions: Decision Log
The most important learning during my career is that the act of creating software is a team effort. We can be a one-person team, but there is someone else involved; at least someone to use it.
Why Integration Tests won’t save you… or your software
Did the title tease you? Great, job is done! Today I will tell you my story about Integration Tests; it came after another knowledge share lunch with my pal Kenny.
Build and secure containers to support your CI/CD pipeline
There are 2 systems in any company that are critical: the payroll system, and the CI/CD system. Why? You may ask…
If the payroll system doesn’t work, people will leave the company and the company (may) face legal problems; the CI/CD system is the gateway to production. If it is down and there is a bug in production, it will affect your business; loss of revenue, loss of customers, loss of money, just to name a few.
Using Flyway and GitLab to deploy a MySQL database to AWS RDS securely
One of my passions is to be a trainer. Sharing knowledge, meeting new people, be continuously challenged, it fuels my brain, and I’m always learning something new. I’m creating a new training for software development teams, and one of the components is a MySQL database. Also, I’m using a public cloud provider (in this case AWS), and Xebia provides accounts to cover training, workshops and our own experiments.
What I learned from live coding during talks
Last week, Kenny Baas and I, delivered 2 talks with live coding. We were at NextBuild (with From EventStorming to CoDDDing) and Techorama NL (with Improving design and code quality with Property-based testing).
Life of a C# Developer: How to build and test an AWS Lambda locally
Today Serverless is a thing. Although everyone can write a blog post about how Serverless run on servers, I share the same visions as Mathias Verraes
How to solve Magento 2 upgrade errors
Magento 2 is the leading Open Source Software for e-commerce, with a vibrant community and proper product documentation.
Migrate Magento from on-premises to the cloud
Last summer a good friend of mine challenged me to help him move his Magento webshop from an on-premises server to the cloud. Also, to upgrade the webshop to the newest version (Magento 2).
When Cake meets NDepend
As a developer, I’m a big fan of automation. I can’t create software where I need to push buttons and run manual scripts, to test & deploy it. To help me automate my software development tasks, I use Cake, "a cross platform build automation system with a C# DSL".
Learning DDD as a team
A few sprints ago my team and I decided to invest heavily in Domain Driven Desing. We already started to develop the new microservices in a DDD fashion, with our domain as the central component. However, we wanted to formalize it and move the old microservices to this new paradigm.
TechDays NL 2017
he first conference that I attend since we arrived in The Netherlands was the TechDays NL 2017. The conference is sponsored by Microsoft, and it’s one of the most significant tech events in the Benelux area. However, even being sponsored by Microsoft, other streams of the industry were present, showing that Microsoft is no longer "the evil".
My first Coolblue Hackathon. How to be hacked
Last week we had our annual Hackathon, my first at Coolblue. Here we are taken to a remote location for 3 days to hack away. I joined a team who wants to build an application to measure the happiness in Coolblue. Wait, measure happiness? How?
Abstract from your CI. Use Cake!
Here at Coolblue, we can choose our tools from a range of technologies. A while ago, our team started moving from Microsoft MSTest to xUnit.
NDepend, first impressions on a static code analyser
During my career, I learned on the hardest way how a poor codebase can be harmful to the business. I witness behaviours in teams such as:
Build a .NET Core 2.0 Application in AppVeyor
AppVeyor is one of the Continuous Integration Services in the cloud, ready to use, with minimal configuration. It provides a Windows Server image with tooling to build, test and deploy ours .NET applications. Among the baseline software is .NET Core, however, the version is 1.0.4 (at the time of writing this post).
Create and Push a Docker Image from an Octopus Deployment
Docker is one of the disruptive technologies within virtualization, allowing the different containers to run on the same machine, sharing resources, reducing the overhead. The technology allows DevOps teams to have another tool to develop, build and ship software. One use case for containers is the Microservices Architecture Pattern.
Create an AWS Lambda function from an Octopus Deployment
AWS Lambda is one of the AWS Compute Services, alongside with Amazon EC2 or Amazon EC2 Container Service. In a nutshell, AWS Lambda is the serverless offer from AWS, allowing "you run code without provisioning or managing servers".
Code development improvement with JetBrains UpSource (configuration and first impressions)
We should seek excellence in our jobs, doesn’t matter our line of work. As professionals, we should always aim to improve the quality of our outputs, either it is customer satisfaction, code quality or just faster builds and deployments.
Running Docker SQL Server Linux container in Windows 10
Microsoft is doing a huge effort to bring SQL Server 2016 to Linux. Back in the summer, during the Dublin 2016 SQL Saturday 501, Mark Souza presented the SQL Server history. One of the major features is the ability to run SQL Sever 2016 on Linux.
Changing the operations of a Software Company – Part II
In the previous post, I wrote about my experience changing the operations of a Software Company, improving the development process.
Changing the operations of a Software Company – Part I
Agile is great… and sometimes painful. Do not get me wrong, I love an Agile work environment when everyone is keen to “Try, Fail, Fix, Learn and Move On”. For those ones that work in the software development space, we have more tasks than develop software.
Integrate .NET Core, AppVeyor, OpenCover and Codecov
As a developer, I need to take a good rest at night. In my line of work the only way to achieve it is using an integrated workflow pipeline, aka Source Code Management (SCM), Continuous Integration (CI) and Continuous Deployment (CD) with some tools in the middle.
Update project.json version number in AppVeyor
Today was a debut using GitHub Gist. In one of my GitHub projects, I need a close integration between the Continuous Integration tool (in this case AppVeyor) and my .NET Core project, specifically in how to update the version of the DLL based on the version in AppVeyor?
My CISSP journey
In this post I’m writing about my CISSP journey. For those who aren’t aware of what CISSP stand for, it’s (probably) the most respectful security certification. It’s under (ISC)2 portfolio and you can find more information here.