|
Sculpting Solutions
| September 2007 | |
|
 |
Alan Z. talks about the art and craft of solution development
|
The Developer as Sculptor?
It occurs to me that developers and sculptors have a lot in common. For both, it can be as much an artistic endeavor as it is a manufacturing process. Although there’s a definite end product envisioned, much is left to the discretion of the craftsmen. Those involved need an understanding of the tools and techniques available to them, and bring much of their own design sense and creativity to each project.
Sculptors start with raw materials generally supplied by others (clay, stone, wood, metal, ice, etc.) and through a variety of techniques and procedures, morph the materials into a finished piece.
Developers also start with raw materials generally supplied by others (functional requirements, use cases, process flows, screen mockups, services, etc.) and apply a variety of techniques and procedures to morph the components into a solution that works.
There are likely as many approaches to sculpting as there are sculptors. For purposes of this discussion, I’ll focus on two approaches that might be taken to create a statue of an elephant:
- Start with a wire frame that's roughly the desired shape, and apply clay, piece by piece to the frame until it looks like an elephant.
- Start with a large block of stone, and chip away everything that doesn’t look like an elephant.
Granted, these are simplistic examples, but they do have parallels to the development world.
These days, developers are less likely to go out and create everything from scratch for every project. Instead, it’s common to leverage the strengths of existing systems:
- Start with an application framework and add components (building them if necessary) until the solution is complete.
- Start with a larger reference application and remove pieces that don’t apply to (or look like) the solution.
Frameworks and Reference Applicatons
Frameworks serve as the attachment points for all your components, providing the plumbing and communication services, enabling components to interact. They range from being very lightweight constructs, to full featured application environments, complete with user interface.
Depending on the solution requirements, frameworks can provide a good portion of the finished product, right out of the box (OOB).
Portals and Webtop are good examples of reference applications that have been built using the underlying frameworks. They also provide user interface environments that can be trimmed or extended by developers through the APIs, customization or configuration. The point here is that these reference applications come with most of the necessary components already in place (and tested) benefiting from (sometimes minor) configuration and customization to produce the solution. In a broad sense, the reference applications are surfacing the services provided by the underlying frameworks and platforms. Using reference applications as the basis for solutions is in effect ‘standing on the shoulders of giants’, letting you leverage the strengths of the foundation.
For some projects, a suitable reference application might not be available or desirable as a starting point. One can always ignore the reference applications and build directly upon the frameworks. For example, a user interface can build directly on top of STRUTS or JSF or WDK or any of the .net UI frameworks, adding and testing component interaction as necessary.
In any case, it’s likely that developers try to base future applications on the work done in the past. Previous applications serve as the new reference applications, and developers change, tweak… and sculpt it to suit the next project.
The tooling for doing this easily has been challenging, especially in the area of developing custom Content Management solutions. Keep an eye on the EDN content management developer center for information about the upcoming Documentum Composer. This new tool, with it's extensibility model, should make it much easier for developers, partners and even your customers to tailor your reference frameworks and application (and the resultant artifacts) to suit their purposes.
What Do You Use For Your Applications?
I’m interested in hearing about how you use frameworks and reference applications in your own solutions. In particular, if and how you reuse services and components between projects.
- Do you typically build from scratch, or use frameworks as a ‘solution platform’ using OOB features for much of the functionality?
- Do you find yourself removing or adding the same features over and over again?
- Do you use components of existing systems or mostly build your own?
- Do you use reference systems like Webtop or portals and build another layer upon it, or create your own environment from lower level constructs?
- Do you create blended solutions, using both commercial and open source software?
- Are your solutions dependent on services from others, or are they autonomous?
- Do you find yourself doing more configuration than customization?
- What level of security do you build into your applications, and are they pre-built or homegrown?
- What kinds of integration are you doing? Are they loosely or tightly coupled to the service providers?
- Do you have subject matter experts (SME's), not programmers, build process flow based on use cases? If so, how do you translate these requirements to code and implementation?
- What are the first things you do to begin a new project?
You might be thinking... "Boy, this Alan Z. is nosey!" It's more than pure curiosity; these are the kinds of topics we should be discussing; and we should be sharing our experiences with other EDN members. So let’s continue this on the EDN forums. The discussions can serve as the basis for an article series, or perhaps we can turn it into a wiki and create a dynamic document. So let’s get talking!.
Services Oriented Infrastructure in a Web 2.0 World
One of the EDN initiatives is to surface more content about Service Oriented Architecture (SOA) and the evolving Web 2.0 environment. To kick this off, you can now view a presentation that Tom Maguire gave at the recent EMC World.
Tom provides a great overview of SOA, Event Driven Architecture (EDA), Web Services, SOAP, REST and how they can impact development and IT services. He discusses applying these architectures, technologies, and open standards to the problems faced by IT in order to focus on qualities of service delivery of IT in support of business value.
To make it more convenient to see/hear his presentation offline, you can even download it to a portable video player (e.g., iPod) via the link at the bottom of the presentation page.
Keeping Up with D6
To help developers ramp up for D6, we’ve published a few more important (and long awaited) new items:
The First EDN Developer Challenge, an Update
Those who have already embraced SOA, and have been working with Documentum, know that leveraging web services has traditionally not been easy. With D6, this changes. The new Documentum Foundation Services (DFS) is designed to make it easy for developers to interact with the underlying services provided by Content Server (rather than having to write our own from scratch).
As you may already know, to feature this new tool set, the EDN has been hosting the D6 Web Services challenge. For the last month or so, developers have registered for the contest and have been busy working on their entries. As of this writing, the challenge is coming to a close, and the participants are getting their code ready for submission. It’s pretty exciting! At this point, I have no idea what people have been working on, and everyone on the EDN team is looking forward to seeing what our members have come up with to show off the new Foundation Services. Of course, it will also be great to find out who wins the $50,000 first prize!
Getting To Know You... Better
The community theater in my town is currently running "The King and I". One of the songs running through my head is the classic "Getting To Know You". The song is timeless, and very timely as it applies to the EDN and its membership.
We’ve recently enhanced the EDN member profile to help us get to know you. Your updates will allow us to ensure that we deliver the content of highest interest to you. So we need to know:
- What technologies and products are you interested in?
- How did you hear of us in the first place?
- What APIs, frameworks and tools are you using?
- What are your roles in the development process?
- What types of applicatons/solutions are you involved with?
- Which developer events have you attended?
So please visit the EDN My Profile page, and update your profile.
Keeping Up With The News
We've made it easier for EDN members to keep up with new information. The best way is to keep an eye on the RSS Feeds:
What’s new at EDN (RSS feed)
What’s new for Content Management (RSS feed)
What’s new for Resource Management (RSS feed)
Recent threads at the EDN forums. Note that there are also feeds for each forum subcategory, so you can really fine tune the kind of information you want to keep up on.
If your browser doesn’t support reading RSS feeds (and you don’t have an RSS reader), you can visit our What’s New web pages:
What’s new at EDN (web page)
What’s new for Content Management (web page)
What’s new for Resource Management (web page)
Get Connected
Developers always have a lot of questions when new products are announced. Even more questions arise when the products arrive and people adopt (and adapt to) new capabilities. We've got some of our architects and product managers as active participants in the new EDN Forums. The discussions should go well beyond the product implementations, and in addition to "How do we do this?", talk should include best practice "Why should we do this?", and "What should we be doing?" message threads.
The EDN forums are an opportunity for you to interact with developers from around the world. Let's talk about technologies, architectures, tools, coding, and of course the the new Developer Challenges. Don't be shy, speak up.
Alan Z.

Click here for an index of all "From The Editor" columns.
You can discuss "From the Editor" articles on the EDN Forums by clicking here.
|