what OVE.com doesgotocon.com/dl/jaoo-brisbane-2010/slides/NealFord_RailsInTheLarge… · XServe...

92

Transcript of what OVE.com doesgotocon.com/dl/jaoo-brisbane-2010/slides/NealFord_RailsInTheLarge… · XServe...

Page 1: what OVE.com doesgotocon.com/dl/jaoo-brisbane-2010/slides/NealFord_RailsInTheLarge… · XServe (Selenium Grid) physical infrastructure BA standalone QA integrated QA UAT (sneak peak)
Page 2: what OVE.com doesgotocon.com/dl/jaoo-brisbane-2010/slides/NealFord_RailsInTheLarge… · XServe (Selenium Grid) physical infrastructure BA standalone QA integrated QA UAT (sneak peak)

ThoughtWorksThoughtWorks

NEAL FORD software architect / meme wrangler

ThoughtWorks

[email protected] 3003 Summit Boulevard, Atlanta, GA 30319

www.nealford.com

www.thoughtworks.com

blog: memeagora.blogspot.com

twitter: neal4d

PAUL GROSS software developer / consultant

ThoughtWorks

[email protected] 200 E. Randolph St, 25th Floor, Chicago, IL 60601-6501

[email protected]

www.pgrs.net

www.thoughtworks.com

Rails in the Large:Building the Biggest (Enterprise)

Rails Application in the World

Page 3: what OVE.com doesgotocon.com/dl/jaoo-brisbane-2010/slides/NealFord_RailsInTheLarge… · XServe (Selenium Grid) physical infrastructure BA standalone QA integrated QA UAT (sneak peak)

what OVE.com does

Page 4: what OVE.com doesgotocon.com/dl/jaoo-brisbane-2010/slides/NealFord_RailsInTheLarge… · XServe (Selenium Grid) physical infrastructure BA standalone QA integrated QA UAT (sneak peak)
Page 5: what OVE.com doesgotocon.com/dl/jaoo-brisbane-2010/slides/NealFord_RailsInTheLarge… · XServe (Selenium Grid) physical infrastructure BA standalone QA integrated QA UAT (sneak peak)
Page 6: what OVE.com doesgotocon.com/dl/jaoo-brisbane-2010/slides/NealFord_RailsInTheLarge… · XServe (Selenium Grid) physical infrastructure BA standalone QA integrated QA UAT (sneak peak)

the pursuit

Go for the one that’ll beat the one that’ll beat the one you last did

Page 7: what OVE.com doesgotocon.com/dl/jaoo-brisbane-2010/slides/NealFord_RailsInTheLarge… · XServe (Selenium Grid) physical infrastructure BA standalone QA integrated QA UAT (sneak peak)

.NET Rails

Page 8: what OVE.com doesgotocon.com/dl/jaoo-brisbane-2010/slides/NealFord_RailsInTheLarge… · XServe (Selenium Grid) physical infrastructure BA standalone QA integrated QA UAT (sneak peak)
Page 9: what OVE.com doesgotocon.com/dl/jaoo-brisbane-2010/slides/NealFord_RailsInTheLarge… · XServe (Selenium Grid) physical infrastructure BA standalone QA integrated QA UAT (sneak peak)

Business AnalystProject manager

DeveloperTech Lead

quick start: october 2006

Page 10: what OVE.com doesgotocon.com/dl/jaoo-brisbane-2010/slides/NealFord_RailsInTheLarge… · XServe (Selenium Grid) physical infrastructure BA standalone QA integrated QA UAT (sneak peak)

Added one pair every 2 weeks

Started with 2 pairs

8 or 9 pairs by July

inception: Jan 17, 2007

Page 11: what OVE.com doesgotocon.com/dl/jaoo-brisbane-2010/slides/NealFord_RailsInTheLarge… · XServe (Selenium Grid) physical infrastructure BA standalone QA integrated QA UAT (sneak peak)

6 quality assurance

11 pairs of developers 8 business analysts

client principleproject manager

now

iteration manager

Page 12: what OVE.com doesgotocon.com/dl/jaoo-brisbane-2010/slides/NealFord_RailsInTheLarge… · XServe (Selenium Grid) physical infrastructure BA standalone QA integrated QA UAT (sneak peak)

