Another Copernican Revolution: maintenance first, projects second (European Drupal Days 2015)

26
© Ibuildings 2014/2015 - All rights reserved #DrupalDaysEU (We Need) Another Copernican Revolution – or – Why Maintenance Doesn't Suck but Big Projects Do

Transcript of Another Copernican Revolution: maintenance first, projects second (European Drupal Days 2015)

© Ibuildings 2014/2015 - All rights reserved

#DrupalDaysEU

(We Need) Another Copernican Revolution

– or –

Why Maintenance Doesn't Suck

but Big Projects Do

#DrupalDaysEU

© Ibuildings 2014/2015 - All rights reserved

Gold Sponsors

#DrupalDaysEU

© Ibuildings 2014/2015 - All rights reserved

Media Sponsors

Silver Sponsors

© Ibuildings 2014/2015 - All rights reserved

Speaker Info

Christopher Torgalson

Drupal Developer

[email protected]

@bedlamhotel

Chromatic!

© Ibuildings 2014/2015 - All rights reserved

The Copernican Revolution

(An Allegory In Pictures)

● The Copernican Revolution is notable because it completely inverted how people thought about celestial motion

#DrupalDaysEU

© Ibuildings 2014/2015 - All rights reserved

PTOLEMY: GEOCENTRIC!

http://b

it.ly/1

F0B

Iw1

● The geocentric, Ptolemaic model made it di�cult to account for the motions of celestial bodies.

● But it had the huge advantage of being incredibly obvious

● The sun clearly moves around the earth

● But...

#DrupalDaysEU

© Ibuildings 2014/2015 - All rights reserved

COPERNICUS: NO!

#DrupalDaysEU

© Ibuildings 2014/2015 - All rights reserved

HELIOCENTRIC!(And everybody lived happily ever after)

http://b

it.ly/1

MJP

N0

b

● The heliocentric model wasn't as blindingly obvious

● But it made it made a lot of things (such as the fact that planets appear to move backwards for part of their orbits) much easier to explain

© Ibuildings 2014/2015 - All rights reserved

Sometimes, our thinking about making websites is a little

PTOLEMAIC

● Some of the things we do are inside-out, or backwards, or old-fashioned

● I'd like to see a Copernican revolution in our industry

● Not every project or organization su+ers severely from these problems, but the organizations and sites I've worked on have almost all had a degree of “Ptolemaic” thinking

● But .rst, some background...

#DrupalDaysEU

© Ibuildings 2014/2015 - All rights reserved

All websites have problems.

htt

ps

://w

ww

.fli

ckr.

com

/ph

oto

s/w

ord

oll

ho

us

es/2

77

531

113

4

● This is true whether we build or inherit the websites

#DrupalDaysEU

© Ibuildings 2014/2015 - All rights reserved

These problems tend to get worse over time

htt

ps

://w

ww

.fli

ckr.

com

/ph

oto

s/u

sa

chic

ag

o/4

7203

85

881

● Code—and sometimes even UIs—become harder to work with

● CI deteriorates● Quality, in general, degrades

#DrupalDaysEU

© Ibuildings 2014/2015 - All rights reserved

We refer to these problems collectively as...

