Many people have tried to design and implement Object-Oriented systems and even though some has succeeded, most have failed. In this blog, I will do my best to create a debate about how to build successful OO systems.