Usable and Adaptable Business Software
Leon van der Ree
08-10-2008
How the customer explained it
What the customer really needed
General Problem
Companies are unable to find software that really support their activities
Cause
Software development is complex
Business Support Software is designed to fit a generic company
Business Support Software is not designed to adapt to a changing company
Question
Is it possible to
simplify the development of
business software,
without being restricted in possibilities,
to be able to create
custom business software that is
usable and adaptable?
How?
User centered design
Establish requirements
Find development tools that:
Reduce development time
Improve maintainability of implementation
Testing with real users
Frequent iterations
Establish Requirements
Literature Survey
Experience at several companies
T.E. Johnston & Co (Holland) b.v.
General Requirements:
Manage entities
Support work process
Manage overviews
T.E. Johnston & Co
Holland b.v.
Supervising surveys of transshipments of edible oils
SurveyAssignment
Clients
Invoice
Results
Results
SurveyReports
RequestETA
ReceiveETA
T.E. Johnston
Assignment
Agent
Surveyor
Laboratory
Attends on ship
OilSample
Assignment
Problem
Unique business
No standard software available
Custom software prohibitively expensive
Task Analysis
Held interviews
Analysed documents:
Assignments
Reports
Overviews
Worked at T.E. Johnston
Observed activities at the office
Observed transshipment in the harbour
Current Support
Currently different disconnected documents are used to support tasks:
Overviews:
on paper
several different electronic versions
Assignments and Reports:
again different electronic versions
This requires many repetitive tasks
Main Entities
Parcel
Parcel
SurveyAssignment
Client
Parcel
Voyage
SurveyAssignment
Client
SurveyAssignment
Client
Workflow Analysis
Resulted in several detailed overviews
ClientContainsassignment?
YesNo
ExistsNewCheck with Viezeboekif it already existsGot newinformation
YesYesupdate informationNew/Update assignment
Agent
Surveyor
Containshints aboutassignment?
search andcall clients
Add to KrantAdd to Viezeboekhardcopy
incoming(Pura) liste-mail incominge-mail incomingfax(history)
phonecallcallcallCreate Physical Folder
UpdateViezeboekPC whencanceledUpdateKrant
Print assignment
Assignmentidle
Is Agent known?No
Yesfrom clientNo
Yes from experience
TerminalCall Terminal
UpdateKrant
Agent found?NoYes
Couriersend BL
Is assignmentcancelledYesno
ClientContainsassignment?
YesNo
YesNew/Update assignment
Agent
Surveyor
Containshints aboutassignment?
search andcall clients
incoming(Pura) liste-mail incominge-mail incomingfax(history)phonecallcallcall
Couriersend BL
Assignments are not always introduced by the client themselves
Requirements
One System
Manage all their data
Usable
Provide easy access to all their data
Support their workflow
Support their communication
Adaptable
Allow for iterative development
Allow support of changing requirements
Development Tools
Improve maintainability of implementation
Support iterative development
Reduce development time
Model-View-Controller
pattern
Exploit Patterns
Define entities with their relations:
In the database
In the development environment
In the user interface
Techniques that support this:
Object Relational Mapping
Administration Generation
Object Relational Mapping
Maps interface of database to
OO-environment
No more need to maintain both database and model-layer
Supports basic CRUD procedures
Generated Model-code is extendible
Improves security
Data Model
City
Name
Country
Name
Abbreviation
Parcel
Subject
Product
Weight
...
Report
Assignment
Subject
Client
...
Voyage
Vessel
ETA
...
One to Many
Many to One
Defining
# countries
country:
id:
name:
type: varchar
size: 150
required: true
abbreviation:
type: varchar(4)
required: false
# cities
city:
id:
country_id:
name:
type: varchar(150)
required: true
country_id: type: integer required: true index: true foreignTable: country foreignReference: id onDelete: RESTRICT onUpdate: CASCADE
Administration Generation
Create user interface based on
the data model and a configuration
Generated code can be customised and extended
Modified
Available generator modified to:
Improve configurability
Allow to define foreign values
Enhance interactivity
Return dynamic JavaScript Objects instead of static HTML
Open Source
Released as an open source plugin
community did:
testing
provided feedback
improved code
extended functionality
motivated
Generated Result
Defining
generator:
class: sfExtjsPropelAdminGenerator
param:
model_class: City
theme: extjs
fields:
country_id/name:
name: Country
list:
display: [=name, country_id/name]
edit:
newtitle: "New city"
title: "Edit city %%name%%"
display: [name, country_id/name]
Demo
How do these views for cities look?
Reduced Complexity
Maintaining code with the generator is easier
This has already proven itself during development
Demo
Lets see how this all supportsT.E. Johnston
Testing
Before implementation:
Mockups
During implementation:
Live demoing alternatives
After implementation:
In field scenario testing
Results
Concept of voyages got approved
Replaced grouped grid by plain table-overview
Moved invoices from parcels to assignments
Opening assignments by double clicking
Conclusions
Simplifying the development process is possible
Adaptability has already proven itself
Usability looks promising, but has to proof itself after real use
Plugin already used at several companies
Conclusions
Simplifying the development process is possible
Adaptability has already proven itself
Usability looks promising, but has to proof itself after real use
Plugin already used at several companies
TEJ has confidence in final application and wants to continue development
Questions?
Muokkaa otsikon tekstimuotoa napsauttamalla
Muokkaa jsennyksen tekstimuotoa napsauttamalla
Toinen jsennystaso
Kolmas jsennystaso
Neljs jsennystaso
Viides jsennystaso
Kuudes jsennystaso
Seitsems jsennystaso
Kahdeksas jsennystaso
Yhdekss jsennystaso
/42
Muokkaa otsikon tekstimuotoa napsauttamalla
Muokkaa jsennyksen tekstimuotoa napsauttamalla
Toinen jsennystaso
Kolmas jsennystaso
Neljs jsennystaso
Viides jsennystaso
Kuudes jsennystaso
Seitsems jsennystaso
Kahdeksas jsennystaso
Yhdekss jsennystaso
/42
GeneratorGenerated Code# filesLOCWC# files LOCWCRatio LOCRatio WCCity Module118274427576589153,17244,04Voyage Module4151310493449826722,8426,67
???Page ??? (???)05-10-2008, 20:16:00Page /
Top Related