Home » Author Archives: Sandro Mancuso

Author Archives: Sandro Mancuso

Software craftsman, founder of the London Software Craftsmanship Community (LSCC) and author of Software Craftsmanship: Professionalism, Pragmatism, Pride.

Cloud Application Design Considerations

software-development-2-logo

When designing applications for the cloud, irrespective of the chosen platform, I have often found it useful to consider four specific topics during my initial discussions; scalability, availability, manageability and feasibility. It is important to remember that the items presented under each topic within this article are not an exhaustive list and are aimed only at presenting a starting point ...

Read More »

The inevitable imbalance in pair programming

software-development-2-logo

At some point throughout a developers career, no matter their experience, they will most likely find themselves in a situation where they are either the Junior or the Senior of the two in a pair programming session. In this context, being the Junior does not only mean being a less experienced developer, but it could also mean somebody that has ...

Read More »

Big Data Skills Spectrum

software-development-2-logo

Big Data has been a hype for many years. I’ve seen a few “Big Data” projects start in the past with a lot of fanfare and promise.The promise has always been that “we will start getting a holistic picture of our departmental silos and gain numerous insights from our data that will help us get ahead of our competitors”. The ...

Read More »

Does TDD really lead to good design?

software-development-2-logo

Recently I tweeted that TDD can’t lead to a good design if we don’t know what good design looks like. I was also saying that we probably should teach design before TDD (or at least, at the same time). This tweet led to a discussions with J.B. Rainsberger, Ron Jeffries, and a few others. J.B. and I ended up having ...

Read More »

Design Patterns in the 21st Century: The Chain of Responsibility Pattern

software-development-2-logo

Here’s a thing you might not see a lot. @Test public void hungryHungryPatrons() { KitchenStaff alice = new PieChef(); KitchenStaff bob = new DollopDistributor(); KitchenStaff carol = new CutleryAdder(); KitchenStaff dan = new Server(); alice.setNext(bob); bob.setNext(carol); carol.setNext(dan); Patron patron = new Patron(); alice.prepare(new Pie()).forPatron(patron); assertThat(patron, hasPie()); } It might look odd, but the idea is fairly common. For example, the ...

Read More »

Design Patterns in the 21st Century: The Adapter Pattern

java-logo

This is part three of my talk, Design Patterns in the 21st Century. The Adapter pattern bridges worlds. In one world, we have an interface for a concept; in another world, we have a different interface. These two interfaces serve different purposes, but sometimes we need to transfer things across. In a well-written universe, we can use adapters to make ...

Read More »

Design Patterns in the 21st Century: The Abstract Factory Pattern

java-logo

This is part two of my talk, Design Patterns in the 21st Century. This pattern is used everywhere in Java code, especially in more “enterprisey” code bases. It involves an interface and an implementation. The interface looks something like this: public interface Bakery { Pastry bakePastry(Topping topping); Cake bakeCake(); } And the implementation: public class DanishBakery implements Bakery { @Override ...

Read More »

Dangerous Words

software-development-2-logo

Ludwig Wittgenstein was one the greatest philosophers of 20th century. His book Tractatus Logico-Philosophicus addresses the limits of language and its relationship with reality. A friend of mine, great polemicist, suggested me to read it some years ago to understand one of his favourites conversational deux ex machina: “I can’t prove that, because of the inherent insufficiency of the language.” ...

Read More »

User Story Guidelines

agile-logo

Disclaimer: This post was extracted from an internal Codurance document used to help our apprentices to learn how we work. We all understand that each project is different and that by no means we can apply exactly the same techniques and practices everywhere. However, the text below serves not only as a foundation but also as a guideline for all ...

Read More »

Rethinking Pair Programming

software-development-2-logo

By default, we always do our work in pairs. We strongly believe that the quality achieved by two people working on the same task is superior to when done by a single person. However, there are times where pairing is not very efficient. Pair programming pitfalls In a professional environment, pairing with developers who have a different software development foundation ...

Read More »
Do you want to know how to develop your skillset and become a ...

Subscribe to our newsletter to start Rocking right now!

To get you started we give you our best selling eBooks for FREE!
Get ready to Rock!
To download the books, please verify your email address by following the instructions found on the email we just sent you.

THANK YOU!

Close