sildenafil kaufen cialis prezzo kamagra pas cher viagra dosaggio acheter cialis generic impuissance erection viagra farmacia acheter levitra pas chere acheter clomid en france curare impotenza aquisto levitra sildenafil sin receta vendita viagra achat viagra le viagra viagra donna cialis inde cialis marche pas genericos viagra pildoras cialis cialis belgique levitra venta pilule viagra acheter kamagra 100mg levitra italia impotenza sessuale achat de levitra cialis generique acheter acquisto viagra on line levitra donne viagra versand tadalafil precio cialis en ligne vardenafil generique acheter cialis 20mg impuissance sexuelle cialis meilleur prix commander du cialis viagra ohne rezept acheter cialis pas cher kamagra te koop vardenafil generico vendo viagra pastilla cialis farmaci impotenza levitra sin receta cialis ohne rezept generische viagra levitra te koop sildenafil precio acheter kamagra france acheter viagra pas chere vardenafil bestellen cialis livraison rapide viagra bestellen acheter propecia vendita levitra propecia sans ordonnance achat levitra cialis pharmacie cialis venta cialis vente en ligne viagra controindicazioni posologia viagra cialis 10 mg leivtra moins cher cialis prijs generique du viagra cialis prescrizione procurer du levitra acheter cialis sans ordonnance kamagra apcalis vendo sildenafil achat cialis 20mg vente levitra pastilla viagra comprar viagra em portugal comprar cialis generico levitra naturale levitra venta libre aquisto cialis cialis donne koop viagra vardenafil generika viagra recensioni levitra generico acheter accutane impuissance homme prozac sans ordonnance acquisto viagra generico receta viagra levitra pharmacie vardenafil generico tadalafil bestellen vendo viagra milano viagra 50 mg compro sildenafil acquisto levitra acheter zithromax levitra prix cialis sur internet vente viagra cialis generico 10 mg cialis pharmacie prix viagra pharmacie acheter cialis cura impotenza viagra donne viagra naturel cialis generique cialis sur ordonnance viagra svizzera cialis kopen cialis en pharmacie compro cialis sildenafil generico acheter cialis generique achat kamagra internetapotheke acquistare levitra viagra moins cher zyban generique acheter du cialis viagra europe kamagra rezeptfrei impotenza rimedi prix du cialis levitra generique cialis moins cher commander kamagra costo levitra pharmacie en ligne

Introducing Clickframes!

By William Crawford in Information Technology

6 Jul 2009

I’m sure at least a few people have been wondering where we’ve been the last few weeks. We’ve been busy on a number of products, and we released one of them at the end of June. It’s called Clickframes,  and it’s a set of frameworks for building usable, reliable, scalable software faster, better and cheaper.  The original Clickframes concept was based on three observations:

  • Good software requirements can be very useful.
  • Most software requirements aren’t very good.
  • Even when requirements are well thought out, they’re generally created in a format that limits their usefulness.

At ISG, we develop software using a design methodology that focuses on understanding user needs through interviews, observations and deep research. We learn as much about the problem space up-front, do as much work as possible to validate our designs with real users, and only then proceed with the implementation.  This approach works very well for us (and the one time we allowed ourselves to be persuaded to approach a problem differently the results were a lot more typical for the industry), but it requires a lot of agility. Clickframes helps give us that agility by turning static software requirements into a dynamic specification of how the application should work.

Here’s how it works: at some point during the design process we start building an application specification (or “appspec”), which is a description of the web application we want to build. The early iterations can be very schematic – identifying a couple of pages, perhaps a form or two, and a few buttons. As we learn more about the application we can extend the appspec to include additional detail, including specific requirements, security, and flows between different pages in the application.

That’s actually all pretty standard, so here’s where things get a little different. The appspec isn’t a Microsoft Word document, or a stack of index cards, or a drawing on a wall. It’s an XML file, and it’s maintained by the application’s lead designer. By managing requirements in XML, we can generate a whole range of useful artifacts on the fly. The most important is the Clickframes Interactive Preview (click the link for a sample from our Issue Tracker demo), which provides an easy to navigate HTML representation of the application. As requirements change the CLIPs can be easily regenerated. Clickframes also provides generators for conventional requirements documents (the system shall…) and a visualization tool that generates interaction maps of the application. Here’s the Issue Tracker example, generated from the same appspec as the CLIPs linked to above:

A Clickframes Project Map