spikes are your friends!

technology isn’t as important as responsiveness to business needs

don’t try to convince too early

demonstration over arguments

lessons learned

Page 13: what OVE.com doesgotocon.com/dl/jaoo-brisbane-2010/slides/NealFord_RailsInTheLarge… · XServe (Selenium Grid) physical infrastructure BA standalone QA integrated QA UAT (sneak peak)

infrastructure

Rock is for Rookies: males have a

tendency to lead with Rock on their

opening throw

Page 14: what OVE.com doesgotocon.com/dl/jaoo-brisbane-2010/slides/NealFord_RailsInTheLarge… · XServe (Selenium Grid) physical infrastructure BA standalone QA integrated QA UAT (sneak peak)

pairing workstations

XServe (Selenium Grid)

physical infrastructure

BA

standalone QA

integrated QA

UAT (sneak peak)

Page 15: what OVE.com doesgotocon.com/dl/jaoo-brisbane-2010/slides/NealFord_RailsInTheLarge… · XServe (Selenium Grid) physical infrastructure BA standalone QA integrated QA UAT (sneak peak)

deployment stack

10 web boxes 2 image servers

background server memcache

4 database servers

Page 16: what OVE.com doesgotocon.com/dl/jaoo-brisbane-2010/slides/NealFord_RailsInTheLarge… · XServe (Selenium Grid) physical infrastructure BA standalone QA integrated QA UAT (sneak peak)

technical stats

Page 17: what OVE.com doesgotocon.com/dl/jaoo-brisbane-2010/slides/NealFord_RailsInTheLarge… · XServe (Selenium Grid) physical infrastructure BA standalone QA integrated QA UAT (sneak peak)

environment

Page 18: what OVE.com doesgotocon.com/dl/jaoo-brisbane-2010/slides/NealFord_RailsInTheLarge… · XServe (Selenium Grid) physical infrastructure BA standalone QA integrated QA UAT (sneak peak)
Page 19: what OVE.com doesgotocon.com/dl/jaoo-brisbane-2010/slides/NealFord_RailsInTheLarge… · XServe (Selenium Grid) physical infrastructure BA standalone QA integrated QA UAT (sneak peak)

Mac OS X rocks

scale infrastructure opportunistically...

...but don’t wait too long

have fun

lessons learned

Page 20: what OVE.com doesgotocon.com/dl/jaoo-brisbane-2010/slides/NealFord_RailsInTheLarge… · XServe (Selenium Grid) physical infrastructure BA standalone QA integrated QA UAT (sneak peak)

testing

Scissors on First:play scissors as your

opening move against a more experienced player

Page 21: what OVE.com doesgotocon.com/dl/jaoo-brisbane-2010/slides/NealFord_RailsInTheLarge… · XServe (Selenium Grid) physical infrastructure BA standalone QA integrated QA UAT (sneak peak)

disconnected unit tests

UnitRecord and the evolution of unit tests that don’t hit the database

http://github.com/dan-manges/unit-record

Page 22: what OVE.com doesgotocon.com/dl/jaoo-brisbane-2010/slides/NealFord_RailsInTheLarge… · XServe (Selenium Grid) physical infrastructure BA standalone QA integrated QA UAT (sneak peak)

unit tests

Page 23: what OVE.com doesgotocon.com/dl/jaoo-brisbane-2010/slides/NealFord_RailsInTheLarge… · XServe (Selenium Grid) physical infrastructure BA standalone QA integrated QA UAT (sneak peak)

the rule:

unit tests don’t hit the database

mock everything

Page 24: what OVE.com doesgotocon.com/dl/jaoo-brisbane-2010/slides/NealFord_RailsInTheLarge… · XServe (Selenium Grid) physical infrastructure BA standalone QA integrated QA UAT (sneak peak)

functional tests

Page 25: what OVE.com doesgotocon.com/dl/jaoo-brisbane-2010/slides/NealFord_RailsInTheLarge… · XServe (Selenium Grid) physical infrastructure BA standalone QA integrated QA UAT (sneak peak)

no mocking allowed in functional tests

tests that hit the database are slooooow

