May 25, 2007

Mash-Ups with the Office of Information Technology OIT Services and their relationships with Wikis and Blogs

So here at the U of M, there are a bunch of sites and groups devoted to helping you teach, do research, learn and "support the people" who teach, research and learn. But they typically look at themselves organizationally rather than from their customers perspectives. This leads to confusion and the mistaken perception of less value in the services offered than really exists.

A byproduct of this organizational, rather than service approach to showcasing our wares, is a series of "Unofficial" pages that are popping up on UMWiki wikis and UThink blogs. I've started two The Unofficial Guide to the Office of Information Technology (OIT) and another is The Unofficial - How to get your MSDN Software for Computer Science and Software Engineering Majors and Graduate Students. I was originally motivated to do this when I found the excellent UMN Itlabs Unofficial Web

This post falls into the category of being a "no one will officially tell you but..." post. See, by posting this blog entry I will elevate the rankings of the unofficial pages to which I just referred. This is because for some reason the folks behind the university google appliance have increase the value of items posted to UThink. [I however find the hypercard, simple DB structure of the UMWiki much more useful.] So posts like this and the information sites they referer to are just the start. This bit of "google gaming" info may seem like just a tiny bit of info that would help someone promote their site in the google rankings at the U of M, but I think it is leading to something much larger.

But where is this headed? Open Architectures and Mash-Ups
I believe that over time issue like the lack of offering of certain servicesby OIT, like blackberry accessible email, or web standard calendaring, or a suppported secure research and development "LAMP" stack, and other university service groups will be overcome by self interested individuals creating solutions to the barriers to information that exist in the technology choices implemented by OIT and unit areas. There is not enough knowledge and resources withing OIT (nor could there be), to pick the right emerging technologies, fund the efforts to create these mash-ups, and provide support to the population who would use them. It will be students, staff and faculty, satisfying their own self interests (scratching their itch), that will do it. Most of what is happening or will happen, will be unfunded, and unofficial efforts by all the smart people how call this home for some part of their life.

I think the scenario will go something like this. Some ADCS employee, or lab asssistant, or EADs developer, who will be in a degree program and have to do a capstone project, or will be a fellow in some innovation group, or have a grant, or who is just borded, will create a open SOA gateway from technology X, exposing it to all the potential mash-up applications that students and staff are becoming used to in the wider world of web 2.0

I think that project like the one started by Alexander Saint Croix UMFoundrywill be the catalyst for this to occur. (I'm not banking on Alex's efforts being "the answer", although they may turn out to be) but eventually it will happen, or more correctly is already happening and we are just starting to see signs of it poking out here and there. (A comment on why it is able to happen now.) But without something like the UMFoundry or a knowledge base on the UMWiki it will never reach its full potential.

January 27, 2007

Architectural Improvement by use of Strategic Level Domain-Driven Design

Basically Domain-Driven design can be divided into three areas:

  • Basic building blocks – Addresses how the domain is separated from technology by use of a layered architecture, combined with practical object oriented design patterns.
  • Sophisticated models – Addresses how the software is aligned with domain expert thinking, domain concepts are made explicit in code and refactoring of the code is driven by domain insight.
  • Strategic design – Addresses model integrity and management of complexity in large systems. Strategic design provides three core building blocks:

    • Context mapping
    • Distillation
    • Large scale structures

Continue reading "Architectural Improvement by use of Strategic Level Domain-Driven Design" »