Author Archives: Hayim Makabee

Unknown's avatar

About Hayim Makabee

Veteran software developer, enthusiastic programmer, author of a book on Object-Oriented Programming, co-founder and CEO at KashKlik, an innovative Influencer Marketing platform.

Nothing is more effective than enthusiasm

We all know that some programmers are much more effective than others. In one study, it was shown that the best programmers are ten times more efficient than the worse programmers. This degree of difference has not been observed in … Continue reading

Posted in Efficacy, Hiring, Psychology of Programming | Tagged , , | 9 Comments

Effective Software Reuse

For many years Software Reuse has been seen as a solution to both reduce the costs of software development and improve the quality of the systems being developed. However, in practice, most companies today have the feeling that they are … Continue reading

Posted in OOD, Software Reuse | Tagged , | 6 Comments

Effective Remote Work

After reading the book “The 4-Hour Workweek” by Tim Ferriss, I was eager to test his concept of Mini-retirements: “To distribute recovery periods and adventures throughout life on a regular basis and recognize that inactivity is not the goal. Doing … Continue reading

Posted in Efficacy, Yahoo! | Tagged , | 1 Comment

Identifying Anti-Patterns

In my previous post, I’ve discussed the importance of identifying domain-specific Design Patterns in an organization. Equally important is the need to identify Anti-Patterns. This is the definition of Anti-Patterns from Wikipedia: “An anti-pattern is a pattern that may be … Continue reading

Posted in Design Patterns, OOD | Tagged , | 3 Comments

Collecting Design Patterns

Today we expect every professional Software Engineer to have a good knowledge of Design Patterns. In particular, the names of the patterns in the Gang-of-Four (GoF) book became part of the common vocabulary of software developers. Any good programmer should … Continue reading

Posted in Design Patterns, OOD | Tagged , | 2 Comments

Effective Design Reviews

This is the definition of Design Review from Wikipedia: “A design review is a process whereby a design is tested against its requirements prior to implementation.” There are at least two problems with this definition: The first problem is that … Continue reading

Posted in OOD, Software Architecture | Tagged , | 4 Comments

The Liskov Substitution Principle and Test-Driven Development

The Substitution Principle, first defined by Barbara Liskov, says that: “Let q(x) be a property provable about objects x of type T. Then q(y) should be true for objects y of type S where S is a subtype of T.” … Continue reading

Posted in OOD, OOP, TDD | Tagged , , | 3 Comments

When a square is not a rectangle

In my previous post, I’ve used the example of squares and rectangles to illustrate the importance of definitions. It is clear that, from a geometric point-of-view, a square is indeed a kind of rectangle. However, as my friend Arnon has … Continue reading

Posted in OOD, OOP | Tagged , | 4 Comments

Is a square a rectangle? – On the importance of definitions

Before you continue reading this post, please answer the following question:  “Is a square a rectangle?” This is apparently a very simple question, to which we should be able to answer almost immediately, without even thinking about it. However, if … Continue reading

Posted in OOD, Requirements Specification | Tagged , | 2 Comments

Efficiency vs. Effectiveness

This is a blog about Effective Software Design, so it is important to first make clear what do we mean by “effective”. Peter Drucker defined the difference between being efficient and being effective: • Efficiency is the capacity to do … Continue reading

Posted in Efficacy | Tagged | 6 Comments