Page 26: what OVE.com doesgotocon.com/dl/jaoo-brisbane-2010/slides/NealFord_RailsInTheLarge… · XServe (Selenium Grid) physical infrastructure BA standalone QA integrated QA UAT (sneak peak)

DeepTest

http://github.com/qxjit/deep-test

Page 27: what OVE.com doesgotocon.com/dl/jaoo-brisbane-2010/slides/NealFord_RailsInTheLarge… · XServe (Selenium Grid) physical infrastructure BA standalone QA integrated QA UAT (sneak peak)
Page 28: what OVE.com doesgotocon.com/dl/jaoo-brisbane-2010/slides/NealFord_RailsInTheLarge… · XServe (Selenium Grid) physical infrastructure BA standalone QA integrated QA UAT (sneak peak)

DistributedDeepTest

Page 29: what OVE.com doesgotocon.com/dl/jaoo-brisbane-2010/slides/NealFord_RailsInTheLarge… · XServe (Selenium Grid) physical infrastructure BA standalone QA integrated QA UAT (sneak peak)

prefer factories over fixtures

Page 30: what OVE.com doesgotocon.com/dl/jaoo-brisbane-2010/slides/NealFord_RailsInTheLarge… · XServe (Selenium Grid) physical infrastructure BA standalone QA integrated QA UAT (sneak peak)

Selenium grid

Page 31: what OVE.com doesgotocon.com/dl/jaoo-brisbane-2010/slides/NealFord_RailsInTheLarge… · XServe (Selenium Grid) physical infrastructure BA standalone QA integrated QA UAT (sneak peak)

new instances added as needed

Page 32: what OVE.com doesgotocon.com/dl/jaoo-brisbane-2010/slides/NealFord_RailsInTheLarge… · XServe (Selenium Grid) physical infrastructure BA standalone QA integrated QA UAT (sneak peak)

core trunk build (commit build)

Selenium view builds trunk

Selenium view builds release

core-release, externals, web services, datasets

trunk + search infrastructure

cc.rb instances

Page 33: what OVE.com doesgotocon.com/dl/jaoo-brisbane-2010/slides/NealFord_RailsInTheLarge… · XServe (Selenium Grid) physical infrastructure BA standalone QA integrated QA UAT (sneak peak)

deployment & testing

Page 34: what OVE.com doesgotocon.com/dl/jaoo-brisbane-2010/slides/NealFord_RailsInTheLarge… · XServe (Selenium Grid) physical infrastructure BA standalone QA integrated QA UAT (sneak peak)

write smart tests

fight the battle to keep tests fast

invent stuff if you have to

scale development infrastructure just like production infrastructure

lessons learned

Page 35: what OVE.com doesgotocon.com/dl/jaoo-brisbane-2010/slides/NealFord_RailsInTheLarge… · XServe (Selenium Grid) physical infrastructure BA standalone QA integrated QA UAT (sneak peak)

knowledge transfer

Paper is the least obvious of opening moves.

Page 36: what OVE.com doesgotocon.com/dl/jaoo-brisbane-2010/slides/NealFord_RailsInTheLarge… · XServe (Selenium Grid) physical infrastructure BA standalone QA integrated QA UAT (sneak peak)

project Mingle on the wall

Page 37: what OVE.com doesgotocon.com/dl/jaoo-brisbane-2010/slides/NealFord_RailsInTheLarge… · XServe (Selenium Grid) physical infrastructure BA standalone QA integrated QA UAT (sneak peak)

cc_board

http://github.com/qxjit/cc_board/

Page 38: what OVE.com doesgotocon.com/dl/jaoo-brisbane-2010/slides/NealFord_RailsInTheLarge… · XServe (Selenium Grid) physical infrastructure BA standalone QA integrated QA UAT (sneak peak)

play theme song upon successful checkin

play a song when a build breaks

Page 39: what OVE.com doesgotocon.com/dl/jaoo-brisbane-2010/slides/NealFord_RailsInTheLarge… · XServe (Selenium Grid) physical infrastructure BA standalone QA integrated QA UAT (sneak peak)

jukebox.rb

http://subversion.hammersforge.com/jukebox.rb/trunk/

