New thoughts on not so random things...

 
 

Agile and model driven development

Posted in:

Erik Philippus has invited me to address the issue of how model driven development relates to agile development, in his upcoming Masterclass Agile Architecting. That’s going to be interesting and fun!

Posted Jul 4, 08:53 PM by Angelo · Comment


Wim Hendriksen reacts...

Posted in:

It’s in Dutch, but still fun to read for those who can read that language. A while ago Wim Hendriksen wrote a column in Bits amp; Chips magazine on the absence of beauty and esthetics in Systems Architecture. I responded to that in another column, calling him ‘Wim the Romantic’ – and stating that the industry doesn’t allow us to spend time on these items (no matter how dearly we want to). His response ‘Angelo the classical Realist’ is an invitation from him to start pushing the addition of beauty and esthetics to the list of qualities/-ilities/non-functionals we work with in Architecture. Keep an eye out, cause I will accept the invitation…

Posted Apr 7, 05:05 PM by Angelo ·


Content Management (4)

Posted in:

For some weird reason, I cannot add comments to my own blog at the moment, so I’ll just use a small post to respond to a question posed by Mark Stacey on my initial post about the content management evaluation.

He asked: “what about a free edition of commercial product – like free edt. of Kentico CMS or Sitefinity?”

The answer is short and simple. I am not ignoring commercial products – after all, TypO3 and KnowledgeTree also offer commercial packages with additonal service, and in the case of KnowledgeTree additional functionality. I didn’t come across Kentico and Sitefinity in my initial searches, but maybe I’ll add them in a second batch.
Technorati Tags: ,

Posted Jan 11, 02:10 AM by Angelo · Comment [1]


Content Management (3)

Posted in:

In relation to content management, here’s a short update.

In order to test drive the product I’m evaluating, I will perform the following set of ‘tests’

  • Installation of product on a local web server
  • Account creation and role based acess configuration with an administrator, a content contributor and a visitor
  • Create a web portal (if supported) for visitors, based on plain HTML or template
  • Create a main page
  • Create a news page with a few updates
  • Create a documentation page, with 2 documents (non-HTML) and 2 version updates of one of them

For all pages created, I will check how they are accessed as contributor and visitor, and I will evaluate how easy each step is to implement from the roles involved.

Posted Dec 24, 02:13 PM by Angelo · Comment


On software architecture - a short text

Posted in:

Here’s a transcript of an e-mail I sent to one of my students, who asked input for a presentation on the topic ‘Why do we need software architecture’. It may be a no-brainer to some, irrelevant or uninteresting to others, but I feel this is a nice summary to use as a starting point for explaining the need for architecture.

“Hello X,

I’ll start with a short answer, otherwise you end up with a book. Feel free to ask additional questions when necessary.

First of all, we are very capable of building things, including software, without architecture. However, often this means that these things are either reasonably simple in nature. If they are not simple, they can still be build without architecture, but in that case we’re bound to find out they are lacking in quality in certain areas. These quality areas can be for example

  • maintainability: it’s hard to extend something that has been build up piece by piece without thinking about structure). Extending such programs is difficult, if possible at all, and subject to lots of trial-and-error excercises
  • reliability: software build without a plan is often (not always) build with a focus on functionality. In those cases, error handling, robustness tend to be second class citizens, resulting in unreliable solutions. A good example are so called ‘friendly user’ applications: applications that work only if the user knows what the application expects and sticks to that order. There’s no error handling in case a user makes a mistake there. Quite a few old Unix scripts and command line programs suffer from this problem.
These are just two examples of quality aspects that are part of an architecture, which cannot be added after the application has been build.
Architecture deals with the structure of a (software) system, in terms of it’s decomposition into elements and the way these elements are connected and co-operate. This structure is, as the examples above show, determined not only by the functionality of the system, but also by so-called -ilities or quality attributes.
In real life, this implies that we need to think about these aspects, which in turn are determined by the needs of the environments in which the system is build, produced and used. Finding out the key needs of those environments, and translating them into quality requirements and a proper design for a (software) system is what is software architecture is about.
The amount of environmental needs introduced by stakeholders from the different environments, the amount of quality aspects they translate into – including functionality – and the infinite solution space makes software development into something complex, and software architecture tries to deal with this complexity.
It should be noted however, that software architecture is a discipline with many faces. Some people go for what the agile community calls ‘BDUF, or Big Design Up Front’ – resulting in large models and big documents. Others go for the opposite, following Scrum and eXtreme Programming to the maximum extend – without much documentation. In both cases, architecture plays a role though, because both approaches take into account the needs of the different evironments the system goes through in it’s life cycle (conception, development, production, use, …).

Best regards,

Angelo


Technorati Tags:

Posted Dec 15, 12:29 AM by Angelo · Comment


← Previous