Clark Valberg On Interface Driven Architecture Methodology

Posted December 13, 2006 at 2:52 PM by Ben Nadel

Tags: ColdFusion, Work

At last night's New York ColdFusion User Group (NY-CFUG), Clark Valberg of Epicenter Consulting gave a most excellent presentation on what he refers to as the "Interface Driven Architecture Methodology." For a very brief summary, he basically breaks up the development life cycle into two different phases: Design and Fabrication. In this model, absolutely all interface design is prototyped and finalized by the client in the Design phase before any "coding" is done. Then, in the Fabrication phase, all prototypes are implemented including a functional code base.

I happen to think that this is a fantastic approach to software engineering. How nice would it be to know that when you start coding you don't have to do ANY interface design. Sure you have to build the views based on the prototype, but hey, you are no longer designing them, just implementing them. I look forward to trying this on small projects, so that I can prove to my company that this is a worth-while endeavour.

If you have a chance to catch any of Clark's presentations (I have seen several on usability and interface-design), you should check it out.



Reader Comments

Dec 13, 2006 at 7:01 PM // reply »
116 Comments

This is actually what the Fusebox people have been evangelizing with the FLiP process for about 7 years. Glad to see others are recognizing the benefits as well, it is definitely a great approach!


Dec 13, 2006 at 7:17 PM // reply »
11,314 Comments

Brian,

While I don't know much about FuseBox, I do know that I listened to an MP3 about two years ago maybe of Hal Helms and Jeff Peters talking about the FLiP life cycle. This must have been about a year before Helms and Peters (Out Loud) was launched (and I think you can access this audio from that site). Anyway, that was my first introduction to the idea of up-front prototyping and the prototype freeze. I remember I copied it onto my iPod and was listening to it and got all Jazzed up and then went to work and try to sell my boss (at the time) about the idea.

It was kindly met with a "nice in theory, but that's not how the real world works". I look forward to proving that this CAN be the way the real world works on a project. Hopefully I can work on an internal project as a proof-of-concept.


Dec 17, 2006 at 3:48 AM // reply »
14 Comments

Like Brian we've been using FLiP for years and always build the front-end first as a prototype. The client can then literally see if it's what they want. They will almost always see things they hadn't thought of and want changes, but that's ok because it's only HTML. When there are no more changes you know you've got an accurate picture of what the client wants you to build. And as you say your html views/css are already done.

It's important to explain the process to clients though. Occasionally you get someone who doesn't realise that you also need to develop the back-end and thinks they can start using the app straight away.


Post A Comment

Comment Etiquette: Please do not post spam. Please keep the comments on-topic. Please do not post unrelated questions or large chunks of code. And, above all, please be nice to each other - we're trying to have a good conversation here.

Please review the following issues:

Author Name:


Author Email:

Author Website:

Comment:

Supported HTML tags for formatting: <strong>bold</strong>   <em>italic</em>   <code>code</code>







  • Help Wanted - Find Your Next ColdFusion Job
Ben Nadel's Company - Epicenter Consulting Recent Blog Comments
Jun 18, 2013 at 9:20 PM
Mapping AngularJS Routes Onto URL Parameters And Client-Side Events
I couldn't find examples of passing multiple arguments using the when() routing statement so figured out through trial and error that you can pass multiple arguments using the following format: .whe ... read »
Jun 18, 2013 at 3:39 PM
Experimenting With The Amazon Simple Storage Service (S3) API Using ColdFusion
Hi Ben, THANKS! While not bleeding edge, it is new to me & I like learning new things every day! ... read »
Jun 18, 2013 at 12:30 PM
Disabling Auto-Correct And Auto-Capitalize Features On iPhone Inputs
Also spellcheck="false" should be mentioned as part of html5 specs ... read »
Jun 18, 2013 at 8:40 AM
Using Named Functions Within Self-Executing Function Blocks In Javascript
Hi Ben, you forgot to mention the most important thing for named self-executing functions - they can be referenced by name ONLY inside their execution context (which is parens in this case), it mean ... read »
dee
Jun 18, 2013 at 7:01 AM
My Safari Browser SQLite Database Hello World Example
hai ben, this program is really good i could understand the concept but i dint know how to save it and how to open it as you have done in the video can u give that details pls ... read »
Jun 18, 2013 at 6:04 AM
Clearing Inline CSS Properties With jQuery
Thanks a lot for for post! It helped me a lot... after being stuck since 24 hrs.. found solution from your post. Thanks again! ... read »
Jun 18, 2013 at 2:31 AM
SOTR 2013 - The Best Conference I Never Went To
I keep watching it, should keep me happily distracted until SotR14 ;) ... read »
Jun 17, 2013 at 9:45 PM
What If All User Interface (UI) Data Came In Reports?
@Jonah, As I was reading what you wrote, it occurred to me that maybe I do something similar to that in some of my client-side code. In an application I'm working on, there are a bunch of unrelated ... read »
InVision App - Prototyping Made Beautiful With Prototyping Tools