currently in alpha

Page 40: what OVE.com doesgotocon.com/dl/jaoo-brisbane-2010/slides/NealFord_RailsInTheLarge… · XServe (Selenium Grid) physical infrastructure BA standalone QA integrated QA UAT (sneak peak)

pairing stations

adium

no email

Page 41: what OVE.com doesgotocon.com/dl/jaoo-brisbane-2010/slides/NealFord_RailsInTheLarge… · XServe (Selenium Grid) physical infrastructure BA standalone QA integrated QA UAT (sneak peak)

internal Jabber server chat rooms

devsBAsQAs

shared buddy list

Page 42: what OVE.com doesgotocon.com/dl/jaoo-brisbane-2010/slides/NealFord_RailsInTheLarge… · XServe (Selenium Grid) physical infrastructure BA standalone QA integrated QA UAT (sneak peak)

automatically set pair name

adium

Mingle card (upon commit)

Page 43: what OVE.com doesgotocon.com/dl/jaoo-brisbane-2010/slides/NealFord_RailsInTheLarge… · XServe (Selenium Grid) physical infrastructure BA standalone QA integrated QA UAT (sneak peak)

co-location rocks

software is more about communication than technology

use information radiators

have fun

pairing really rocks

lessons learned

Page 44: what OVE.com doesgotocon.com/dl/jaoo-brisbane-2010/slides/NealFord_RailsInTheLarge… · XServe (Selenium Grid) physical infrastructure BA standalone QA integrated QA UAT (sneak peak)

automate everything

When playing with someone who is not

experienced at the RPS, look out for double runs or, in other words, the

same throw twice.

Page 45: what OVE.com doesgotocon.com/dl/jaoo-brisbane-2010/slides/NealFord_RailsInTheLarge… · XServe (Selenium Grid) physical infrastructure BA standalone QA integrated QA UAT (sneak peak)

1-click deploy to any environment

using cc.rb as easy deployment tool

Page 46: what OVE.com doesgotocon.com/dl/jaoo-brisbane-2010/slides/NealFord_RailsInTheLarge… · XServe (Selenium Grid) physical infrastructure BA standalone QA integrated QA UAT (sneak peak)

verification (language keys)

run all unit tests

run all functional tests

commit

rake commit

http://github.com/pgr0ss/rake_commit_tasks

Page 47: what OVE.com doesgotocon.com/dl/jaoo-brisbane-2010/slides/NealFord_RailsInTheLarge… · XServe (Selenium Grid) physical infrastructure BA standalone QA integrated QA UAT (sneak peak)

canonical pairing station maintenance

cap pairing_stations

Page 48: what OVE.com doesgotocon.com/dl/jaoo-brisbane-2010/slides/NealFord_RailsInTheLarge… · XServe (Selenium Grid) physical infrastructure BA standalone QA integrated QA UAT (sneak peak)

radmindhttp://rsug.itd.umich.edu/software/radmind/

Page 49: what OVE.com doesgotocon.com/dl/jaoo-brisbane-2010/slides/NealFord_RailsInTheLarge… · XServe (Selenium Grid) physical infrastructure BA standalone QA integrated QA UAT (sneak peak)

strict rules for advanced language features

Tell your opponent what you are going to throw and then actually throw what you said.

Page 50: what OVE.com doesgotocon.com/dl/jaoo-brisbane-2010/slides/NealFord_RailsInTheLarge… · XServe (Selenium Grid) physical infrastructure BA standalone QA integrated QA UAT (sneak peak)

monkey patches all live in extensions folder

Page 51: what OVE.com doesgotocon.com/dl/jaoo-brisbane-2010/slides/NealFord_RailsInTheLarge… · XServe (Selenium Grid) physical infrastructure BA standalone QA integrated QA UAT (sneak peak)

modularize extensionsextend (or include)into real class

Page 52: what OVE.com doesgotocon.com/dl/jaoo-brisbane-2010/slides/NealFord_RailsInTheLarge… · XServe (Selenium Grid) physical infrastructure BA standalone QA integrated QA UAT (sneak peak)

ancestors

