recycling legacy applications

32
Recycling Legacy Applications Ing. Bruno Panelli & Lic. Maximilian Tabacman

Upload: ines-gabriel

Post on 05-Dec-2014

279 views

Category:

Technology


2 download

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

Page 1: Recycling Legacy Applications

Recycling Legacy Applications

Ing. Bruno Panelli & Lic. Maximiliano Tabacman

Page 2: Recycling Legacy Applications

The goal

Unbeatable application

READY FOR CHANGE

ALLOW TAILORING

ROBUST

Page 3: Recycling Legacy Applications

The plan

Team building

Architecture design

Development scheduling

User testing

Page 4: Recycling Legacy Applications

The unforeseen

Some developers leave

New developers join

New technologies

emerge

Budget and schedules are

adjusted

Client changes specifications

Page 5: Recycling Legacy Applications

The outcome

Page 6: Recycling Legacy Applications

Some time later…

Stability

Conformance to customer expectations

Optimized performance

Well known UI

Experienced team

Unit testing

Page 7: Recycling Legacy Applications

The new requirement

Deployment on larger

scale

High concurrency

Simplified interfaces

Small business

model changes

Page 8: Recycling Legacy Applications

The opportunity

Research latest technologies

Page 9: Recycling Legacy Applications

The opportunity

Research latest technologies

Rethink interfaces

Page 10: Recycling Legacy Applications

The opportunity

Research latest technologies

Rethink interfaces

Unify products line

Page 11: Recycling Legacy Applications

The opportunity

Research latest technologies

Rethink interfaces

Unify products line

Set foundations for future developments

Page 12: Recycling Legacy Applications

The opportunity

Research latest technologies

Rethink interfaces

Unify products line

Set foundations for future developments

Reify missing key concepts

Page 13: Recycling Legacy Applications

The opportunity

Research latest technologies

Rethink interfaces

Unify products line

Set foundations for future developments

Reify missing key concepts

Reapply good decisions

Page 14: Recycling Legacy Applications

Research latest technologies

Innovation motivates the

team

The opportunity

Page 15: Recycling Legacy Applications

Rethink interfaces

Modern visuals attract

customers

The opportunity

Page 16: Recycling Legacy Applications

Unify product lines

Common code implies mutual improvement

The opportunity

Page 17: Recycling Legacy Applications

Set foundations for future

developments

Clear methodologies

speed up projects

The opportunity

Page 18: Recycling Legacy Applications

Reify missing key concepts

Well designed objects help

transmit knowledge

The opportunity

Page 19: Recycling Legacy Applications

Reapply good decisions

Reused designs build trust

The opportunity

Page 20: Recycling Legacy Applications

The decisionNew web interface

Multiple server

instances

Generalized persistence

Smalltalk SQL queries

Organize systems and

modules

Connect with legacy objects

Page 21: Recycling Legacy Applications

The decision

Seaside

Multiple server

instances

Generalized persistence

Smalltalk SQL queries

Organize systems and

modules

Connect with legacy objects

Page 22: Recycling Legacy Applications

The decision

Seaside

Apache(load

balancer)

Generalized persistence

Smalltalk SQL queries

Organize systems and

modules

Connect with legacy objects

Page 23: Recycling Legacy Applications

The decision

Seaside

Apache(load

balancer)

Generic object

manager

Smalltalk SQL queries

Organize systems and

modules

Connect with legacy objects

Page 24: Recycling Legacy Applications

The decisionSeaside

Apache(load

balancer)

Generic object

manager

Query builder

Organize systems

and modules

Connect with

legacy objects

Page 25: Recycling Legacy Applications

The decisionSeaside

Apache(load

balancer)

Generic object

manager

Query builder

System hierarchy

Connect with

legacy objects

Page 26: Recycling Legacy Applications

Seaside

Apache(load

balancer)

Generic object

manager

Query builder

System hierarchy

Legacy object

hierarchy

The decision

Page 27: Recycling Legacy Applications

The key tool

SEASIDE

Say it in Smalltalk, Do it with jQuery

Independence from HTTP and

HTML

Platform independence

Instant deployment

Page 28: Recycling Legacy Applications

The new look

Page 29: Recycling Legacy Applications

More looks

Page 30: Recycling Legacy Applications

More looks

Page 31: Recycling Legacy Applications

Questions?

Page 32: Recycling Legacy Applications

Thanks!