agile seaside

115
Agile Software Development ESUG 2010, Barcelona, Spain

Upload: esug

Post on 20-May-2015

820 views

Category:

Technology


1 download

DESCRIPTION

Lukas Renggli: Agile Seaside. ESUG 2010, Barcelona, Spain

TRANSCRIPT

Page 1: Agile Seaside

Agile Software Development

ESUG 2010, Barcelona, Spain

Page 2: Agile Seaside
Page 3: Agile Seaside

Seaside

Page 4: Agile Seaside

Web Applications

Page 5: Agile Seaside

MIT License

Page 6: Agile Seaside

© Copyright 2007 Instantiations, Inc. VA Smalltalk, VA Assist, WidgetKit, and WindowBuilder are trademarks of Instantiations. All other trademarks mentioned are the property of their respective owners.

www.instantiations.com 1-800-808-3737Build Quality Software

Development ToolsA rich set of development tools includes a debugger, browsers, inspectors, application builders, and a performance monitor.Packager (Dev Tool) creates a runtime image including only necessary classes resulting in a smaller footprint.AsyncCallout, an extension of the platform function API, allows developers to make a platform function call in a separate virtual machine thread.Reports feature enables the creation of hardcopy and/or screen reports on any object that can be used in the VA Smalltalk environment, including parts provided in the Database and Communications features.

Custom Controls Popular WidgetKit technologyColumnar List boxes, table widgets and hierarchical listsCustomizable image buttons, toggles and value setsVertical, horizontal and circular gaugesData aware spin buttonsWindows 95/98/NT/2000 Notebook widgetSplitbar widget

!

!

!

!

!

!

!

Communications A set of parts supports communication with other computers using MQ series transactions.A set of parts supports communication with other computers using TCP/IP protocols.Socket Communications Interface is an API providing full support for TCP/IP protocols, as well as secure communications using SSL. The API uses OpenSSL, an implementation of SSL/TLS.

Database High-performance, robust support for DB2Support for Oracle through v10Support for any database which supports the ODBC interface.

Server SmalltalkServer Smalltalk (SST) provides a client/server framework flexible enough to accommodate various distributed architectures.Server Workbench is a cross-development envi-ronment used in developing distributed process-ing, web hosting, and other server applications. Target deployment environments include all VA Smalltalk platforms and z/OS using IBM’s VisualAge Smalltalk Server for OS/390 and z/OS.

Web ServicesA self-contained, modular framework, capable of creating, deploying and hosting web services.

External Interface SupportXML Support enables XML–Smalltalk object mapping, includes a server interface via XML request handlers and reading of remote resources via TCP sockets using HTTP requestsOLE Support enables an application to use OLE clients and custom control services.Domino Connection allows an application to retrieve and work with Domino documents as well as access Notes mail system.

!

!

!

100% VisualAge compatibleVA Smalltalk is a modern software development environment that is 100% VisualAge compatible. VA Smalltalk enables developers to quickly construct applications that are portable, highly scalable, simple to maintain, and fit easily into existing infrastructures.

Other Software RequirementsDatabase

DB2 Universal Database (Windows, AIX, Linux, Solaris)ORACLE 8i (8.1.6), 9i or 10

DominoLotus Notes (Windows only) [Not supported on Linux, AIX, Solaris]

VA Smalltalk’s HTML DocumentationTCP/IP protocolMicrosoft Internet Explorer 5.0 or later (Windows)Netscape 4.51 or later (Win, Linux, Solaris, AIX)Firefox 2.0 or later (Win, Linux)Opera 9.02 or later (Windows)

!

!

!

!

!

!

!

!

!

EMSRV 7.1a Library ManagerNetware 4.2 or 5.1OS/2 Warp 4.0 + FP11OS/2 Warp Server for e-BusinessWindows ME - EMADMIN onlyWindows 2000, 2000 Server, Advanced ServerWindows XP ProfessionalWindows Server 2003Windows Vista Business, Enterprise, or UltimateSun Solaris Version 8 or 9HP-UX Version 11.0 or 11iAIX Version 5.1, 5.2 or 5.3Red Hat Linux 9 and Advance Server 2.1SuSE Enterprise 10

!

!

!

!

!

!

!

!

!

!

!

!

!

Supported ConfigurationsOperating System Hardware PlatformWindows ME, 2000, XP, Server 2003, Vista . . . . . . . . . . . . . . . 300MHz PC, 256MB RAM, 400MB diskRedHat Linux 9, Enterprise AS 2.1, SuSE Linux . . . . . . . . . . . Pentium 300MHz PC, 128MB RAM, 400MB diskSun Solaris 8, 9 . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . SPARC workstation or server, 64MB RAM, 200MB diskAIX 5.1, 5.2, 5.3 . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . RISC System/6000, POWERStation . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . or POWERServer, 128MB RAM, 400MB disk

