October 1, 2009

UI Fundamentals for Programmers

Although this talk is very heavily focused on web application development, I found the presentation of his design process very informative, with many parallels to automation.

What I found most interesting is that his entire design process starts with modeling, which is coming up with a fundamental description of how a system works, what components it is made up of, and what they do, and how they interact. Once you describe, or “model,” the function of each component at a high level, and how they interact within the system, the code will easily follow.

I’ve seen this happen on many applications. Once the model of the system is described in a clear way, the underlying code and machine design that follow will be far more robust and much better organized.

As programmers, too often we are tempted to get down to writing code right away, especially under tight deadlines. Next time you have a project, do your modeling. You will thank yourself later.

There are also some great notes on general UI design. Enjoy:

UI Fundamentals for Programmers by Ryan Singer from ChicagoRuby on Vimeo.