so… tell me what you want, what you really really want · •sometimes because we just let the...
TRANSCRIPT
So… Tell me what you want, what you really really want
Designing solutions for users
My name is…
• Axiell/KE software employee for 10 years.• Our clients are often heavily involved in the project design
process.• How do we work together to do this better?• NOT here to talk about formal Business Analysis practices• AM here to talk about some things I’ve learned through
many years of implementing projects
Virtual Insanity• A typical day in support:• You get a support ticket about a functionality unique to a
client.• Once you start digging, you start finding all sorts of crazy
things…• There’s an also search hard-coded in the client code; • There’s backend validation hidden in multiple Texpress
fields that have to run in the correct order;• There’s a developer comment that says “I don’t know why
they’re doing this!”
I want it that way…
• Sometimes it’s just easier to give the users exactly what they’ve asked for, even if it doesn’t really make sense.
A recent data mapping example: • Legacy system had two tables
• Overdue• SoonOverdue
• If a permits record had a date that was past due, some information would be copied into the Overdue table.
• Dates in the coming week would be copied to the SoonOverdue table.
You oughta know!
• But we should know better…• These tables were part of a workaround that allowed them to pull
reports on those permits.• What they really needed was a way to search the dates in the
permits table.• All they needed was an Adlib access point!
You are not alone
• Clients give Axiell the starting designs for our projects.
Clients
• Axiell Sales staff have to do analysis before recommending a solution.
Sales
• Project implementation staff should be on the lookout for bad designs before they build them!
Project Implementation
• Support staff are the front line for hearing about client issues and need to decide how to solve them.
Support
This is how we do it…
The Way• Things to ask
before the design.
I don’t wannamiss a thing• Making sure the
design will work.
Hold on• These might be
red flags.
The way
Why do you want to do this?
•Overdues table
Who is going to use this?
•"Emu Lite"
Where are the users located?
•Exhibits IMu
Does it already exist?
• Inventory tool
The way: Why do you want to do this?
• Get an idea of what the real-world workflow will look like.• Sanity check• A complicated workflow might have started out as a workaround.• Eg. Overdues table
The way: Who is going to use this?
• Super users are going to have very different needs from interns.• For a heavy database user, we can get away with more powerful but
more complicated tools.• Eg. Scheduled Imports
• A casual user might only need a read-only interface, but likely doesn’t have time to go through a full EMu training course.
• “EMu lite” web interface
The way: Where are the users located?
• Remote vs. local users• Web solution• Remote desktop or Citrix
• Exhibits project• Contracted off-site exhibit designers• Required building out an IMu interface
The way: Does it already exist?
• It might exist in terms of technical structure or in topic.• Or both…
• Inventory tool• Requirements almost exactly mirrored a project done by a museum
in the UK.
I don’t wanna miss a thing
•Video circulation tableDoes it “flow”?
•Newspapers websiteIs it scalable?
•Requests moduleIs it searchable?
•Licensing moduleIs it reportable?
I don’t wanna miss a thing: Does it flow?
• Consider how the users will be using the system.• If you’re always entering data off a standard paper form, you don’t
want to be jumping between tabs to do it.
• Video circulation table, with fields like “borrower” and “date”, suggesting a loans table.
• But the workflow suggested Axiell Move instead.
I don’t wanna miss a thing: Is it scalable?
• Sometimes things that work on a few records don’t work so well at full scale.
• This is a common problem, and one that we often don’t catch until very late in a project.
• Newspapers website was tested on 200 records and worked great.• In production with the full 500k records, it fell apart spectacularly.
I don’t wanna miss a thing: Is it searchable?
• What searches need to be done can influence a design.• Some data structures are more difficult to get relevant data out of.• In Adlib, having the right access points will reduce confusion.
• Default EMu Tasks fields are not searchable by person.• Wanted: Daily tasks list from EMu.• We put it in a new module.
I don’t wanna miss a thing: Is it reportable?
• Similarly, sometimes fields aren’t easily reportable.• It’s difficult to report on fields embedded in tables or nested tables.
• Licensing module• Early design: sources and objects table fields attached to a single
license request record.• Separate “layer” of records divided by source to make this easier.
Hold on
Nested tables
Saving data in a different
module
Heavy fifo/audit
use
Large embedded
tablesMany
records Hierarchies
Hold on: Nested tables
• EMu nested tables are a lot of work• In addition, they can’t be used easily in reports• They also have issues in Sapphire.
Hold on: Saving data in a different module
• Normal attachment fields are fine• It’s possible to save fields from a client module to a different
backend table.• But, it usually requires a fair amount of code to pull this off,
something we want to avoid if possible.• Mo code, mo problems.
Hold on: Heavy fifo or audit use
• The fifo and audit processes allow us to run significant code at save time.
• But existing processes depend on these jobs finishing quickly.• Small tasks are okay.• More involved code should be triggered from a new load or run as a
time job in cron.
Hold on: Large embedded tables
• A large embedded table can be a sign that the data should be pulled out into a separate module.
• Difficult to search/report on
Hold on: Many records
• Original assumption: 15 - 20 attached records.• Actual use case: 5000 attached records.• Other problems.• Result: new project to fix the last one.
Hold on: Hierarchies
• Are often big and slow.• Difficult to avoid, especially in archives.
• Some solutions:• Only load data as needed• Break up hierarchies
Baby got back
• If it isn’t working out, go back and try again.
• Implementation is the shortest part of a product lifecycle.
• It’s worth it to do it right.
0 5 10 15 20
Project
Time spent in:
Concept Implementation Use
Baby, one more time• We should pay more attention to building things that make sense.My Name Is…• Because things that don’t make sense happen all the time.Virtual Insanity• Sometimes because we just let the client do whatever they want.I Want It That Way• Even though we know better.You Oughta Know• Don’t worry, we all do it. And we can all make it better.You Are Not Alone• Here are some things we should be paying attention to:This Is How We Do It• How a product will be fundamentally used,The Way• Other considerations that could affect the design,I Don’t Wanna Miss a Thing• And some things that should make you stop and think.Hold On• Finally, don’t be afraid to revisit something if it’s not working out.Baby Got Back
Semi-charmed life
Less rework
Increase maintainability
Better results for clients
Discussion
• Tell us about something that we should consider when designing a project.
• Tell us about a project design that had to be changed later in the project. Why? Could you have foreseen it?
• Tell us about a time that you changed a design from what the users wanted. Why did you do it, and how did it work out?