(TL;DR: EVERYTHING WE SCREWED UP AND DIDN'T FIX)

● All projects have some● All projects are at risk for more● There are multiple causes some of

which are systemic● I don't have a solution to the

problem, but I have a diagnosis of one of the systemic ways it can come about

© Ibuildings 2014/2015 - All rights reserved

When it comes to building websites, what do we

PRIORITIZE?

● Very often, it's big projects at the expense of maintenance

#DrupalDaysEU

© Ibuildings 2014/2015 - All rights reserved

BIG PROJECTS!

https://w

ww

.flic

kr.com

/ph

oto

s/z

oria

h/5

8887421

59/

● We prioritize big projects● They tend to monopolize resources

and devour large budgets● But, they involve full teams on

both the client and agency sides● And, they accomplish a lot● But...

#DrupalDaysEU

© Ibuildings 2014/2015 - All rights reserved

NOT MAINTENANCE!

https://w

ww

.flic

kr.com

/ph

oto

s/m

etr

olib

rary

arc

hiv

e/1

122

5561005

● Maintenance is often neglected● It usually does not involve either

the full client or agency team● It often neglects process● Timelines may be short/budgets

small● Sometimes decisions are left to

engineers and overall strategy gets neglected

● Sometimes decisions are left to clients, and best practices are neglected

● Often little is accomplished

© Ibuildings 2014/2015 - All rights reserved

There's Maintenance and there's

“MAINTENANCE”

● At least now we do maintenance in the .rst place

● But even when we do, the results are variable

#DrupalDaysEU

© Ibuildings 2014/2015 - All rights reserved

BAD MAINTENANCE

• Problems in custom code go unfixed

• New problems regularly introduced

• No consideration of coming upgrades

• Code quality deteriorates

• Ad-hoc solutions proliferate

• Compliance with CI decreases

• TECHNICAL DEBT INCREASES

https://w

ww

.flic

kr.com

/ph

oto

s/c

mdrc

ord

/941464

1873

● Bad maintenance comes in several varieties:

● No maintenance● The “Apathy” model

● New features only● The “Magpie” model● Security upgrades only

● The “Better Than Nothing” model

● Core and module upgrades only● The “Status Quo” model● Less bad, but what about all

that custom code we wrote?

#DrupalDaysEU

© Ibuildings 2014/2015 - All rights reserved

GOOD MAINTENANCE

• Fixes bugs

• Adds / improves documentation

• Eliminates ad-hoc solutions

• Uncouples (too) tightly-coupled systems

• Favours stable APIs over custom code

• Reduces (unnecessary) complexity

• TECHNICAL DEBT DECREASES

• But is it worth the EXPENSE?

https://w

ww

.flic

kr.com

/ph

oto

s/o

rko

med

ix/7

2970

75780

● Prevents new technical debt by involving client and agency teams:● best practices respected● Strategy considered

● It is planned, speci.ed, scheduled, and it should have speci.c, measurable goals

© Ibuildings 2014/2015 - All rights reserved

We need to take care of our codebases because they

WON'T GO AWAY

● In fact, they are living longer and longer

● We are heading for a time when individual components can live inde.nitely

#DrupalDaysEU

© Ibuildings 2014/2015 - All rights reserved

Upgrades are becoming less terrible

• Semantic versioning

• Symfony

• Twig

• SASS

• Front end

• Headless

• Migrate API

● The whole Drupal ecosystem is heading in a direction that will make upgrades easier

● interoperability● looser coupling between the

Drupal backend and frontend● Semantic versioning promises to

make this easier too (at least within versions)

● More custom code will survive upgrades

© Ibuildings 2014/2015 - All rights reserved

So what's this

REVOLUTION?

● All I propose is that we focus on sites' lifetimes rather than their birthdays

● Maintenance happens far more often and for far longer than the initial project

#DrupalDaysEU

© Ibuildings 2014/2015 - All rights reserved

SHRINK BIG PROJECTS

https://w

ww

.flic

kr.com

/ph

oto

s/s

anctu

sg

uy6

5/4

00145232

● Simply put, don't throw everything that's ever going into the site at the outset

● Plan to roll out core functionality, followed by staged release of features

#DrupalDaysEU

© Ibuildings 2014/2015 - All rights reserved

PRIORITIZE MAINTENANCE

https://w

ww

.flic

kr.com

/ph

oto

s/r

oysta

n/3

763647

394

● Would it help if I called it Iterative development?

● Use agency teams like sta+● Look to SAAS as a model● Deprioritize large projects● Allocate more resources to

maintenance● Where possible decompose large

projects into many smaller projects● Sometimes we must build large

projects in one go—but make sure that we must

© Ibuildings 2014/2015 - All rights reserved

Educate

CLIENTS

● Get the word out to whoever it is you build sites for

● Code is the vehicle used to accomplish their communications objectives

● Speed, convenience, missing features

© Ibuildings 2014/2015 - All rights reserved

Educate

COLLEAGUES

● Poor, hastily-developed, incomplete, or broken code:● Makes new development/coding

take longer

© Ibuildings 2014/2015 - All rights reserved

Ask

QUESTIONS

● In fact, they are living longer and longer