Fluent interface
Thinking of possible approaches to class library interface design I reread the post by Martin Fowler titled Fluent Interface. Although I never tried out this approach in designing my own class libraries it looks like with modern IDE such interfaces will really be "fluent" with use of code completion. Now I'm trying to arrange some time to deeper research this topic. So far I've seen that such interfaces work great for Builder-like methods and stream-like operations. Would be interesting to see how good they are in regular development practice.
Vegetables, Quality Assurance and Software Development
This is actually a repeat of my older post from my old blog. But it is summer again, so why not?
Here in Ukraine you can more and more often hear people asking "How were they grown?" when they buy some vegetables. Especially when they are going to buy early vegetables that are difficult if at all possible cultivate by "usual" process and get harvest this early. What this essentially means is that people are interested in the process used to achieve the result. Why they would want to know that? Because this helps customers evaluate quality of the product. It helps customers understand internal characteristics of the product they are about to buy. And here not only the process or quality assurance procedures itself matter but also the ability to effectively communicate benefits of the process to win customers' trust is important.
The same thing happens with software development. We want to build trust relationships with our customers. But this means that we have to give them a look at what is going inside, we have to provide transparency for the customers. It is extremely difficult and sometimes very inefficient to build trust without transparency. So think twice before replying to customer's "How are you going to achieve this result?" with "Just trust us. We will do it."
More on this topic in David Anderson's post "No Trust without Transparency".
Dead technologies
How do you define “dead technology”? My definition is that dead technology is no longer used to build new systems. Old legacy systems may be still running, may be still maintained, but no new development takes place. ComputerWorld proposes top 10 list of dead technologies.
It is amusing how some technologies gained to much momentum that we are speaking of them half-a-century after they were first introduced.
Innovative modeling framework
If you are seeking for improvement of your modeling practices in software development check out P-Modeling Framework by INTSPEI. I participated in several experiments that lead to creation of the framework. Personally I’m looking forward to see first case studies of application of the framework in “real life”.
UML Color Modeling and DNC sample
I've come across a good example of Color Modelling and DNC use by Stephen Palmer: Modelling in Colour: Using the DNC. Recommended.