At some point, it will be time to add new features to this application. The team should follow the
same procedure for each feature. The procedure can be summarized as:
Review design from a technical, experience, and visual perspective
5. Go back to 2 until it is perfect
The advantage of this process that appeals to me is that I have a clear and concise design to work
from. There will be very few surprises, since I had a chance early in the process to provide developer
feedback on design issues. From a management perspective, having many small milestones allows the
team to show progress, allows the client to adjust to design or technical limitations, and reduces
surprises for everyone.
Showing off the Platform
When working with designers, it is a good idea to get a sense of how familiar they are with the target
platform. As every developer knows, each platform has a different set of limitations. For example, if you
but if you allow applets or Flash in your application, animations are very doable.
If your design team is working with a new technology, it is important to sit down with them and
explain some of the limitations from a technical perspective. This will save them a lot of time if they
know they should throw out an idea before spending any time on it.
Conversely, it is also worth showing off what a platform can do. When first using JavaFX, the
designers I worked with were very concerned about this new technology. They thought JavaFX meant
applets from the late 1990s. They had a misguided sense of what JavaFX could do, and as such they were
afraid to explore what they could do with the platform. After I sat down with the designers and showed
them bunch of examples from Sun, they were much more confident about this new platform. They even
noticed a few examples that they thought would be impossible on the platforms they were most familiar
Setting Realistic Expectations
While it is important to show off what a platform can do, it is equally important to demonstrate
reasonable limitations. All platforms are constrained by performance; computers can only do so much
work. As the languages we use to describe an application become more and more high level, we have less
and less control over things like memory management and performance. For example, in JavaFX there is
really only one way to draw a circle on the screen; if JavaFX can't draw that circle fast enough, there is
really nothing the developer can do to speed it up.
So when making cool demo applications to show off what JavaFX can do, make sure to show the
application on both a high-end workstation and an older laptop. Impress upon everyone that while
fancy graphics are important to an application, they must be used sparingly and where they provide