Page 53: what OVE.com doesgotocon.com/dl/jaoo-brisbane-2010/slides/NealFord_RailsInTheLarge… · XServe (Selenium Grid) physical infrastructure BA standalone QA integrated QA UAT (sneak peak)

where did you come from again?

Page 54: what OVE.com doesgotocon.com/dl/jaoo-brisbane-2010/slides/NealFord_RailsInTheLarge… · XServe (Selenium Grid) physical infrastructure BA standalone QA integrated QA UAT (sneak peak)

test the extensions

duh!

Page 55: what OVE.com doesgotocon.com/dl/jaoo-brisbane-2010/slides/NealFord_RailsInTheLarge… · XServe (Selenium Grid) physical infrastructure BA standalone QA integrated QA UAT (sneak peak)

include a version test to break upon upgrade

Page 56: what OVE.com doesgotocon.com/dl/jaoo-brisbane-2010/slides/NealFord_RailsInTheLarge… · XServe (Selenium Grid) physical infrastructure BA standalone QA integrated QA UAT (sneak peak)

use meta-names somewhere

ack is your friend

Page 57: what OVE.com doesgotocon.com/dl/jaoo-brisbane-2010/slides/NealFord_RailsInTheLarge… · XServe (Selenium Grid) physical infrastructure BA standalone QA integrated QA UAT (sneak peak)

background processing

Try playing the throw that would have lost to your opponents last throw

Page 58: what OVE.com doesgotocon.com/dl/jaoo-brisbane-2010/slides/NealFord_RailsInTheLarge… · XServe (Selenium Grid) physical infrastructure BA standalone QA integrated QA UAT (sneak peak)

run at a certain timeCRON-like behavior

progress barsimage downloading

Asynchronous behavior

countsupdating cached values

continually run

3 kinds

Page 59: what OVE.com doesgotocon.com/dl/jaoo-brisbane-2010/slides/NealFord_RailsInTheLarge… · XServe (Selenium Grid) physical infrastructure BA standalone QA integrated QA UAT (sneak peak)

evolution of async messaging

Page 60: what OVE.com doesgotocon.com/dl/jaoo-brisbane-2010/slides/NealFord_RailsInTheLarge… · XServe (Selenium Grid) physical infrastructure BA standalone QA integrated QA UAT (sneak peak)

do work inline

gets slower over time

traffic goes up

Page 61: what OVE.com doesgotocon.com/dl/jaoo-brisbane-2010/slides/NealFord_RailsInTheLarge… · XServe (Selenium Grid) physical infrastructure BA standalone QA integrated QA UAT (sneak peak)

use backgroundrb for simple message queue

backed by database

Page 62: what OVE.com doesgotocon.com/dl/jaoo-brisbane-2010/slides/NealFord_RailsInTheLarge… · XServe (Selenium Grid) physical infrastructure BA standalone QA integrated QA UAT (sneak peak)

switch to a real messaging queue

(Starling)

Page 63: what OVE.com doesgotocon.com/dl/jaoo-brisbane-2010/slides/NealFord_RailsInTheLarge… · XServe (Selenium Grid) physical infrastructure BA standalone QA integrated QA UAT (sneak peak)

YAGNI

emergent design around async messaging

Page 64: what OVE.com doesgotocon.com/dl/jaoo-brisbane-2010/slides/NealFord_RailsInTheLarge… · XServe (Selenium Grid) physical infrastructure BA standalone QA integrated QA UAT (sneak peak)

don’t use databases as message queues (for too long anyway)

avoid anticipatory design

gradually add complexity

DBA’s can sometimes get grumpy

lessons learned

Page 65: what OVE.com doesgotocon.com/dl/jaoo-brisbane-2010/slides/NealFord_RailsInTheLarge… · XServe (Selenium Grid) physical infrastructure BA standalone QA integrated QA UAT (sneak peak)

external dependencies

When playing against someone who asks you to remind them about the rules, take the opportunity to subtly "suggest a throw" as you explain to

them by physically showing them the throw you want them to play.

Page 66: what OVE.com doesgotocon.com/dl/jaoo-brisbane-2010/slides/NealFord_RailsInTheLarge… · XServe (Selenium Grid) physical infrastructure BA standalone QA integrated QA UAT (sneak peak)

