Forum OpenACS Q&A: Re: Design implementor needed

Collapse
Posted by Tom Jackson on
As an application developer it is easy to cringe at the thought of starting from a graphic design and disassembling it into programmable components. But there is a distinct clarity in this approach. I tend to believe that if you can't explain your idea with a crayon drawing, it is too complicated.

It isn't exactly clear what the task is here. For instance, does the application already exist, and there is just a gap between external design and code, or is the design the only thing which exists right now, kind of a mock-up using photoshop?

For just the gap-filling task, it is very helpful (necessary) to create a process for converting the photoshop graphics into reusable/programmable graphics. The reason is that graphics design may be expensive, but not as expensive as redoing an ad-hoc process to use the graphics. You end up telling your client that they can't alter the graphic inputs without high costs and lots of testing. It is pretty easy to take a graphic and use it in one situation. The problem is you don't want to keep going back to the graphic artist for every change and then redo all the conversion work by hand, over and over. And, since you really want consistency, the exact process of conversion must be programmed in, just imagine hand creating buttons with different text, you don't want to go back to the designer for stuff like this.

Once you have all the programmable pieces, you still need to put them back together to look like the original graphic, and still work like a web page which expands or shrinks with browser width and provides something useful for accessibility requirements. Using css is very handy for this process and makes the generated HTML a lot easier to understand (and debug).

On the application development side there are some issues to deal with. If the underlying application exists, like a standard OpenACS package, and you are just modifying the templates, the design should be mapped to individual pages and checked for the data content. It is common for a designer to combine or mix in data from multiple application pages which are not actually available on a single page. If this happens, you can expect a need to create a new tcl page to provide the combined information. This might be easy or pretty invasive. In general designers are not thinking about the data model for each existing page, but about the overall available data, so you can't guarantee to your client that the design only requires the gap-filling work, essentially replacing templates and providing a conversion process for the graphics.

If there is no existing application, then you don't have these constraints, you have to write the tcl pages anyway.

In any case, OpenACS provides lots of tools for doing these things very efficiently.