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 »
110 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 »
10,640 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
InVision App - Prototyping Made Beautiful With Prototyping Tools Ben Nadel's Company - Epicenter Consulting Recent Blog Comments
Feb 10, 2012 at 7:21 PM
jQuery AJAX Strips Script Tags And Inserts Them After Parent-Most Elements
Update! Instead of $(eval(options.insertAfter)).after(data['insertData']); I now use: var ajaxNode = document.createElement('span'); var parent = $(eval(options.insertAfter))[0].parentNode; ... read »
Feb 10, 2012 at 6:18 PM
jQuery AJAX Strips Script Tags And Inserts Them After Parent-Most Elements
encountered this same, what I consider, jQuery bug last week. I'm building a site in which I load some content via AJAX. This content contains Linkedin share button placeholders which Linkedin API ne ... read »
Feb 10, 2012 at 11:30 AM
Cross-Origin Resource Sharing (CORS) AJAX Requests Between jQuery And Node.js
After you understand the concepts here, this is an awesome cheatsheet for enabling CORS in just about anything http://enable-cors.org/ ... read »
JM
Feb 10, 2012 at 9:10 AM
My Safari Browser SQLite Database Hello World Example
@Amy, Here is a very good tutorial on how to use JOIN: http://www.sqltutorial.org/sqljoin-innerjoin.aspx ... read »
Feb 10, 2012 at 4:42 AM
Building A Twitter-Inspired RESTful API Architecture In ColdFusion
This is great, very useful Ben. I spotted a small typo in the api.cgm listing: <cfthrow type="Unauthroized" /> Cheers Stefan ... read »
Feb 9, 2012 at 10:35 PM
CFDirectory Filtering Uses Pipe Character For Multiple Filters (Thanks Steve Withington)
I was wondering if there would be a filter you could apply so that you got everything but what you included in the filter. As in show me all docs that are not a .pdf. ... read »
Feb 9, 2012 at 10:29 PM
Learning ColdFusion 9: Application-Specific Data Sources
@Ben, No offence, but if people were really wanting advanced features they would be using a platform like ASP.NET MVC. CFML is so structurally compromised as a tag-based scripting language that ... read »
Feb 9, 2012 at 10:03 PM
Subversion - Cleanup Failed To Process The Following Paths
@Leviaguirre, do you still have problems with this? ... read »