For detailed system requirements visit www.instantiations.com/VAST

Download a risk-free trial copy:www.instantiations.com/VAST/download

Award-winning VA Assist™ technologyUniversal Drag/DropPowerful change propagation toolsCustomizable ToolbarsColor Code Syntax (Windows only)Dynamic & Batch-Oriented Spell CheckingAuto-Spell CorrectionVersion RenamingClass History/FindVersion TemplatesString SearchApplication Filtering

!

!

!

!

!

!

!

!

!

!

!

!

Enhanced DebuggerEnhanced InspectorsCode SynchronizationLocate ApplicationsLocate DependentsRevision NotesRelease All LatestAbbreviation ExpansionPopup Sender/ImplementorsBrowse Changes Including Required MapsEmbedded mode for seamless integration with the Composition Editor

!

!

!

!

!

!

!

!

!

!

!

Ergonomic Enhancements

Page 7: Agile Seaside
Page 8: Agile Seaside
Page 9: Agile Seaside
Page 10: Agile Seaside
Page 11: Agile Seaside
Page 12: Agile Seaside

Control Flow

Page 13: Agile Seaside

Development tools

Page 14: Agile Seaside

Built in Security

Sou

rce:

sto

ck.x

chn

g, A

fon

so L

ima

Page 15: Agile Seaside
Page 16: Agile Seaside
Page 17: Agile Seaside

Agile Software Development

Page 18: Agile Seaside

Agile Manifesto

http://agilemanifesto.org/

Individuals and Interactions

Working Software

Customer Collaboration

Responding to Change

Page 19: Agile Seaside

Agenda

http://agilemanifesto.org/

Individuals and Interactions

Working Software

Customer Collaboration

Responding to Change

Page 20: Agile Seaside

Individuals and Interactionsover processes and tools

ilker

, sxc

.hu

Page 21: Agile Seaside
Page 22: Agile Seaside

Photo: NASA, http://visibleearth.nasa.gov/

Page 23: Agile Seaside

Sprints &Camps

Page 24: Agile Seaside

Seaside SprintAmsterdam 2008

Pho

to: A

dria

an v

an O

s

Page 25: Agile Seaside

Pho

to: A

dria

an v

an O

s

Page 26: Agile Seaside

Pho

to: A

dria

an v

an O

s

Page 27: Agile Seaside

MotivatedIndividuals

Page 28: Agile Seaside

Pho

to: A

dria

an v

an O

s

Page 29: Agile Seaside

Presentations & Demonstrations

Pho

tos:

Ad

riaan

van

Os

Page 30: Agile Seaside

Blogs & Tweets

Page 31: Agile Seaside

Books & Articles

Stéphane Ducasse, Lukas Renggli, David C. Shaffer, Rick Zaccone

with Michael Davies

Dynamic Web

Developmentwith

S E P T E M B E R | O C T O B E R 2 0 0 7

18 | The Economicsof Architecture

86 | Open SourceIntegration

10 | Voice ofEvidence

w w w. c o m p u t e r. o r g / s o f t w a r e

Dynamically Typed Languages

BUILDING THE COMMUNITY OF LEADING SOFTWARE PRACTITIONERS

Page 32: Agile Seaside

Individuals and interactions over processes and tools

and we have mandatory processes and tools to help how those individuals interact.

http://halfarsedagilemanifesto.org/

Page 33: Agile Seaside

Mailing-Lists

Page 37: Agile Seaside
Page 38: Agile Seaside
Page 39: Agile Seaside

+1

Page 40: Agile Seaside

Working Softwareover comprehensive documentation

ilker

, sxc

.hu

Page 41: Agile Seaside

IterativeDevelopment

Page 42: Agile Seaside

Release Cycle for Seaside 3.0

Page 43: Agile Seaside

Release Cycle for Seaside 3.0

Page 44: Agile Seaside
Page 45: Agile Seaside
Page 46: Agile Seaside
Page 47: Agile Seaside
Page 48: Agile Seaside

We are always using

the latest .

Page 49: Agile Seaside

Continuous attention to technical excellence

and good design.

SUnit Code Critics

Page 50: Agile Seaside

Working software is the principal measure of progress.

Page 51: Agile Seaside

ContinuousIntegration

Page 52: Agile Seaside

Hudson

Page 53: Agile Seaside

Hudson

Page 54: Agile Seaside

Yanni Chiu

Lukas Renggli

Philippe Marshall

