Tuesday, June 5, 2007

Non-Functional Prototypes Rock!

Old & Busted way to design an application interface:
Use photoshop etc to mock up images of what a particular screen would look like, paste this into a html page and add hotspots. repeat for every page in the system.

then the client decides they'd like the background to be a slightly different shade of puce (is that even a color?), so some poor grad (not me!!) has to go through and change every single screen.

the client finally signs off on the design, you throw the whole thing away and start coding afresh in whatever the spaghetti framework du jour is. reusability: zero. blegh!

New Hotness:
(assuming it's a web app, would probably work as well for client app gui's) mock everything up in html/jsp/aspx/ whatever you're using. don't write any business logic at all, just pump out great steaming mounds of raw html, and just enough smarts to tie the pages together.
then when the client decides they actually like chartreuse, you change a single style (you did use css right?) and the whole thing changes in one step. we save money and the grad doesn't get that crazed look in his eyes...
Now when the client signs off on design, you hand the "non-functional prototype", aka the app minus the business logic, off to the coders, they pump out the business logic and you save a whole swag of time.

It's just so easy, so simple, I don't know why more people don't do it...

My first experience with this methodology was also the first app I got to architect from the ground up (lol, the front map *still* doesn't work in FF, and it probably never will! one day I might blog about this one...) instead of having to maintain someone else's cruft (these are mainly internal so they can stay nameless).

I came on for the develop phase after the NFP was done. The entire application skeleton already existed so all I had to do was the little task of making it dynamic (yeah, easy) which meant learning about ldap & .NET, and how to plug the two together (thank God for Novell, or I would've been stuffed!). MS Visual Studio was also alarming productive, as a hard-core java fan I found that offensive!

Anyway, I'm rambling. NFP's rock, they save lots of time. The guys I'm currently working with love their intellij/struts/hibernate, and with NFP's once the design phase is over, that's half the develop boilerplate done as well, leaving lots more time for business rules, just like those pesky dotnet developers do...

Matt Kerle

No comments: