Team Nylon : Interface Driven Architecture Proof Of Concept (POC)

Posted December 26, 2006 at 8:57 AM by Ben Nadel

Tags: ColdFusion, Work

After listening to Clark Valberg at the last NY CFUG, I got all jazzed up about Interface Driven Architecture. I feel that it is definitely the way to go when it comes to successful project life cycles. Of course, right now this is all theory for me as my company's current development model is the more archaic, "develop now, show the client later" mentality.

In order to even approach management with this suggested shift in thinking, I am going to have to prove to them that this is a worthy strategy. I am using a small project called Team Nylon as my proof of concept. Team Nylon is a very small task-management system. More or less, it's a glorified To-Do list that has a sense of clients and teams. It's small, but I think it will be a useful enough application to prove that this is a valid approach to development.

The first stage of my prototyping was purely graphical. No ColdFusion or code of any sort is used during this phase. I used Adobe Fireworks to create slides of what I thought the application should look like. The following slides took me about 3 hours to create. Keep in mind - and this is really the whole point - that NO ColdFusion code has been written at this stage. The idea is that I can get the clients (my management) involved in the process sooner rather than later and with minimal wasted development effort.

After the graphical slides have been signed off on, I will create a non-functioning demo prototype. This will contain mostly HTML, CSS, and Javascript and what ever ColdFusion I will need to make prototyping easier (ex. Headers and Footers), but will not have any state nor will it call and databases. That will be Phase II.

These are the slides that they have signed off on for further prototyping:


 
 
 

 
 
 
 
 

 
 
 

 
 
 
 
 

 
 
 

 
 
 
 
 

 
 
 

 
 
 
 
 

 
 
 

 
 
 
 
 

 
 
 

 
 
 
 
 

 
 
 

 
 
 
 
 

 
 
 

 
 
 
 
 

 
 
 

 
 
 
 
 


Reader Comments

Dec 26, 2006 at 11:47 AM // reply »
51 Comments

Ben,
Looks really interesting and I will defiantly be looking to hear more on this. On a side note, how do you create such clean prototype screen shots like this. I need to start doing that more!


Dec 26, 2006 at 11:54 AM // reply »
11,238 Comments

Dan,

I don't know if you have ever used Fireworks, but they use Frames (similar to Photoshop folders maybe???). It make doing this very easy. I will post up the PNG design file later today as well as a link to the "functional" prototype so people can click around.

From the PNG, its just a matter of going to each frame and exporting. There's a way to export each frame automatically, but I have not set up a slice to do that - its really hard to make a "big picture" slice as well as individual small slices (ex. primary nav, logo). I am not that skilled :)

But look for more posts later today.


Dec 26, 2006 at 2:50 PM // reply »
11,238 Comments

Dan,

Take a look here if you want to get the design file:

http://bennadel.com/index.cfm?dax=blog:445.view


Dec 27, 2006 at 9:55 PM // reply »
92 Comments

I really love how you have setup this mock application. If its ok with you I plan to follow along and build it in my framework. I've been having trouble finding something simple I can test and this looks great. I do have one question though about the first screenshot. Why do you allow a user to impersonate someone else? From what I see they are in a way logging in as another user but couldn't this be dangerous? I'm sure I'm just missing something here. You got some great posts going Ben, keep them coming!


Dec 28, 2006 at 7:47 AM // reply »
11,238 Comments

Javi,

I am glad you like the demo. I don't know if you saw the next post on it, but all the prototype code is available for download and an online demo. Feel free to take it and mess with it.

As far as the security goes, you first guess was correct: there is none. I wanted to keep the program very simple, at least to start with. Because all I wanted was a glorified To-Do list for the company, I don't really care who can get on the system and add tasks. Any one of my co-workers can go on, create tasks, and assign them to anyone else in the company.

Being able to "impersonate" people doesn't really change any functionality other than the "MY" page (ex. MY Tasks, MY Teams) will filter based on the "persona" that you have selected. So I guess the only thing that changes is the filtering. No add/update/delete functionality will change.

Is this a security risk? I guess it depends on how you look at it. If we have an employee that is going to go in a purposefully screw with other people's task and do malicious things.... then, honestly, security risk in the application is probably the least of our problems :)

Of course, once the application is up and running and used by my project manager, she might decide that security is an issue and at that point, I can build it in. But currently, I feel that it would not add to the features.


Dec 28, 2006 at 9:19 AM // reply »
92 Comments

Ben, I check your blog regularly to see if there's something new. Are you trying to say I'm blind? Eh? What you trying to say? :) I have seen it and tried out the online demo last night. It confused me a little bit though as the data was constantly changing so I assume you probably just had a query that was being randomized upon display, is that correct?? I had asked my first question rather quickly but I agree as it makes sense. This application would be for administration so no need to be concerned about that. I think what you got here is great and look forward to see where else you go with it.


Dec 28, 2006 at 9:23 AM // reply »
11,238 Comments

No trying to say anything, I swear, I swear :)

Yeah, the data just randomizes. The client list never does I think, but the team structure and the task list randomizes. I did that so I could how the page would look with different amounts of data. I can see that it could be confusing if you are not expecting it.


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
May 19, 2013 at 2:31 PM
My Experience With AngularJS - The Super-heroic JavaScript MVW Framework
It's funny really just how well that image describes the way I would imagine most people that go with angular for some project is. I have had a similar roller-coaster ride with it as well, but not qu ... read »
May 17, 2013 at 7:42 PM
HashKeyCopier - An AngularJS Utility Class For Merging Cached And Live Data
Ben - thanks so much for posting these Angular articles and findings, they've been a huge help towards learning one of the more 'complex' JavaScript frameworks out there (IMO). I have been using Angu ... read »
May 16, 2013 at 5:01 PM
UPDATE: Parsing CSV Data Files In ColdFusion With csvToArray()
Your code was the closest thing I've found to obtaining some direction for converting ISO fields to values that CF can translate properly. Thank you for posting! ... read »
May 15, 2013 at 10:37 PM
Very Simple Pusher And ColdFusion Powered Chat
hi id making plz easy ... read »
May 15, 2013 at 6:07 PM
Making SOAP Web Service Requests With ColdFusion And CFHTTP
Ben, you once again saved my bacon at work. Thank you, thank you, thank you! ... read »
May 15, 2013 at 4:15 PM
What If All User Interface (UI) Data Came In Reports?
@Josh, Thanks! @Ben, I definitely recommend the David West book "Object Thinking" I've been quoting from. It goes deeply into the philosophy and history of OO programming. His breadth ... read »
May 15, 2013 at 11:36 AM
Ask Ben: Print Part Of A Web Page With jQuery
I found this helpfull when you need to keep (refresh) the original parent page after closing the iframe child print dialog (Hoping you're not using a form at this time so it won't submit again): On ... read »
May 14, 2013 at 7:13 PM
What If All User Interface (UI) Data Came In Reports?
@Jonah, If there's any books you'd recommend on the subject of domain modelling, I'd love to hear it. I just downloaded the free PDF of "Domain Driven Design Quickly". Figured I'd give it ... read »
InVision App - Prototyping Made Beautiful With Prototyping Tools