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...
View ArticleThe Agile Architect
The International Association of Software Architects (IASA) in Israel was honored to host a talk by Johanna Rothman last week (June/21/2011). Johanna Rothman is a consultant, author and speaker with...
View ArticleYahoo! Cocktails: When the client is in the cloud
One of the reasons I’m proud to work at Yahoo! is that we have some very nice products that reach hundreds of millions of people worldwide. Another reason is that Yahoo! is behind the development of...
View ArticleThe Psychology of Reviews: Distinction Bias, Evaluability Hypothesis and the...
Design Reviews are one of the most important activities in the software development process. If a bad design is approved and implemented, it is very expensive to correct that afterwards. Therefore, we...
View ArticleOn Information Hiding and Encapsulation
This month I participated in IBM Haifa’s Programming Languages and Software Engineering (PLSE) Seminar. There I had the opportunity to have lunch with David Parnas, one of the world pioneers in the...
View ArticleIASA IL meeting with Prof. Rick Kazman
The International Association of Software Architects (IASA) in Israel organized a special event with the participation of Prof. Rick Kazman, who talked about ”The Metropolis Model for Software...
View ArticleAdaptable Designs for Agile Software Evolution
“It is not the strongest of the species that survives, nor the most intelligent that survives. It is the one that is the most adaptable to change.” – Charles Darwin Big Design Up Front (BDUF) is...
View ArticleMeta-Decisions: Agreeing on the criteria before discussing the alternatives
In a working environment, meetings may consume lots of time. In general, the goal of meetings is to make decisions based on the input provided by several people. There are normally many different ways...
View ArticleThe Myth of Emergent Design and the Big Ball of Mud
Software developers following Agile methodologies often ask themselves how to adapt the traditional Design phase to an iterative software lifecycle. The basic question is how much design should be done...
View ArticleAdaptable Design Up Front and the Open/Closed Principle
The Open/Closed principle is one of the SOLID principles of software design: “The Open/Closed Principle states that the design and writing of the code should be done in a way that new functionality...
View ArticleIASA Israel meeting – Hayim Makabee on Adaptable Design Up Front
The International Association of Software Architects (IASA) in Israel organized a special event with the participation of Hayim Makabee, who talked about “ADUF – Adaptable Design Up Front”. Synopsis:...
View ArticleIASA Israel meeting – Daniel Gross on Architectural Description Languages
The International Association of Software Architects (IASA) in Israel organized a special event with the participation of Dr. Daniel Gross, who talked about “Architectural Description Languages”....
View ArticleSimplicity in Software Design: KISS, YAGNI and Occam’s Razor
“Perfection is achieved, not when there is nothing more to add, but when there is nothing left to take away.” – Antoine de Saint-Exupery Simplicity is a desirable quality attribute in any software...
View ArticleSoftware Product Line Engineering
Last week I had the opportunity to participate in a Product Line Engineering (PLE) seminar by Dr. Paul Clements, who is one of the global experts on this subject and author of the book “Software...
View ArticleAttention Agile Programmers: Project Management is not Software Engineering
I’m happy to see so many software developers who are enthusiastic about Agile methods. It’s nice when people enjoy their work. However, I think there is a problem: Some teams are giving too much...
View ArticleCoping with Change in Agile Software Development
Traditional software development methodologies, such as Waterfall, tried to follow a series of isolated steps: First you define all the system requirements, then you devise a detailed system design...
View ArticleIASA Israel meeting – Atzmon Hen-Tov on the Adaptive Object Model
The International Association of Software Architects (IASA) in Israel organized a special event with the participation of Atzmon Hen-Tov, who talked about the “Adaptive Object Model”. Title:...
View ArticleAntifragile Software Design: Abstraction and the Barbell Strategy
In his book “Antifragile: Things That Gain From Disorder”, Nassim Taleb introduces the concept of Antifragility, which is the opposite of Fragility. The main question is how things react to volatility...
View ArticleIASA Israel Meeting – Hayim Makabee on the Role of the Software Architect
The International Association of Software Architects (IASA) in Israel organized a special event with the participation of Hayim Makabee, who talked about the “Role of the Software Architect”. Title:...
View ArticleIASA Israel Meeting – Lior Israel on TDD as an Approach for Software Design
The International Association of Software Architects (IASA) in Israel organized a special event with the participation of Lior Israel, who talked about the “TDD as an Approach for Software Design”....
View Article