Tag Archives: design

Poll: A yes/no question in a web form, which control(s) would you use?

We’re creating a web application that asks a number of questions about pumps (as it happens). Some of these questions are typical yes/no questions. But we need to make sure the user makes a positive choice. We don’t want to impose a choice on them. Which controls would you use?

Here’s the question with the three options we’ve currently got:

Do you need a sealless pump?
Do you need a sealless pump?
Do you need a sealless pump?

Jakob Nielsen at useit.com in his article Checkboxes vs Radio Buttons tells us that radio buttons are used “when there is a list of two or more options that are mutually exclusive and the user must select exactly one choice” and a single checkbox is used “for a single option that the user can turn on or off”. But this case is a little special since we don’t want the user to forget to select something. The nice thing about using the radio buttons or the drop-down is that you have a way of detecting if the user has actually chosen anything yet. On the whole though, the drop-down list is probably the least user-friendly though perhaps the easiest to generate programmatically.


(This poll is a great WordPress plugin developed by Lester Chan)

Just what is software architecture?

So often we hear people saying they’re “architecting” some piece of software, or that they’re a high-powered architect of some form? I was musing what that should mean. At least one colleague insists that it’s just a pompous word for design, optimised for use in proposal boilerplate when you’re trying to aggrandise your role in life.

I’m not so sure, but there clearly is something called software design, and it’s really closely related to software architecture if that’s a separate issue.

After some thought, I’ve decided (I’ll probably change my mind soon) that software design is about designing those parts of a system that address the system’s functional requirements. Architecture, on the other hand, is about designing a system so that it meets that system’s non-functional requirements.

So, for example, if I’m designing something so that orders are properly sent to the billing engine, or so that the aircraft’s elevators move to the correct angle then I reckon that’s design. If I’m adding a write-back cache to an enterprise system so that it works effectively with 2000 simultaneous users when it used to support 5, then I reckon that’s architecture.

Or am I just still being pompous?