NYCPHP Meetup

NYPHP.org

[nycphp-talk] front end design

David Krings ramons at gmx.net
Sat Nov 21 10:20:13 EST 2009


selyah wrote:
> I have never done front end programming before that was not related to a 
> database so I am a bit at a lost  as to how or where to begin.
> Thanks in advance
> Ian

If you want to get really technical about it, UI design processes are 
standardized in ISO 13407 "Human-centered design processes for interactive 
systems". That might give guidance as to how to approach such a project, but 
it won't answer the question if Java, PHP, Swing, Curl, Delphi, or machine 
code are best suited for GUI design. There are also several tutorials online.
At my work, this is what we use as process in a nutshell:
- gather requirements: what do the users want and what do they not want
- write a statement of scope: what is it that you are supposed to do
- write a functional requirements document: describe exactly how the the UI is 
expected to behave, that includes any error messages as well as UI layout
- write a tech spec: the approach from the developers perspective, this doc is 
not supposed to contain any code, but screen mockups and program flow
- write a test plan: based on the functional requirements and the tech spec, 
determine all cases that may occur (not just the expected ones, users often do 
not do what you expect them to do) and determine the expected behaviour of the 
app based on the requirements (which is why crappy requirement docs make 
crappy apps)
- code the application and unit test it
- run the test plan against the app, log any errors (even when you are a one 
person operation)
- fix the errors
- run the test plan against the app, log any errors (when there are none, 
proceed, otherwise go back to fixing)
- craft a deployable package for user acceptance testing (also called beta test)
- make any modifications from user acceptance testing, if necessary amend the 
test plan
- run the test plan against the app, log any errors
- fix any errors that may have occurred
- test again to make sure fixes didn't introduce new bugs (you have to keep on 
testing until all cases are passed in one round of testing)
- release the app


That process works and puts a lot of focus at the beginning of the process on 
accurate statements of scope (which also ned to include what the app is not 
supposed to do and if any existing functionality is allowed to be changed, 
typically not the case) and on functional requirements. If it is unclear what 
you need to do there is no point in getting technical at that moment. Choosing 
the programming language is really a secondary thought, you gather the tools 
that work for you and that allow you to make best use of your skill set - 
unless you have the luxury to take that as opportunity to learn new skills.
So, two things to hammer home are detailed documentation of requirements (and 
detailed means going down to each and every button click or other event) and 
testing, testing, testing - and I don't just say that as QA analyst. Even 
simple web pages such as the one at my work for signing up for insurance need 
to be throughly tested. The yahoo that clobbered that SharePoint crap together 
didn't bother to trim leading and trailing spaces, but tested for spaces to be 
in the entry. That probably would have worked out if he or she didn't put a 
space in as default entry. So if you just start typing and hit submit you get 
an error message. Shows that whoever made this and whoever signed off on it 
most likely never even tried it once. Any somewhat formal testing would have 
found that bug. But who knows, maybe it is just the result of someone in HR 
clicking something together using SharePoint Designer. One of the many reasons 
why I loathe SharePoint, it is just bad software.

HTH,

David




More information about the talk mailing list