Once the design stabilizes, we move on to implementing the software itself. Clickframes helps here too. We’ve built code generators for three different web architectures – PHP, JBoss Seam, and Spring WebFlow (the latter two, for the non-technical reader who has stuck it out this far, are Enterprise Java platforms, and the first is a very common scripting language for web applications). This is an area where conventional prototyping tools break down – they don’t provide a bridge to development.  With Clickframes, the plugins give us a skeleton of the application immediately, and our developers and designers can go in and immediately start creating content and the final look and feel, rather than worrying about details like implementing edit checks on form fields.  If you want to see the Clickframes Issue Tracker demo, just click on the link (to log in, enter anything for the username and password).  This isn’t a complete application, by the way – it’s just the generated code, before being customized by a programmer.

We’ve spent a lot of time on the Clickframes code generators and on the architecture of the underlying applications. We’ve implemented a range of features we call “CodeSync” that allow us to regenerate applications even after the development team has started to customize them. This is critically important, because it keeps the requirements from becoming out of date. If a business user, or a a designer, wants a change made, they can have the appspec updated and the programmer can re-run the code generator. It creates a feedback loop that’s often missing.

The final step in the Clickframes project lifecyle is testing. Since we have a version of the software requirements that a computer can understand, we can use it to generate a suite of automated tests, as well as templates for test strategies and manual test scripts. It’s not magic – the quality assurance team still has to do some work, and we can’t automatically generate every single test, but we can save a tremendous amount of up-front work. And developers can have access to automated tests of the final application almost from the first day of development. It saves a tremendous amount of time.

Clickframes is software to streamline development of enterprise applications.  So how much would you pay? Don’t answer, because it’s free – we’re releasing Clickframes as Open Source Software under the LGPL.  You can download Preview Release 1, sign up for the mailing lists, and see some demo screencasts at www.clickframes.org, and you can find a lot of documentation on The Clickframes Wiki, including instructions on how to get started without downloading anything.  The Preview Release is out there to gather feedback – we’ll be releasing new versions at a pretty rapid clip over the next two months, with a goal of 1.0 by the end of the summer. We’re also rolling out some new web site features in July that will make it easier to explore the Clickframes model.

This has been a long road for all of us – we started working on Clickframes back in May of 2008, so it’s been over a year to get to this point. So give it a try and let us know what you think!

(And if you like it, or like what we build, give us a call – we’re always looking for interesting new projects).

2 Responses to Introducing Clickframes!

Avatar

naaka

July 14th, 2009 at 4:47 am

Hi,
this is one of the best idea i’ve seen in the last 2 years!

One suggestion.

Xml is overused, it’s flat structure is not targeted to describe a graph, and become rapidly a mess (does anyone remember the old struts.xml).

So why not do the reverse ?

Instead of generating a live specification (i.e. the CLIPs) from the xml, give the possibility to build and edit live the specification (the CLIPs), and to export an xml from it.

What do you think ?

Avatar

William Crawford

July 14th, 2009 at 8:56 am

Hi Naaka,

Actually, we’ve thought about doing just that. We’re starting with XML because that lets us get the model just right, and with modern editors and XML Schema we can get a lot of the cross-checking done. I remember the old struts.xml – I hated it, mostly because you had to maintain knowledge, by hand, in more than one place.

We’ve started building a very simple authoring tool for managing an AppSpec through a GUI, and will release it in the next month or so (it’s a 20% project). The first version will be pretty simple, but we’ll roll in some drag and drop graphical editing in the future.

We’d love to hear any additional comments you may have – join the mailing list!

Will

Comment Form

About this blog

A group of people dedicated to figuring out clever ways to implement information technology in healthcare. It's written by William Crawford, Jon Abbett, Evan Pankey, Vineet Manohar and Steven Boscarine.

  • Bee: I manage to get it running on tomcat 5.5.x. Thanks. [...]
  • Bee: Thanks for the great tutorial. I wonder if it can be run in tomcat 5.5.x. I mean if JSF 2.0 and Weld [...]
  • Aruna: hi Steven, Thanks for this great tutorial. I'm new to all this stuff maven, jsf, tomcat etc. I lo [...]
  • Steven Boscarine: Hello Ashley, I apologize, but much as changed since that post was written. When that post was writ [...]
  • Ashley Westwell: Type above javax.servlet jstl 1.2 runtime Should be javax.faces jsf-impl runtime 2. [...]