Fork me on GitHub



What is FLiP?

FLiP stands for Fusebox Lifecycle Process, and is a project management approach to planning, architecting, coding, and testing a Fusebox application. FLiP was created to combat the astounding 70% failure rate of custom software applications. One of FLiP's fundamental mantras is that "the client can't tell you what they want you to build until they see it". If they knew exactly what they needed at the beginning, they wouldn't need a software architect. They might think they know what they want, but very often they really don't. If you wait until the application is coded to show the customer something, the inevitable changes required by the customer will be very difficult and costly to implement. With this in mind, FLiP focuses on getting customer sign-off on the application before coding begins. FLiP consists of several phases:

  • Wireframing - Wireframes are a very simple skeleton of the application. The wireframe has NO graphics, and is focused only on fleshing out the application flow and business logic that the client is looking for.
  • Design Templates - At this step, visual mock ups of the interface are created.
  • Prototype with DevNotes - Using the wireframe as a map of application flow, and using the design templates as the basis of the user interface, a prototype is created. The prototype consists mainly of static HTML; no real program code is written. This makes it very easy to change the prototype. The customer views the prototype and enters comments and questions into DevNotes, a simple discussion forum attached to each page of the prototype. Over time, based on these comments, the prototype is refined until the customer is satisfied that the prototype represents the application that they want built. At this point, the prototype is frozen to minimize further changes. The goal is for the frozen prototype to exactly mirror how the final, coded application will look and function. Some people call the prototype the "front end", since the connotation of a "prototype" implies temporary, when in fact the FLiP prototype goes on to become the front end of the final application.
  • Architecture & Fusedocs - Once the prototype is complete, the architect breaks the application down into circuits, fuseactions and fuses. A Fusedoc is written for each fuse file to explicitly describe what each fuse does. This phase is commonly referred to as creating the schematic.
  • Coding - Using the Fusedoc, the coders write each fuse file to the specification laid out in each Fusedoc.
  • Test Harnesses - A test harness is created for each fuse file. The test harness "wraps around" the fuse file and is used to confirm that the fuse functions properly when provided with the appropriate variables.

Is FLiP the same as Fusebox?

No. Fusebox is an architecture for building web applications. FLiP is a project management and development methodology for building Fusebox applications.

Do I have to use FLiP to use Fusebox?

No. While the concepts of FLiP were created specifically to compliment the Fusebox architecture, using FLiP is not required to use Fusebox.

Do I have to use Fusebox to use FLiP?

Not completely. Some phases of FLiP (specifically Fusedocing and test harnesses) are specific to the Fusebox framework, the earlier steps can be a boon to non-Fusebox development projects.

What are Fusedocs?

Fusedocs are a set of structured comments used to describe a fuse file. They describe the purpose of the fuse, what values it requires, what values it must produce, and a number of other details. Fusedocs are not required, but they are an integral part of FLiP. Fusedocs are meant to be written for each fuse file before the fuse is coded. By thoroughly describing and architecting the application beforehand with Fusedocs, the actual coding of an application becomes much easier and more stable. Fusedocs are also very useful during code maintenance. The original Fusedocs were simply ColdFusion comments. With Fusedoc 2, the Fusedocs have become XML, which opens up many possibilities for parsing and using the information contained in them.

Where can I get the Fusedoc 2 XML DTD file? To download, right-click, Save Target As. If you browse to it with a browser, it may produce an error. DTDs are not meant to be read by browsers.