what ove.com doesgotocon.com/dl/jaoo-brisbane-2010/slides/nealford_railsinthelarge… · xserve...
TRANSCRIPT
![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)](https://reader034.vdocuments.site/reader034/viewer/2022050403/5f80b5fb2fe67b060672d666/html5/thumbnails/1.jpg)
![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)](https://reader034.vdocuments.site/reader034/viewer/2022050403/5f80b5fb2fe67b060672d666/html5/thumbnails/2.jpg)
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
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)](https://reader034.vdocuments.site/reader034/viewer/2022050403/5f80b5fb2fe67b060672d666/html5/thumbnails/3.jpg)
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)](https://reader034.vdocuments.site/reader034/viewer/2022050403/5f80b5fb2fe67b060672d666/html5/thumbnails/4.jpg)
![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)](https://reader034.vdocuments.site/reader034/viewer/2022050403/5f80b5fb2fe67b060672d666/html5/thumbnails/5.jpg)
![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)](https://reader034.vdocuments.site/reader034/viewer/2022050403/5f80b5fb2fe67b060672d666/html5/thumbnails/6.jpg)
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)](https://reader034.vdocuments.site/reader034/viewer/2022050403/5f80b5fb2fe67b060672d666/html5/thumbnails/7.jpg)
.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)](https://reader034.vdocuments.site/reader034/viewer/2022050403/5f80b5fb2fe67b060672d666/html5/thumbnails/8.jpg)
![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)](https://reader034.vdocuments.site/reader034/viewer/2022050403/5f80b5fb2fe67b060672d666/html5/thumbnails/9.jpg)
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)](https://reader034.vdocuments.site/reader034/viewer/2022050403/5f80b5fb2fe67b060672d666/html5/thumbnails/10.jpg)
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)](https://reader034.vdocuments.site/reader034/viewer/2022050403/5f80b5fb2fe67b060672d666/html5/thumbnails/11.jpg)
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)](https://reader034.vdocuments.site/reader034/viewer/2022050403/5f80b5fb2fe67b060672d666/html5/thumbnails/12.jpg)
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)](https://reader034.vdocuments.site/reader034/viewer/2022050403/5f80b5fb2fe67b060672d666/html5/thumbnails/13.jpg)
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)](https://reader034.vdocuments.site/reader034/viewer/2022050403/5f80b5fb2fe67b060672d666/html5/thumbnails/14.jpg)
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)](https://reader034.vdocuments.site/reader034/viewer/2022050403/5f80b5fb2fe67b060672d666/html5/thumbnails/15.jpg)
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)](https://reader034.vdocuments.site/reader034/viewer/2022050403/5f80b5fb2fe67b060672d666/html5/thumbnails/16.jpg)
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)](https://reader034.vdocuments.site/reader034/viewer/2022050403/5f80b5fb2fe67b060672d666/html5/thumbnails/17.jpg)
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)](https://reader034.vdocuments.site/reader034/viewer/2022050403/5f80b5fb2fe67b060672d666/html5/thumbnails/18.jpg)
![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)](https://reader034.vdocuments.site/reader034/viewer/2022050403/5f80b5fb2fe67b060672d666/html5/thumbnails/19.jpg)
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)](https://reader034.vdocuments.site/reader034/viewer/2022050403/5f80b5fb2fe67b060672d666/html5/thumbnails/20.jpg)
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)](https://reader034.vdocuments.site/reader034/viewer/2022050403/5f80b5fb2fe67b060672d666/html5/thumbnails/21.jpg)
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)](https://reader034.vdocuments.site/reader034/viewer/2022050403/5f80b5fb2fe67b060672d666/html5/thumbnails/22.jpg)
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)](https://reader034.vdocuments.site/reader034/viewer/2022050403/5f80b5fb2fe67b060672d666/html5/thumbnails/23.jpg)
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)](https://reader034.vdocuments.site/reader034/viewer/2022050403/5f80b5fb2fe67b060672d666/html5/thumbnails/24.jpg)
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)](https://reader034.vdocuments.site/reader034/viewer/2022050403/5f80b5fb2fe67b060672d666/html5/thumbnails/25.jpg)
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)](https://reader034.vdocuments.site/reader034/viewer/2022050403/5f80b5fb2fe67b060672d666/html5/thumbnails/26.jpg)
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)](https://reader034.vdocuments.site/reader034/viewer/2022050403/5f80b5fb2fe67b060672d666/html5/thumbnails/27.jpg)
![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)](https://reader034.vdocuments.site/reader034/viewer/2022050403/5f80b5fb2fe67b060672d666/html5/thumbnails/28.jpg)
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)](https://reader034.vdocuments.site/reader034/viewer/2022050403/5f80b5fb2fe67b060672d666/html5/thumbnails/29.jpg)
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)](https://reader034.vdocuments.site/reader034/viewer/2022050403/5f80b5fb2fe67b060672d666/html5/thumbnails/30.jpg)
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)](https://reader034.vdocuments.site/reader034/viewer/2022050403/5f80b5fb2fe67b060672d666/html5/thumbnails/31.jpg)
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)](https://reader034.vdocuments.site/reader034/viewer/2022050403/5f80b5fb2fe67b060672d666/html5/thumbnails/32.jpg)
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)](https://reader034.vdocuments.site/reader034/viewer/2022050403/5f80b5fb2fe67b060672d666/html5/thumbnails/33.jpg)
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)](https://reader034.vdocuments.site/reader034/viewer/2022050403/5f80b5fb2fe67b060672d666/html5/thumbnails/34.jpg)
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)](https://reader034.vdocuments.site/reader034/viewer/2022050403/5f80b5fb2fe67b060672d666/html5/thumbnails/35.jpg)
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)](https://reader034.vdocuments.site/reader034/viewer/2022050403/5f80b5fb2fe67b060672d666/html5/thumbnails/36.jpg)
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)](https://reader034.vdocuments.site/reader034/viewer/2022050403/5f80b5fb2fe67b060672d666/html5/thumbnails/37.jpg)
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)](https://reader034.vdocuments.site/reader034/viewer/2022050403/5f80b5fb2fe67b060672d666/html5/thumbnails/38.jpg)
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)](https://reader034.vdocuments.site/reader034/viewer/2022050403/5f80b5fb2fe67b060672d666/html5/thumbnails/39.jpg)
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)](https://reader034.vdocuments.site/reader034/viewer/2022050403/5f80b5fb2fe67b060672d666/html5/thumbnails/40.jpg)
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)](https://reader034.vdocuments.site/reader034/viewer/2022050403/5f80b5fb2fe67b060672d666/html5/thumbnails/41.jpg)
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)](https://reader034.vdocuments.site/reader034/viewer/2022050403/5f80b5fb2fe67b060672d666/html5/thumbnails/42.jpg)
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)](https://reader034.vdocuments.site/reader034/viewer/2022050403/5f80b5fb2fe67b060672d666/html5/thumbnails/43.jpg)
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)](https://reader034.vdocuments.site/reader034/viewer/2022050403/5f80b5fb2fe67b060672d666/html5/thumbnails/44.jpg)
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)](https://reader034.vdocuments.site/reader034/viewer/2022050403/5f80b5fb2fe67b060672d666/html5/thumbnails/45.jpg)
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)](https://reader034.vdocuments.site/reader034/viewer/2022050403/5f80b5fb2fe67b060672d666/html5/thumbnails/46.jpg)
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)](https://reader034.vdocuments.site/reader034/viewer/2022050403/5f80b5fb2fe67b060672d666/html5/thumbnails/47.jpg)
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)](https://reader034.vdocuments.site/reader034/viewer/2022050403/5f80b5fb2fe67b060672d666/html5/thumbnails/48.jpg)
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)](https://reader034.vdocuments.site/reader034/viewer/2022050403/5f80b5fb2fe67b060672d666/html5/thumbnails/49.jpg)
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)](https://reader034.vdocuments.site/reader034/viewer/2022050403/5f80b5fb2fe67b060672d666/html5/thumbnails/50.jpg)
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)](https://reader034.vdocuments.site/reader034/viewer/2022050403/5f80b5fb2fe67b060672d666/html5/thumbnails/51.jpg)
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)](https://reader034.vdocuments.site/reader034/viewer/2022050403/5f80b5fb2fe67b060672d666/html5/thumbnails/52.jpg)
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)](https://reader034.vdocuments.site/reader034/viewer/2022050403/5f80b5fb2fe67b060672d666/html5/thumbnails/53.jpg)
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)](https://reader034.vdocuments.site/reader034/viewer/2022050403/5f80b5fb2fe67b060672d666/html5/thumbnails/54.jpg)
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)](https://reader034.vdocuments.site/reader034/viewer/2022050403/5f80b5fb2fe67b060672d666/html5/thumbnails/55.jpg)
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)](https://reader034.vdocuments.site/reader034/viewer/2022050403/5f80b5fb2fe67b060672d666/html5/thumbnails/56.jpg)
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)](https://reader034.vdocuments.site/reader034/viewer/2022050403/5f80b5fb2fe67b060672d666/html5/thumbnails/57.jpg)
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)](https://reader034.vdocuments.site/reader034/viewer/2022050403/5f80b5fb2fe67b060672d666/html5/thumbnails/58.jpg)
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)](https://reader034.vdocuments.site/reader034/viewer/2022050403/5f80b5fb2fe67b060672d666/html5/thumbnails/59.jpg)
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)](https://reader034.vdocuments.site/reader034/viewer/2022050403/5f80b5fb2fe67b060672d666/html5/thumbnails/60.jpg)
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)](https://reader034.vdocuments.site/reader034/viewer/2022050403/5f80b5fb2fe67b060672d666/html5/thumbnails/61.jpg)
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)](https://reader034.vdocuments.site/reader034/viewer/2022050403/5f80b5fb2fe67b060672d666/html5/thumbnails/62.jpg)
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)](https://reader034.vdocuments.site/reader034/viewer/2022050403/5f80b5fb2fe67b060672d666/html5/thumbnails/63.jpg)
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)](https://reader034.vdocuments.site/reader034/viewer/2022050403/5f80b5fb2fe67b060672d666/html5/thumbnails/64.jpg)
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)](https://reader034.vdocuments.site/reader034/viewer/2022050403/5f80b5fb2fe67b060672d666/html5/thumbnails/65.jpg)
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)](https://reader034.vdocuments.site/reader034/viewer/2022050403/5f80b5fb2fe67b060672d666/html5/thumbnails/66.jpg)
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)](https://reader034.vdocuments.site/reader034/viewer/2022050403/5f80b5fb2fe67b060672d666/html5/thumbnails/67.jpg)
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)](https://reader034.vdocuments.site/reader034/viewer/2022050403/5f80b5fb2fe67b060672d666/html5/thumbnails/68.jpg)
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)](https://reader034.vdocuments.site/reader034/viewer/2022050403/5f80b5fb2fe67b060672d666/html5/thumbnails/69.jpg)
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)](https://reader034.vdocuments.site/reader034/viewer/2022050403/5f80b5fb2fe67b060672d666/html5/thumbnails/70.jpg)
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)](https://reader034.vdocuments.site/reader034/viewer/2022050403/5f80b5fb2fe67b060672d666/html5/thumbnails/71.jpg)
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)](https://reader034.vdocuments.site/reader034/viewer/2022050403/5f80b5fb2fe67b060672d666/html5/thumbnails/72.jpg)
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)](https://reader034.vdocuments.site/reader034/viewer/2022050403/5f80b5fb2fe67b060672d666/html5/thumbnails/73.jpg)
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)](https://reader034.vdocuments.site/reader034/viewer/2022050403/5f80b5fb2fe67b060672d666/html5/thumbnails/74.jpg)
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)](https://reader034.vdocuments.site/reader034/viewer/2022050403/5f80b5fb2fe67b060672d666/html5/thumbnails/75.jpg)
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)](https://reader034.vdocuments.site/reader034/viewer/2022050403/5f80b5fb2fe67b060672d666/html5/thumbnails/76.jpg)
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)](https://reader034.vdocuments.site/reader034/viewer/2022050403/5f80b5fb2fe67b060672d666/html5/thumbnails/77.jpg)
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)](https://reader034.vdocuments.site/reader034/viewer/2022050403/5f80b5fb2fe67b060672d666/html5/thumbnails/78.jpg)
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)](https://reader034.vdocuments.site/reader034/viewer/2022050403/5f80b5fb2fe67b060672d666/html5/thumbnails/79.jpg)
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)](https://reader034.vdocuments.site/reader034/viewer/2022050403/5f80b5fb2fe67b060672d666/html5/thumbnails/80.jpg)
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)](https://reader034.vdocuments.site/reader034/viewer/2022050403/5f80b5fb2fe67b060672d666/html5/thumbnails/81.jpg)
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)](https://reader034.vdocuments.site/reader034/viewer/2022050403/5f80b5fb2fe67b060672d666/html5/thumbnails/82.jpg)
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)](https://reader034.vdocuments.site/reader034/viewer/2022050403/5f80b5fb2fe67b060672d666/html5/thumbnails/83.jpg)
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)](https://reader034.vdocuments.site/reader034/viewer/2022050403/5f80b5fb2fe67b060672d666/html5/thumbnails/84.jpg)
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)](https://reader034.vdocuments.site/reader034/viewer/2022050403/5f80b5fb2fe67b060672d666/html5/thumbnails/85.jpg)
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)](https://reader034.vdocuments.site/reader034/viewer/2022050403/5f80b5fb2fe67b060672d666/html5/thumbnails/86.jpg)
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)](https://reader034.vdocuments.site/reader034/viewer/2022050403/5f80b5fb2fe67b060672d666/html5/thumbnails/87.jpg)
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)](https://reader034.vdocuments.site/reader034/viewer/2022050403/5f80b5fb2fe67b060672d666/html5/thumbnails/88.jpg)
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)](https://reader034.vdocuments.site/reader034/viewer/2022050403/5f80b5fb2fe67b060672d666/html5/thumbnails/89.jpg)
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)](https://reader034.vdocuments.site/reader034/viewer/2022050403/5f80b5fb2fe67b060672d666/html5/thumbnails/90.jpg)
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)](https://reader034.vdocuments.site/reader034/viewer/2022050403/5f80b5fb2fe67b060672d666/html5/thumbnails/91.jpg)
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)](https://reader034.vdocuments.site/reader034/viewer/2022050403/5f80b5fb2fe67b060672d666/html5/thumbnails/92.jpg)
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
www.pgrs.net
www.thoughtworks.com