The Lounge is rated PG. If you're about to post something you wouldn't want your
kid sister to read then don't post it. No flame wars, no abusive conduct, no programming
questions and please don't post ads.
I have been trying for about two weeks now to convince my designer/colleague that her idea for a web-based data entry screen is stupid a horrible design and a waste of time to pursue. At yesterday's meeting, realizing that my pleas were falling on deaf ears, I just gave up.
The big 'demo' is tomorrow morning and I will be spending today bringing her monstrosity to life...as painful and embarrassing as it may be.
Her design calls for a data entry grid where the rows are vendors and the columns are days of a selected week, or M-F. There are currently 10 vendors, so for a full week this results in 50 cells. Now, for days of the week where the site can receive orders from a vendor, the cell will contain 2 controls, a text area to capture/recall an amount and a file upload control to allow for browsing/uploading a pre-scanned image. Realistically, this will result in around 25 active cells for a full week, so around 50 or so expected actions by the user for a session. The major problem here as I see it is the potential for 25 or more consecutive/parallel uploads to cause headaches on the server...but what do I know?
What I tried: I have offered alternatives to eliminate complexity, for instance having the user select/work with one vendor or date at a time. I am allowed to do this only after completing the brain-child of the designer.
I'm not asking for help, just ranting...'I picked a terrible week to quit smoking!'
Next day edit: After discovering that dynamically created fileUpload controls do not save state on postback, the design/logic was changed so that the 'mass data entry' screen became a kind of worksheet providing access to a single data entry screen either in add or edit mode. It works well, and the customer is happy.
Thanks to all who have read and especially those who took the time to comment!
You mean the "designer" only gives you a verbal/written description and doesn't actually provide a design or some form if visualisation / mock up?
Sounds to me somebody's way got the wrong title and/or skill set.
BTW: on a brief skim my first question upon being shown a design, what if the same customer places 2+ orders on the same day.
If they ask you to talk/demo [before putting them to sleep on the tech] make sure to clearly mention who the design came from.
... make it sound good: "all credit to X for the design, hope my code does it justice..."
And then, some designers are like some architects: They have learned in school, or developed by their own desktops, the most artistic and most useless ideas for how a "modern" design should be. Either because they (like some architects) want to build monuments to display their genius, or they simply strive to be in the forefront of all the new fashions in the web design world.
A designer by him|her self can do only half the job. The other half is done by the users, unskilled both in program development and design rule (and as ignorant of web design fashions as possible).
Observe how users operate (a mock up of) the system/website. Listen to when they swear. Time how long it takes them to complete a given task, count how many times they make the wrong choices, how many times they have to correct/undo previous actions. Count how many times they have to move their hand between the mouse and the keyboard.
For the accessibility part: Give the test users a set of glasses smeared with vaseline. Give them gloves for use with the keyboard and mouse. Turn down the color saturation to zero to make a grey scale image and reduce the light contrast so that all greys are packed from 0 to 10% brightness. (Or, if you can spare the time, have the color image converted to simulate that of a color blind - but for some reason, those conversions are dead slow, so the response time will be terrible.) Allow the users to use one hand only.
Finally, there is the "five year old test": Let a five year old kid have access to the mouse and keyboard, and tell him that (s)he will get an ice cream cone for each time he manages to crash the system in a new way. (Most likely, you don't have to provide any other food for the kid that day - he will be stuffed with ice cream...)
The designer makes the proposals. The users make the decisions. If the designer is watching and protesting, insisting that a modification to satisfy the users would break some essential design principle, you tell the designer that his/her job is done. Or, if the users are using the functions "in the wrong way", then you offer the designer to modify the design so that users by themselves, without being lead by the hand by a designer, find "the right way" to do it.
Designers are great for ideas and for finding ways to lead the users to towards efficient and "right" work patterns. But they are not demigods.
You have my sympathy - designers should always be working with the developer's/engineers because as you say in this case there is the possibility of multiple uploads being triggered at once and while there are many ways to handle it the solution becomes way more complicated than the original issue was - which is to allow users to upload data.
It sounds like they joined the idea of the upload page with the display of vendors.
It's potentially a costly idea and not really scaleable(ugh can't think of a better word).
What happens when there are 100 vendors(even if the user says there won't be we all know what happens)?
What happens when there is more than one file to upload per vendor?
It just has 'bad idea' written all over it as far as I am concerned
The way to get around parallel upload is to have some batch uploading system - but then you are designing a whole system around a not very well thought out idea(i.e. the UI) and as I previously mentioned the solution becomes way more complicated than the problem that the designer is trying to solve.
“That which can be asserted without evidence, can be dismissed without evidence.”
So, it's easy enough to create fileUpload controls on the fly and put as many as you want on a webpage. Unfortunately, it's seemingly impossible to capture their state/value on the postback for processing. Strange that the other dynamically created controls can be accessed through the request object, just not the fileUpload controls. I suppose this may be by design to prevent just the kind of atrocity I'm trying to commit! (against my better judgement of course!)