New Patterns in Software Development

Today we’ll have a slightly different post, delaying a little bit our other favorite themes, speaking about “new” (note the quotes) patterns in today’s software landscape.

Well, one can write an entire book on this theme, that’s why we’ll stop today on just one pattern: The Open Project.

I’m not strictly speaking here about Open Source Software, but rather about the open character of a (sub)project in which customers are informed (more or less) about what’s happening in the development process and are involved in the product shaping.

Even if the main product is close-sourced, this doesn’t matter. An open subproject can be spawned for focused, rapid prototyping. Based on the community’s feedback this can be (partially or totally) re-introduced in the main product, can be grown as a separate project or both. There are notable examples in which this approach succeeded, but I would mention only two of them: Alex Ciobanu’s DeHL and Primoz Gabrijelcic’s OmniThreadLibrary.

Besides of the net income which the lines of code of the two above libraries brought there are also some interesting side effects: In the Alexandru Ciobanu’s case (most probably) the DeHL is one of the main factors (if not THE main factor) which caused his transfer from the Docs team to the position of “RTL Developer for RAD Studio” (the quote is taken from his About Box). Of course, we dare to hope that some things from DeHL will be included in the main product, isn’t it?

A more interesting case is the case of the OmniThreadLibrary which it seems that is the most successful threading library for Delphi. Much more successful (of course) than Delphi Parallel Library – on which one of the latest posts of the main developer (Allen Bauer – which is incidentally Embarcadero’s Chief Scientist) was more than one year ago…

I do think that nobody nowadays can tame the software complexity alone, without the help which come from his community. While this thing might be known, we usually overlook that in this community there are the so called ‘peers’ – guys which are ready to help you, guys which have enough knowledge to figure out what’s inside and much more knowledge about what’s outside – and here by ‘outside’ I mean real world usage cases. If the project maintainers can have the control of the inside while keeping a constant feedback stream from outside then they will succeed to bring the project to maturity and success.

One of the most significant examples here is Firebird while it seems that it reached at a new maturity level. In few months a new version (Firebird 2.5) will be released which is loaded with many interesting features including a new architecture (called SuperClassic) which will mean a significant performance boost in certain situations.

Noteworthy is that the team members, knowing that this release will be a significant milestone in the project development, had set up a campaign to spread the word. There are even some benefits to join! (some interesting prizes to be found there… guys, if you about the campaign for the first time reading this article, please mention it there, perhaps I will grab something 🙂 – …we’re definitely interested about that FastReport license…)

In the end I think that community matters. As an active, cooperative force. Just to know how to handle it.

7 thoughts on “New Patterns in Software Development

  1. Now then Lads, I think the following statement makes a very unfair inference.

    “Much more successful (of course) than Delphi Parallel Library – on which one of the latest posts of the main developer (Allen Bauer – which is incidentally Embarcadero’s Chief Scientist) was more than one year ago…”

    Imagine what you will – commercial release cycles like Delphi are a world away from the projects (both excellent) you refer to, and quite possibly a poor comparison in terms of their respective capabilities. That statement of yours could be read as a most derogatory remark. Many will choose to read it so. Are you party to some inside information we know nothing about?

    Robert H

    • We know from the newsgroups that they didn’t enhance Delphi Parallel Library because it wasn’t a (IIRC correctly Nick’s words) “selling point”. Perhaps it sounds odd, but I can understand Nick (Hodges) on this. OTOH, if they would have it as an open project (the topic at hand), then the community would give ideas, enhancements etc. (as it did, in fact – see the comments in the Allen’s blog posts) thus pushing forward the subproject while partially releasing the possible pressure on the main developer(s) (Allen in our case).

      “That statement of yours could be read as a most derogatory remark.”
      Why do you think so?
      It was Team’s choice to stop/stall/move in background (etc.) development on DPL enough time ago. See also Daniele Teti’s comment – especially the words “… for adding a real threading library…” (emphasis mine)

Leave a Reply

Fill in your details below or click an icon to log in: Logo

You are commenting using your account. Log Out /  Change )

Twitter picture

You are commenting using your Twitter account. Log Out /  Change )

Facebook photo

You are commenting using your Facebook account. Log Out /  Change )

Connecting to %s