make well defined boundaries

Page 67: what OVE.com doesgotocon.com/dl/jaoo-brisbane-2010/slides/NealFord_RailsInTheLarge… · XServe (Selenium Grid) physical infrastructure BA standalone QA integrated QA UAT (sneak peak)

mock and stub boundaries

Page 68: what OVE.com doesgotocon.com/dl/jaoo-brisbane-2010/slides/NealFord_RailsInTheLarge… · XServe (Selenium Grid) physical infrastructure BA standalone QA integrated QA UAT (sneak peak)

external builds to test service changes

we often catch bugs & downtime in other services

Page 69: what OVE.com doesgotocon.com/dl/jaoo-brisbane-2010/slides/NealFord_RailsInTheLarge… · XServe (Selenium Grid) physical infrastructure BA standalone QA integrated QA UAT (sneak peak)

tests to validate WSDLs haven’t changed

Page 70: what OVE.com doesgotocon.com/dl/jaoo-brisbane-2010/slides/NealFord_RailsInTheLarge… · XServe (Selenium Grid) physical infrastructure BA standalone QA integrated QA UAT (sneak peak)

tests to call services

check that responses haven’t changed

Page 71: what OVE.com doesgotocon.com/dl/jaoo-brisbane-2010/slides/NealFord_RailsInTheLarge… · XServe (Selenium Grid) physical infrastructure BA standalone QA integrated QA UAT (sneak peak)

tests to check against content & html editors

non-printable characters

duplicate ids

Page 72: what OVE.com doesgotocon.com/dl/jaoo-brisbane-2010/slides/NealFord_RailsInTheLarge… · XServe (Selenium Grid) physical infrastructure BA standalone QA integrated QA UAT (sneak peak)

performance & optimization

When all else fails, go with paper: Statistically, in competition play, it has been observed that scissors is thrown the least often.

Page 73: what OVE.com doesgotocon.com/dl/jaoo-brisbane-2010/slides/NealFord_RailsInTheLarge… · XServe (Selenium Grid) physical infrastructure BA standalone QA integrated QA UAT (sneak peak)

not that many page views...

...really complex pages!

Page 74: what OVE.com doesgotocon.com/dl/jaoo-brisbane-2010/slides/NealFord_RailsInTheLarge… · XServe (Selenium Grid) physical infrastructure BA standalone QA integrated QA UAT (sneak peak)

custom hand-tuned SQL

Page 75: what OVE.com doesgotocon.com/dl/jaoo-brisbane-2010/slides/NealFord_RailsInTheLarge… · XServe (Selenium Grid) physical infrastructure BA standalone QA integrated QA UAT (sneak peak)

Memcache sessions & many database lookups

Page 76: what OVE.com doesgotocon.com/dl/jaoo-brisbane-2010/slides/NealFord_RailsInTheLarge… · XServe (Selenium Grid) physical infrastructure BA standalone QA integrated QA UAT (sneak peak)

MySQL replication

Page 77: what OVE.com doesgotocon.com/dl/jaoo-brisbane-2010/slides/NealFord_RailsInTheLarge… · XServe (Selenium Grid) physical infrastructure BA standalone QA integrated QA UAT (sneak peak)

use separate boxes for ETL schemas

write priority

Page 78: what OVE.com doesgotocon.com/dl/jaoo-brisbane-2010/slides/NealFord_RailsInTheLarge… · XServe (Selenium Grid) physical infrastructure BA standalone QA integrated QA UAT (sneak peak)

challenges

For tournament play, learn the Great Eight Gambits.

Page 79: what OVE.com doesgotocon.com/dl/jaoo-brisbane-2010/slides/NealFord_RailsInTheLarge… · XServe (Selenium Grid) physical infrastructure BA standalone QA integrated QA UAT (sneak peak)

scaling is hard

no matter the technology

Page 80: what OVE.com doesgotocon.com/dl/jaoo-brisbane-2010/slides/NealFord_RailsInTheLarge… · XServe (Selenium Grid) physical infrastructure BA standalone QA integrated QA UAT (sneak peak)

rails can scale!