Page 55: Agile Seaside
Page 56: Agile Seaside
Page 57: Agile Seaside
Page 58: Agile Seaside
Page 59: Agile Seaside
Page 60: Agile Seaside
Page 61: Agile Seaside
Page 62: Agile Seaside
Page 63: Agile Seaside

Test Results (SUnit)

Page 64: Agile Seaside

Emma Coverage (SUnit)

Page 65: Agile Seaside

CheckStyle (SmallLint)

Page 66: Agile Seaside

Working softwareover comprehensive documentation

as long as that software is comprehensively documented.

http://halfarsedagilemanifesto.org/

Page 67: Agile Seaside

0%

25%

50%

75%

100%

Seaside 2.8 Seaside 3.0

23%

17%

38%

44%

Commented Classes Commented Methods

Page 68: Agile Seaside

0

750

1,500

2,250

3,000

Seaside 2.8 Seaside 3.0

2231

788

391

208

Commented Classes Commented Methods

Page 69: Agile Seaside
Page 70: Agile Seaside
Page 71: Agile Seaside
Page 72: Agile Seaside
Page 73: Agile Seaside
Page 74: Agile Seaside
Page 75: Agile Seaside

Online€ 0

Page 76: Agile Seaside

Online€ 0

PDF€ 14

Page 77: Agile Seaside

Online€ 0

PDF€ 14

Print€ 28

Page 78: Agile Seaside

WorkingSoftware

Page 79: Agile Seaside

Customer Collaborationover contract negotiation

ilker

, sxc

.hu

Page 80: Agile Seaside

Who is ourcustomer?

Page 81: Agile Seaside
Page 82: Agile Seaside

Customers

Ourselves (primarily)

Consulting clients

Mailing-list participants

Platform vendors

Page 83: Agile Seaside

If I miss something,I add it

Page 84: Agile Seaside

If I break something,I fix it

Page 85: Agile Seaside

What about you?

Page 86: Agile Seaside

Ask in the mailing-list

Create a issue in the bug tracker

Choose one of the following:

Wait for somebody to fix it

Submit a fix, patch, change

‘Earn’ commit rights

Page 87: Agile Seaside

Customer Collaboration

Page 88: Agile Seaside

Responding to Changeover following a plan

Page 89: Agile Seaside

Team

Page 90: Agile Seaside

Avi, Julian 2002

Avi, Julian, Andrew 2003

Avi, Andrew 2004

Avi, Andrew, Michel, Lukas 2005

Lukas, Michel, Philippe, Avi 2006

Lukas, Philippe, Michel 2007

Lukas, Philippe 2008

Julian, Philippe, Lukas 2009

Julian, Philippe, Nick, Lukas 2010

Page 91: Agile Seaside

Portability

Page 92: Agile Seaside

Squeak(Development Platform)

2002

Page 93: Agile Seaside

Cincom Smalltalk

2003

Page 94: Agile Seaside

Dolphin Smalltalk

2006

Page 95: Agile Seaside

GemStone Smalltalk

2007

Page 96: Agile Seaside

GNU Smalltalk

2007

Page 97: Agile Seaside

Pharo Smalltalk(Development Platform)

2008

Page 98: Agile Seaside

VA Smalltalk

© Copyright 2007 Instantiations, Inc. VA Smalltalk, VA Assist, WidgetKit, and WindowBuilder are trademarks of Instantiations. All other trademarks mentioned are the property of their respective owners.

www.instantiations.com 1-800-808-3737Build Quality Software

Development ToolsA rich set of development tools includes a debugger, browsers, inspectors, application builders, and a performance monitor.Packager (Dev Tool) creates a runtime image including only necessary classes resulting in a smaller footprint.AsyncCallout, an extension of the platform function API, allows developers to make a platform function call in a separate virtual machine thread.Reports feature enables the creation of hardcopy and/or screen reports on any object that can be used in the VA Smalltalk environment, including parts provided in the Database and Communications features.

Custom Controls Popular WidgetKit technologyColumnar List boxes, table widgets and hierarchical listsCustomizable image buttons, toggles and value setsVertical, horizontal and circular gaugesData aware spin buttonsWindows 95/98/NT/2000 Notebook widgetSplitbar widget

!

!

!

!

!

!

!

Communications A set of parts supports communication with other computers using MQ series transactions.A set of parts supports communication with other computers using TCP/IP protocols.Socket Communications Interface is an API providing full support for TCP/IP protocols, as well as secure communications using SSL. The API uses OpenSSL, an implementation of SSL/TLS.

Database High-performance, robust support for DB2Support for Oracle through v10Support for any database which supports the ODBC interface.

Server SmalltalkServer Smalltalk (SST) provides a client/server framework flexible enough to accommodate various distributed architectures.Server Workbench is a cross-development envi-ronment used in developing distributed process-ing, web hosting, and other server applications. Target deployment environments include all VA Smalltalk platforms and z/OS using IBM’s VisualAge Smalltalk Server for OS/390 and z/OS.

