Adobe Solution Partner

June 13, 2007

Rejuvenating FLiP, Part 1

Filed under: Fusebox, General Development — Tags: — Nat Papovich @ 12:34 pm

The Case for Functional Business Specification Documents



FLiP is getting a little long in the tooth. When Jeff Peters and I codified Hal
Helms’s development methodology theories in our Fusebox book and coined the name
“Fusebox Lifecycle Process”, we were living very much in a “web 1.0″ world.
Fusebox was developed as a page-centric controller framework and we all built
page-centric applications. “Rich Internet Applications” had yet to be coined by
Jeremy Allaire, the notion of a “Flash programmer” had just crowned, and Flex
wasn’t even a twinkle in Ted Patrick’s eye.



Times have changed, but FLiP has not.



However, this isn’t a call to arms for updating the core principles of FLiP.
We’ve had some outstanding successes with FLiP. Despite the name, FLiP works for
non-Fusebox projects. Many of us have rearranged portions of FLiP to suit our
development practices and our customer idiosyncrasies. And a number of folks
have gotten a free ride from pandering to the FLiP lovers at conferences. The
driving principle of FLiP (that a client doesn’t know what they want until they
see it), the incontrovertible iterative system of feedback, and the specific
phases of the process are all golden. What’s not golden is the tools we use to
accomplish the job.



I’ve always been a fan of monumental functional specification tomes. (More about
those FLiP tools in a minute.) Functional specification documents (or “spec
docs” or “business specifications” or just “specs”) are always like soft, warm,
safe, places to me as a developer. Nothing can hurt me when I’ve got a big, fat
spec doc in hand. It’s my bible, it’s my life preserver. And no, no amount of
FLiPping can answer a question like, “What should happen to our application when
the third party business accounts processor returns a -34 status code instead of
the expected code of R-12.” Would you really put a detail like that into a
DevNote on the bottom of a screen? Which screen? If you’re not putting that in a
DevNote, where are you putting it? I don’t know about you, but I’m
putting it into my spec doc. In fact, I’m putting a lot of stuff into my
spec docs. As a developer, I absolutely love answering that question by
saying, “Well actually in section 4.12.4.6.2, bullet item 2, it states very
clearly what we should do when the processor returns anything other than R-12.”
And as an application architect, I really enjoy answering that question by
saying, “Quit yer bitchin’, it’s in the spec.”



Ahh, the pleasure of geeking out with a spec doc.



Our mutual friend Joel Spolsky (What??!! You don’t subscribe to Joel’s
newsletter?
Do
it right now
.) has
written
at

length
about
spec
docs
and even offered up
bogus
and
real-world
samples to get your juices flowing. Writing specs is not a simple thing though.
It won’t work to grab a template like Joel’s and fill in the details of your
project. There is no ten-step wizard to spit out a spec doc. The process takes
action, momentum, initiative. It requires lots and lots and lots and lots and
lots of communication with the client. Hell, I’ll go so far to say that it even
requires a non-comatose client. (Would that all projects were so
blessed.) And writing specs is hard, bloody work. Fred Brooks wrote:

“I believe the hard part of building software to be the
specification, design, and testing of this conceptual construct, not the labor
of representing it and testing the fidelity of the representation… building
software will always be hard. There is inherently no silver bullet.”

So true, so true. A recent Webapper customer spent nearly sixty thousand bucks
and four man-months to produce a spec doc. That’s not an insignificant amount of
money no matter how you slice it. But they, like us, know the power of a
thorough spec doc. They, like us know that the coding phase now becomes orders
of magnitude easier. And they, like us, understand the benefit of spending money
to reduce uncertainty. So we’re all writing spec docs, correct? Even
though FLiP mentions nothing about it? Good, good, now follow me over
this-a-way…

Traditionally, the wireframing and prototyping phases were done using
purpose-built wireframing tools (the two best ones, if I do say so myself, are
pretty much dead products at this point: Fusium’s Rebar and Synthis’s Adalon)
and Dreamweaver or whatever HTML editor you liked best. Those tools worked
very well for the page-centric web 1.0 applications in vogue back yonder
at the turn of the millennium. But how do you make a rapid prototype for a Flex
application? What about bolting DevNotes onto Flex screens? And if there are no
“pages”, what’s the use of a page-centric wireframe tool?



If you’re still reading this far, then you’re probably asking, “Nice talking,
slim, but where’s the beef?” (Or maybe you aren’t. Whatever.) What are the kewl
new tools? Alas, that’ll have to wait for part 2. Stay tuned.

Share and Enjoy:
  • Digg
  • del.icio.us
  • Facebook
  • Google Bookmarks
  • LinkedIn
  • StumbleUpon
  • Technorati
  • TwitThis

1 Comment »

  1. Very good article going to read part 2 now

    Comment by Mike Brunt — June 14, 2007 @ 12:00 am

RSS feed for comments on this post. TrackBack URL

Leave a comment

 

Server Down?

Maximize Web application uptime by drawing upon Webapper's years of experience tuning and stabilizing many of the world's largest ColdFusion Web applications. Contact us today!