recycling legacy applications
DESCRIPTION
In software development, time helps us build powerful and robust products. However, as the years goes by, the team changes along with ideas and programming styles; tight schedules lead to unclean codes; inexperienced hands create limited and ‘viral’ solutions, which then spread through the code and are hard to improve; finally, design and UX trends evolve. Nowadays, when the importance of web applications keeps growing, it is an advantage to be aware of the possibility to use Seaside to keep our Smalltalk applications updated with the new technologies, such as HTML5, CSS3, Javascript and its libraries. My dissertation will be focussed on the new UI we created for our oldest and biggest product, called Mercap Unitrade, and how we made the most of that project improving its architecture with new techniques. As a result, we were able to update it, take it to the edge and build the foundations for the multiple developments to come, without messing with the model layer and while building a huge amount of reusable components, that are shared with the other products developed by Mercap.TRANSCRIPT
Recycling Legacy Applications
Ing. Bruno Panelli & Lic. Maximiliano Tabacman
The goal
Unbeatable application
READY FOR CHANGE
ALLOW TAILORING
ROBUST
The plan
Team building
Architecture design
Development scheduling
User testing
The unforeseen
Some developers leave
New developers join
New technologies
emerge
Budget and schedules are
adjusted
Client changes specifications
The outcome
Some time later…
Stability
Conformance to customer expectations
Optimized performance
Well known UI
Experienced team
Unit testing
The new requirement
Deployment on larger
scale
High concurrency
Simplified interfaces
Small business
model changes
The opportunity
Research latest technologies
The opportunity
Research latest technologies
Rethink interfaces
The opportunity
Research latest technologies
Rethink interfaces
Unify products line
The opportunity
Research latest technologies
Rethink interfaces
Unify products line
Set foundations for future developments
The opportunity
Research latest technologies
Rethink interfaces
Unify products line
Set foundations for future developments
Reify missing key concepts
The opportunity
Research latest technologies
Rethink interfaces
Unify products line
Set foundations for future developments
Reify missing key concepts
Reapply good decisions
Research latest technologies
Innovation motivates the
team
The opportunity
Rethink interfaces
Modern visuals attract
customers
The opportunity
Unify product lines
Common code implies mutual improvement
The opportunity
Set foundations for future
developments
Clear methodologies
speed up projects
The opportunity
Reify missing key concepts
Well designed objects help
transmit knowledge
The opportunity
Reapply good decisions
Reused designs build trust
The opportunity
The decisionNew web interface
Multiple server
instances
Generalized persistence
Smalltalk SQL queries
Organize systems and
modules
Connect with legacy objects
The decision
Seaside
Multiple server
instances
Generalized persistence
Smalltalk SQL queries
Organize systems and
modules
Connect with legacy objects
The decision
Seaside
Apache(load
balancer)
Generalized persistence
Smalltalk SQL queries
Organize systems and
modules
Connect with legacy objects
The decision
Seaside
Apache(load
balancer)
Generic object
manager
Smalltalk SQL queries
Organize systems and
modules
Connect with legacy objects
The decisionSeaside
Apache(load
balancer)
Generic object
manager
Query builder
Organize systems
and modules
Connect with
legacy objects
The decisionSeaside
Apache(load
balancer)
Generic object
manager
Query builder
System hierarchy
Connect with
legacy objects
Seaside
Apache(load
balancer)
Generic object
manager
Query builder
System hierarchy
Legacy object
hierarchy
The decision
The key tool
SEASIDE
Say it in Smalltalk, Do it with jQuery
Independence from HTTP and
HTML
Platform independence
Instant deployment
The new look
More looks
More looks
Questions?
Thanks!