Web ServicesA self-contained, modular framework, capable of creating, deploying and hosting web services.

External Interface SupportXML Support enables XML–Smalltalk object mapping, includes a server interface via XML request handlers and reading of remote resources via TCP sockets using HTTP requestsOLE Support enables an application to use OLE clients and custom control services.Domino Connection allows an application to retrieve and work with Domino documents as well as access Notes mail system.

!

!

!

100% VisualAge compatibleVA Smalltalk is a modern software development environment that is 100% VisualAge compatible. VA Smalltalk enables developers to quickly construct applications that are portable, highly scalable, simple to maintain, and fit easily into existing infrastructures.

Other Software RequirementsDatabase

DB2 Universal Database (Windows, AIX, Linux, Solaris)ORACLE 8i (8.1.6), 9i or 10

DominoLotus Notes (Windows only) [Not supported on Linux, AIX, Solaris]

VA Smalltalk’s HTML DocumentationTCP/IP protocolMicrosoft Internet Explorer 5.0 or later (Windows)Netscape 4.51 or later (Win, Linux, Solaris, AIX)Firefox 2.0 or later (Win, Linux)Opera 9.02 or later (Windows)

!

!

!

!

!

!

!

!

!

EMSRV 7.1a Library ManagerNetware 4.2 or 5.1OS/2 Warp 4.0 + FP11OS/2 Warp Server for e-BusinessWindows ME - EMADMIN onlyWindows 2000, 2000 Server, Advanced ServerWindows XP ProfessionalWindows Server 2003Windows Vista Business, Enterprise, or UltimateSun Solaris Version 8 or 9HP-UX Version 11.0 or 11iAIX Version 5.1, 5.2 or 5.3Red Hat Linux 9 and Advance Server 2.1SuSE Enterprise 10

!

!

!

!

!

!

!

!

!

!

!

!

!

Supported ConfigurationsOperating System Hardware PlatformWindows ME, 2000, XP, Server 2003, Vista . . . . . . . . . . . . . . . 300MHz PC, 256MB RAM, 400MB diskRedHat Linux 9, Enterprise AS 2.1, SuSE Linux . . . . . . . . . . . Pentium 300MHz PC, 128MB RAM, 400MB diskSun Solaris 8, 9 . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . SPARC workstation or server, 64MB RAM, 200MB diskAIX 5.1, 5.2, 5.3 . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . RISC System/6000, POWERStation . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . or POWERServer, 128MB RAM, 400MB disk

For detailed system requirements visit www.instantiations.com/VAST

Download a risk-free trial copy:www.instantiations.com/VAST/download

Award-winning VA Assist™ technologyUniversal Drag/DropPowerful change propagation toolsCustomizable ToolbarsColor Code Syntax (Windows only)Dynamic & Batch-Oriented Spell CheckingAuto-Spell CorrectionVersion RenamingClass History/FindVersion TemplatesString SearchApplication Filtering

!

!

!

!

!

!

!

!

!

!

!

!

Enhanced DebuggerEnhanced InspectorsCode SynchronizationLocate ApplicationsLocate DependentsRevision NotesRelease All LatestAbbreviation ExpansionPopup Sender/ImplementorsBrowse Changes Including Required MapsEmbedded mode for seamless integration with the Composition Editor

!

!

!

!

!

!

!

!

!

!

!

Ergonomic Enhancements

2008

Page 99: Agile Seaside

Javascript

Page 100: Agile Seaside

Seaside Async 2004

Prototype, script.aculo.us 2005

Comet 2006

jQuery, jQueryUI (+ WidgetBox) 2008

(Dojo Toolkit, Raphael, ...) 2010

... and many other libraries

Page 101: Agile Seaside

Logo

Page 102: Agile Seaside

2002

Page 103: Agile Seaside

2002

2005

Page 104: Agile Seaside

2002

2005

2007

Page 105: Agile Seaside

Website

Page 106: Agile Seaside

2002

Page 107: Agile Seaside

2003

Page 108: Agile Seaside

2005

Page 109: Agile Seaside

2007

Page 110: Agile Seaside

Respondingto Change

Page 111: Agile Seaside

Where dowe go?

Page 112: Agile Seaside

Seaside 3.0

Better design

Better code

Better performance

Better support

Better portability

Better experience

Page 113: Agile Seaside

Seaside 3.1

Bug-fixes (#isolate:, #lightbox:)

Improving configurability

Encoding improvements

Getting more developers involved

Shorter release cycle

Page 114: Agile Seaside

Seaside BoF

Lunch Break 12:45In this Room