Page 81: what OVE.com doesgotocon.com/dl/jaoo-brisbane-2010/slides/NealFord_RailsInTheLarge… · XServe (Selenium Grid) physical infrastructure BA standalone QA integrated QA UAT (sneak peak)

daily web trends

Page 82: what OVE.com doesgotocon.com/dl/jaoo-brisbane-2010/slides/NealFord_RailsInTheLarge… · XServe (Selenium Grid) physical infrastructure BA standalone QA integrated QA UAT (sneak peak)

monthly web trends

Page 83: what OVE.com doesgotocon.com/dl/jaoo-brisbane-2010/slides/NealFord_RailsInTheLarge… · XServe (Selenium Grid) physical infrastructure BA standalone QA integrated QA UAT (sneak peak)

upgrading is hard

1 pair => 6 weeks to upgrade from 1.2.3 to 2.2

Page 84: what OVE.com doesgotocon.com/dl/jaoo-brisbane-2010/slides/NealFord_RailsInTheLarge… · XServe (Selenium Grid) physical infrastructure BA standalone QA integrated QA UAT (sneak peak)

back port fixes & improvements

rails

other plugins

Page 85: what OVE.com doesgotocon.com/dl/jaoo-brisbane-2010/slides/NealFord_RailsInTheLarge… · XServe (Selenium Grid) physical infrastructure BA standalone QA integrated QA UAT (sneak peak)

we did not replicate a freakin’ type system!

# of is_a?, kind_of? instance_of? / Total LoC

32/32379 => code (0.09%)60/103421 => tests (0.06%)

Page 86: what OVE.com doesgotocon.com/dl/jaoo-brisbane-2010/slides/NealFord_RailsInTheLarge… · XServe (Selenium Grid) physical infrastructure BA standalone QA integrated QA UAT (sneak peak)

why all the rochambeau stuff?

Page 87: what OVE.com doesgotocon.com/dl/jaoo-brisbane-2010/slides/NealFord_RailsInTheLarge… · XServe (Selenium Grid) physical infrastructure BA standalone QA integrated QA UAT (sneak peak)

view builds are slow =>

separate cc.rb build =>

1 pair assigned as view masters

view builds are fragile =>

Page 88: what OVE.com doesgotocon.com/dl/jaoo-brisbane-2010/slides/NealFord_RailsInTheLarge… · XServe (Selenium Grid) physical infrastructure BA standalone QA integrated QA UAT (sneak peak)

worst ...job ...ever

Page 89: what OVE.com doesgotocon.com/dl/jaoo-brisbane-2010/slides/NealFord_RailsInTheLarge… · XServe (Selenium Grid) physical infrastructure BA standalone QA integrated QA UAT (sneak peak)

today’s view master assigned by yesterday’s...

...or play RPS

Page 90: what OVE.com doesgotocon.com/dl/jaoo-brisbane-2010/slides/NealFord_RailsInTheLarge… · XServe (Selenium Grid) physical infrastructure BA standalone QA integrated QA UAT (sneak peak)

http://www.worldrps.com/

Page 91: what OVE.com doesgotocon.com/dl/jaoo-brisbane-2010/slides/NealFord_RailsInTheLarge… · XServe (Selenium Grid) physical infrastructure BA standalone QA integrated QA UAT (sneak peak)

would we do it again?

hell yeah!

Page 92: what OVE.com doesgotocon.com/dl/jaoo-brisbane-2010/slides/NealFord_RailsInTheLarge… · XServe (Selenium Grid) physical infrastructure BA standalone QA integrated QA UAT (sneak peak)

ThoughtWorks

?’sThis work is licensed under the Creative Commons

Attribution-Share Alike 3.0 License.

http://creativecommons.org/licenses/by-sa/3.0/us/

NEAL FORD software architect / meme wrangler

ThoughtWorks

[email protected] 3003 Summit Boulevard, Atlanta, GA 30319

www.nealford.com

www.thoughtworks.com

blog: memeagora.blogspot.com

twitter: neal4d

PAUL GROSS software developer / consultant

ThoughtWorks

[email protected] 200 E. Randolph St, 25th Floor, Chicago, IL 60601-6501

[email protected]

www.pgrs.net

www.thoughtworks.com