The Sympriser Blog

Software Design, Technical Leadership and Business Innovation

Gustavo
Rafael

Welcome!

We've always loved Software and its magical transformational power, and it has been a wonderful journey.

We started with Computer Engineering, building CAD tools for microelectronics, operating systems, and compilers. We expanded our focus to e-Business and saw its power, transforming how companies and people work. Distributed Systems and Machine Learning are now pervasive, and the power to innovate has reached unprecedented levels.

The Sympriser Blog is a collection of our reflections on software design, technical leadership and business innovation.

Top Articles

Computer pioneer and genious Edsger Wybe Dijkstra
by Gustavo Peixoto de Azevedo

The Open/Closed Principle: Concerns about Change in Software Design

High-quality software designs are easier and safer to work with. Investing in quality demands discipline and skill. Good design principles are usually helpful. But are they always applicable?

This post investigates the applicability of the “Open-Closed Principle” when adding new functionality to a software design whose source code is entirely under our control.

Our argument is based on Dijkstra’s concept of separation of concerns.

Conversation
by Rafael Peixoto de Azevedo

Revisiting Fowler’s Video Store: Refactoring Code, Refining Abstractions

Refactoring techniques and Design Patterns have been extensively propagated and advocated for over a decade now. Why we still find it hard to change, anaemic or overly complex object-oriented structures? What is missing in our design practices?

We posit that continuously refining the abstractions we build in our code is a necessary ingredient for effective refactoring.

In this series, we use Fowler’s didactic Video Store program to show how the focus on refining abstractions generates practical advanced refactoring strategies that improve design simplicity, expressiveness and flexibility beyond standard object-oriented practice.

Project Dashboard
by Rafael Peixoto de Azevedo

PM Effectiveness – The Experience Trap

“Experienced project managers can deal more effectively with complex software projects”. Really?

Project Dashboard
by Rafael Peixoto de Azevedo

The Trust Requirement

Intelligent dialogues require trustful relationships.

Effective collaboration between the IT function and other business functions can be a complex and difficult issue in many organisations. This often represents a critical credibility problem that must be addressed both by IT executives and IT professionals.

Meeting
by Rafael Peixoto de Azevedo

Most Requirements are just Design Decisions

The language we use both reflects and influences our thinking.

The term “requirements” has its roots in cartesian and bureaucratic thinking, which supposes a static and impersonal business world where specialists would be able to uncover, extract and document the definitive specifications for software systems.