Adaptive Thinking Agile Architecture ATDD Automation BDD CI/CD Clean Architecture Development Feedback Loops Growth Hexagonal Architecture ISO Leadership Management Performance Productivity Quality Sales Scalabilty Scrum Standardization Startups Systems TDD Team Collaboration Teams Teamwork Tech Test Automation Unit Testing
TDD: Test Doubles in Unit Testing. Should we use Fakes? Stubs? Mocks? February 14, 2022 TDD: Test Doubles in Unit Testing. Should we use Fakes? Stubs? Mocks? In unit testing, Test Doubles are used to… “If you think good architecture is expensive, try bad architecture. —Brian Foote and Joseph Yoder” February 10, 2022 “If you think good architecture is expensive, try bad architecture. —Brian Foote and Joseph Yoder”― Robert C. Martin, Clean Architecture: A Craftsman’s… TDD in the real world. Clean architecture in the real world. February 10, 2022 DD in the real world. Clean architecture in the real world. A common complaint regarding TDD training is that we… Is acceptance testing only at E2E level? February 9, 2022 Is acceptance testing only at E2E level? Can our unit tests also be acceptance tests? Case 1. Web App: Suppose… When do we make design decisions inside a TDD red-green-refactor cycle? February 8, 2022 When do we make design decisions inside a TDD red-green-refactor cycle? In Mockist TDD, we’re making all decision decisions early,… TDD and Clean Architecture – Driven by Behaviour February 7, 2022 TDD and Clean Architecture – Driven by Behaviour TDD is painful for many teams. Unit testing takes up so much… TDD and Clean Architecture – Driven by Behaviour February 4, 2022 TDD and Clean Architecture – Driven by Behaviour YouTube recording: https://lnkd.in/eNBYHwdD 1. Why are we here – TDD is painful,… The nightmare of flaky tests February 3, 2022 The nightmare of flaky tests. And how to solve it. Remember those tests which SOMETIMES pass and SOMETIMES fail… without… How to fail at TDD? February 1, 2022 How to fail at TDD? TDD is painful for many teams. But over time, we learned to accept the pain.… Without TDD, your KEY DEVELOPER is the ONLY person who knows how the details about the system behaviour. January 31, 2022 Without TDD, your KEY DEVELOPER is the ONLY person who knows how the details about the system behaviour. Only they… TDD and Hexagonal Architecture – Unit Testing Use Cases January 28, 2022 TDD and Hexagonal Architecture – Unit Testing Use Cases Is your job just to write some code? Or to build… How do automated tests affect development team productivity? January 26, 2022 How do automated tests affect development team productivity? Feedback? Quality? Speed? 1. If we have automated tests: When a developer… “Want to lose 30 pounds in a month?” January 26, 2022 “Want to lose 30 pounds in a month?” Gyms sell you an outcome that you want. Losing weight. Living a… What’s a Unit Test? Integration Test? E2E Test? January 25, 2022 What’s a Unit Test? Integration Test? E2E Test? Classicist vs Mockist interpretations? What’s a unit, interface & implementation? 1. UNIT… Can TDD make you non-agile? January 24, 2022 Can TDD make you non-agile? Yes. When it’s done poorly. Let’s go back to agility: Agility is about being responsive… You can’t be agile without TDD. Not sustainable. January 21, 2022 You can’t be agile without TDD. Not sustainable. Well, you may “appear” to be agile without TDD during the first… How does TDD help us navigate a complex world? January 18, 2022 How does TDD help us navigate a complex world? Certainty in an uncertain world? In TDD, when we write unit… Does TDD mean someone is a better developer? January 18, 2022 Does TDD mean someone is a better developer? Does TDD automatically lead to amazing design? Does TDD turn development into… If you don’t know where you’re going… how will you reach your destination? January 17, 2022 If you don’t know where you’re going…… How will you reach your destination? If you don’t know exactly what the… Why is software development so slow? January 17, 2022 Why is software development so slow? Why does it take too long to implement simple changes? John: “How long will… When TDD goes bad January 13, 2022 When TDD goes bad. When you feel that TDD is working against you. When you feel like it’s a big… What’s worse? TDD does badly? Or TLD done badly? January 12, 2022 What’s worse? TDD does badly? Or TLD done badly? Which one causes MORE damage? When talking about TDD, we always… TDD isn’t as easy as it looks. Clean architecture isn’t either. January 11, 2022 TDD isn’t as easy as it looks in tutorials. Clean architecture isn’t either. A common complaint regarding TDD training is… TLD = Running around in circles! January 11, 2022 TLD = Running around in circles! TLD provides longer feedback loops, you have more rework.TDD provides shorter feedback loops, you… TDD provides 5 rapid feedback loops January 10, 2022 TDD provides 5 rapid feedback loops during software development. Feedback loops are essential in keeping us on-track towards reaching goals.… TIME is MONEY January 5, 2022 TIME is MONEY. We don’t want to waste time. Can we PROVE what’s faster? Test-Driven Development (TDD) vs Test-Last Development… 100% Unit Testability in Hexagonal Architecture January 4, 2022 100% Unit Testability in Hexagonal Architecture Let’s go back in time… to the “traditional” 3-layered architecture. Here, we implement the… Unit tests: Run in isolation. Run fast. Run deterministically. January 3, 2022 Unit tests: Run in isolation. Run fast. Run deterministically. Running in isolation means the tests should be independent of each… Talent wins games, but teamwork and intelligence wins championships – Michael Jordan December 31, 2021 Talent wins games, but teamwork and intelligence wins championships – Michael Jordan Hero culture and firefighting are short-term strategies. Not… Scale or fail. Tips for tech startups that want to scale effectively. December 30, 2021 Scale or fail. Tips for tech startups that want to scale effectively. How should you SCALE your tech product company… Growing and scaling are NOT the same December 29, 2021 Growing and scaling are NOT the same. Non-scalable growth is “easy”. Just add more resources, to increase revenue (whilst also… Do you have a “single point of failure”? December 28, 2021 Do you have a “single point of failure” in your software development teams? A person on the team who is… Chicago TDD vs London TDD – Which one is should you use? December 28, 2021 Chicago TDD vs London TDD – Which one is should you use? Is there one GLOBAL answer or is it… DD Dialogue: London School vs Chicago School December 27, 2021 TDD Dialogue: London School vs Chicago School. Do you find contradictions when reading about TDD? People can’t agree on what’s… How do you know that your User Story is truly “Done”? December 27, 2021 How do you know that your User Story is truly “Done”? How do you know that existing functionality isn’t broken… Continuous Value Delivery: A Spectrum December 24, 2021 Continuous Value Delivery: A Spectrum “Value” refers to the business value that the business gets from the usage of the… The future of software engineering December 23, 2021 The future of software engineering is: Standardization. Why? Achieving quality at a large scale, in a reproducible way. Quality isn’t… Superstar Developer. Greatest Asset. Greatest Risk. December 22, 2021 Your superstar developer is your greatest asset. And your greatest risk. Many companies are fighting for super-talented developers. Only the… The failed Agile Transformation. December 21, 2021 The failed Agile Transformation. … This is a story of what happens when companies introduce “agile” but do NOT introduce… You can’t be agile without CI/CD and TDD. December 17, 2021 You can’t be agile without CI/CD and TDD. Unfortunately, agility is often “sold” as a PM silver bullet, e.g. that… Why Contract-First Development (CFD)? December 15, 2021 Why Contract-First Development (CFD)? Defining contracts before coding helps us gain a transparent view of the communication between systems. Key… 3 Stories – Test Last Development (TLD) and Test Driven Development (TDD) December 13, 2021 Story 1: Endless Test-Last Development (TLD) – a common reality Month 1-3: “We’re just getting started, this is just a… Test-Last Development (TLD) vs Test Driven Development (TDD) December 10, 2021 STORY 1: Test-Last Development (TLD) Month 1-3: “We’re just getting started, this is just a simple CRUD application, we’ll skip… The Solver Mindset – Building Successful Products November 30, 2021 Business analysis is at the core of product success (or product failure). It’s about nailing down what’s the fundamental business… 10 Ways to Be a Better Leader March 20, 2021 1. Be a role model In order to be a leader you need to set an example and take responsibility.… Building High-Performance Teams March 12, 2021 Currently we are confronted with rapid changes in the fast-paced business world. As a result, it becomes very challenging to… Characteristics of High-Performance Teams March 5, 2021 Despite the fact that main reason for creating teams was motivated by company success, high performance teams are rare. The… Key Benefits of Knowledge Management in the IT Industry December 26, 2020 My journey in Knowledge Management started two decades ago. Whilst at school, I preferred learning by synthesizing information from multiple… There’s no time for Unit Testing November 26, 2020 Jake looked at the clock. The whole day passed and he had only done a few tickets. Not that much… Delivering Valuable Software through Use Case Driven Development November 14, 2020 Why are we building software? At the end of the day, we’re delivering software to satisfy user needs so that… Four pillars of object oriented design April 11, 2018 When we are doing programming (or any other kind of activity), the principles which guide our decisions are one of… Combating code duplication to reduce software maintenance cost February 17, 2018 Code duplication is a serious issue in software development, because it is one of the primary causes of high maintenance… Dependency injection in plain English October 15, 2015 There are many scenarios where we have a client that depends on some service to do something. There are three… Mass production and software – the forgotten link January 13, 2015 Software development. Mass production. Efficiency, scalability, profit maximization. Can mass production be applied to software development? Mass production is an… Improving software quality assurance and developing better software October 29, 2014 Most people would agree that quality is an important part of software projects. However, the question is, what is quality,… 3 reasons why you should use dependency injection October 24, 2014 One of the principles of SOLID programming philosophy is dependency inversion, and one way that can be achieved is through… Why software projects fail October 11, 2014 We often hear the depressing statistics about the failure of software projects – a case of history repeating itself. In…
TDD: Test Doubles in Unit Testing. Should we use Fakes? Stubs? Mocks? February 14, 2022 TDD: Test Doubles in Unit Testing. Should we use Fakes? Stubs? Mocks? In unit testing, Test Doubles are used to…
“If you think good architecture is expensive, try bad architecture. —Brian Foote and Joseph Yoder” February 10, 2022 “If you think good architecture is expensive, try bad architecture. —Brian Foote and Joseph Yoder”― Robert C. Martin, Clean Architecture: A Craftsman’s…
TDD in the real world. Clean architecture in the real world. February 10, 2022 DD in the real world. Clean architecture in the real world. A common complaint regarding TDD training is that we…
Is acceptance testing only at E2E level? February 9, 2022 Is acceptance testing only at E2E level? Can our unit tests also be acceptance tests? Case 1. Web App: Suppose…
When do we make design decisions inside a TDD red-green-refactor cycle? February 8, 2022 When do we make design decisions inside a TDD red-green-refactor cycle? In Mockist TDD, we’re making all decision decisions early,…
TDD and Clean Architecture – Driven by Behaviour February 7, 2022 TDD and Clean Architecture – Driven by Behaviour TDD is painful for many teams. Unit testing takes up so much…
TDD and Clean Architecture – Driven by Behaviour February 4, 2022 TDD and Clean Architecture – Driven by Behaviour YouTube recording: https://lnkd.in/eNBYHwdD 1. Why are we here – TDD is painful,…
The nightmare of flaky tests February 3, 2022 The nightmare of flaky tests. And how to solve it. Remember those tests which SOMETIMES pass and SOMETIMES fail… without…
How to fail at TDD? February 1, 2022 How to fail at TDD? TDD is painful for many teams. But over time, we learned to accept the pain.…
Without TDD, your KEY DEVELOPER is the ONLY person who knows how the details about the system behaviour. January 31, 2022 Without TDD, your KEY DEVELOPER is the ONLY person who knows how the details about the system behaviour. Only they…
TDD and Hexagonal Architecture – Unit Testing Use Cases January 28, 2022 TDD and Hexagonal Architecture – Unit Testing Use Cases Is your job just to write some code? Or to build…
How do automated tests affect development team productivity? January 26, 2022 How do automated tests affect development team productivity? Feedback? Quality? Speed? 1. If we have automated tests: When a developer…
“Want to lose 30 pounds in a month?” January 26, 2022 “Want to lose 30 pounds in a month?” Gyms sell you an outcome that you want. Losing weight. Living a…
What’s a Unit Test? Integration Test? E2E Test? January 25, 2022 What’s a Unit Test? Integration Test? E2E Test? Classicist vs Mockist interpretations? What’s a unit, interface & implementation? 1. UNIT…
Can TDD make you non-agile? January 24, 2022 Can TDD make you non-agile? Yes. When it’s done poorly. Let’s go back to agility: Agility is about being responsive…
You can’t be agile without TDD. Not sustainable. January 21, 2022 You can’t be agile without TDD. Not sustainable. Well, you may “appear” to be agile without TDD during the first…
How does TDD help us navigate a complex world? January 18, 2022 How does TDD help us navigate a complex world? Certainty in an uncertain world? In TDD, when we write unit…
Does TDD mean someone is a better developer? January 18, 2022 Does TDD mean someone is a better developer? Does TDD automatically lead to amazing design? Does TDD turn development into…
If you don’t know where you’re going… how will you reach your destination? January 17, 2022 If you don’t know where you’re going…… How will you reach your destination? If you don’t know exactly what the…
Why is software development so slow? January 17, 2022 Why is software development so slow? Why does it take too long to implement simple changes? John: “How long will…
When TDD goes bad January 13, 2022 When TDD goes bad. When you feel that TDD is working against you. When you feel like it’s a big…
What’s worse? TDD does badly? Or TLD done badly? January 12, 2022 What’s worse? TDD does badly? Or TLD done badly? Which one causes MORE damage? When talking about TDD, we always…
TDD isn’t as easy as it looks. Clean architecture isn’t either. January 11, 2022 TDD isn’t as easy as it looks in tutorials. Clean architecture isn’t either. A common complaint regarding TDD training is…
TLD = Running around in circles! January 11, 2022 TLD = Running around in circles! TLD provides longer feedback loops, you have more rework.TDD provides shorter feedback loops, you…
TDD provides 5 rapid feedback loops January 10, 2022 TDD provides 5 rapid feedback loops during software development. Feedback loops are essential in keeping us on-track towards reaching goals.…
TIME is MONEY January 5, 2022 TIME is MONEY. We don’t want to waste time. Can we PROVE what’s faster? Test-Driven Development (TDD) vs Test-Last Development…
100% Unit Testability in Hexagonal Architecture January 4, 2022 100% Unit Testability in Hexagonal Architecture Let’s go back in time… to the “traditional” 3-layered architecture. Here, we implement the…
Unit tests: Run in isolation. Run fast. Run deterministically. January 3, 2022 Unit tests: Run in isolation. Run fast. Run deterministically. Running in isolation means the tests should be independent of each…
Talent wins games, but teamwork and intelligence wins championships – Michael Jordan December 31, 2021 Talent wins games, but teamwork and intelligence wins championships – Michael Jordan Hero culture and firefighting are short-term strategies. Not…
Scale or fail. Tips for tech startups that want to scale effectively. December 30, 2021 Scale or fail. Tips for tech startups that want to scale effectively. How should you SCALE your tech product company…
Growing and scaling are NOT the same December 29, 2021 Growing and scaling are NOT the same. Non-scalable growth is “easy”. Just add more resources, to increase revenue (whilst also…
Do you have a “single point of failure”? December 28, 2021 Do you have a “single point of failure” in your software development teams? A person on the team who is…
Chicago TDD vs London TDD – Which one is should you use? December 28, 2021 Chicago TDD vs London TDD – Which one is should you use? Is there one GLOBAL answer or is it…
DD Dialogue: London School vs Chicago School December 27, 2021 TDD Dialogue: London School vs Chicago School. Do you find contradictions when reading about TDD? People can’t agree on what’s…
How do you know that your User Story is truly “Done”? December 27, 2021 How do you know that your User Story is truly “Done”? How do you know that existing functionality isn’t broken…
Continuous Value Delivery: A Spectrum December 24, 2021 Continuous Value Delivery: A Spectrum “Value” refers to the business value that the business gets from the usage of the…
The future of software engineering December 23, 2021 The future of software engineering is: Standardization. Why? Achieving quality at a large scale, in a reproducible way. Quality isn’t…
Superstar Developer. Greatest Asset. Greatest Risk. December 22, 2021 Your superstar developer is your greatest asset. And your greatest risk. Many companies are fighting for super-talented developers. Only the…
The failed Agile Transformation. December 21, 2021 The failed Agile Transformation. … This is a story of what happens when companies introduce “agile” but do NOT introduce…
You can’t be agile without CI/CD and TDD. December 17, 2021 You can’t be agile without CI/CD and TDD. Unfortunately, agility is often “sold” as a PM silver bullet, e.g. that…
Why Contract-First Development (CFD)? December 15, 2021 Why Contract-First Development (CFD)? Defining contracts before coding helps us gain a transparent view of the communication between systems. Key…
3 Stories – Test Last Development (TLD) and Test Driven Development (TDD) December 13, 2021 Story 1: Endless Test-Last Development (TLD) – a common reality Month 1-3: “We’re just getting started, this is just a…
Test-Last Development (TLD) vs Test Driven Development (TDD) December 10, 2021 STORY 1: Test-Last Development (TLD) Month 1-3: “We’re just getting started, this is just a simple CRUD application, we’ll skip…
The Solver Mindset – Building Successful Products November 30, 2021 Business analysis is at the core of product success (or product failure). It’s about nailing down what’s the fundamental business…
10 Ways to Be a Better Leader March 20, 2021 1. Be a role model In order to be a leader you need to set an example and take responsibility.…
Building High-Performance Teams March 12, 2021 Currently we are confronted with rapid changes in the fast-paced business world. As a result, it becomes very challenging to…
Characteristics of High-Performance Teams March 5, 2021 Despite the fact that main reason for creating teams was motivated by company success, high performance teams are rare. The…
Key Benefits of Knowledge Management in the IT Industry December 26, 2020 My journey in Knowledge Management started two decades ago. Whilst at school, I preferred learning by synthesizing information from multiple…
There’s no time for Unit Testing November 26, 2020 Jake looked at the clock. The whole day passed and he had only done a few tickets. Not that much…
Delivering Valuable Software through Use Case Driven Development November 14, 2020 Why are we building software? At the end of the day, we’re delivering software to satisfy user needs so that…
Four pillars of object oriented design April 11, 2018 When we are doing programming (or any other kind of activity), the principles which guide our decisions are one of…
Combating code duplication to reduce software maintenance cost February 17, 2018 Code duplication is a serious issue in software development, because it is one of the primary causes of high maintenance…
Dependency injection in plain English October 15, 2015 There are many scenarios where we have a client that depends on some service to do something. There are three…
Mass production and software – the forgotten link January 13, 2015 Software development. Mass production. Efficiency, scalability, profit maximization. Can mass production be applied to software development? Mass production is an…
Improving software quality assurance and developing better software October 29, 2014 Most people would agree that quality is an important part of software projects. However, the question is, what is quality,…
3 reasons why you should use dependency injection October 24, 2014 One of the principles of SOLID programming philosophy is dependency inversion, and one way that can be achieved is through…
Why software projects fail October 11, 2014 We often hear the depressing statistics about the failure of software projects – a case of history repeating itself. In…