Sunday, October 03, 2010

Remembering a dark day ...

It must have been late June 2000, I had been in my first post university job for only a couple of weeks. The 2 main developers at the company were PhD students and desperately want to get back to their research but the current project had been eating more and more of their time until it was all they did.

In the late June 2000 timeframe we are talking about they finally declared the system good enough to launch, so it did. They immediately left the company to complete their research and I remained to maintain the system. Me, a newbie to "professional" development, new to Java and new to the rather large and complex code base they left behind.

For a couple of days things were fine. I tinkered with a few bugs and prepared the next release. That next fatal release when all of a sudden everything went wrong. Old bugs, from before I even started at the company, resurfaced. Nothing made sense and there was no one around that could help.

By about 3am I had managed to patch enough that the system was at least up if not fully functional. Over the next few days I patched bug after bug. Then one of the original developers came back, having put a decent amount of worked into his PhD. He looked over what had happened, the list of bugs that had seemingly returned from the dead and immediately realised what had happen.

You see there was no source control in place. So, to keep life simple, they had split the development into 2. While they both had a complete source to compile against, they would each only change one side of it.

This had worked through most of the development, until the day they left. When they put their source into a single folder for me, for the first time since starting. One developer put his source code in first, then the other put his in. Both his up to date correct half that he had been working on and his old incorrect copy of the other developer's half. Thus all of the bugs fixed in the previous weeks by developer 1 returned.

----

I recount this story because it has been in my mind of late. I have been putting a lot of effort into planning regression tests for a change I am implementing which first brought this story to mind. Also I was chatting to a developer the other day who was bemoaning bugs returning from the grave. Coincidentally I was also reminiscing with someone about horrendous problems we had on a project that did use source control, the variant of which turned out to be a costly mistake.

From my story and those of others in this area I take away 2 lessons that I try never to forget. Firstly, you must have source control, and an associated plan of how you will use it. Secondly, you cannot assume that simply having and using source control is the answer. While it may prevent the total disaster I presented above, I have seen many projects have source management issues even with source control in place. Be sure to review, on a regular basis, how you are using source control and whether it actually offers you the safety net you might assume it does.

14 comments:

xjd7410@gmail.com said...

20150930 junda
Abercrombie & Fitch Factory Outlet
Abercrombie T-Shirts
canada goose outlet online
coach factory outlet online
Wholesale Authentic Designer Handbags
Oakley Vault Outlet Store Online
Louis Vuitton Handbags Discount Off
nike trainers
michael kors outlet
coach factory outlet
cheap toms shoes
Michael Kors Outlet Online Mall
Coach Factory Outlet Online Sale
michael kors uk
Abercrombie And Fitch Kids Online
louis vuitton
true religion jeans
cheap jordan shoes
Louis Vuitton Handbags Official Site
Mont Blanc Legend And Mountain Pen Discount
cheap uggs
tory burch outlet
ugg boots
coach outlet
Michael Kors Handbags Huge Off
Hollister uk
michael kors handbags
louis vuitton outlet
uggs australia
Discount Ray Ban Polarized Sunglasses

xumeiqing said...

151204meiqing
gucci shoes
oakley sunglasses
p90x workouts
coach outlet
uggs for sale
coach outlet store online
oakley sunglasses
ugg australia
uggs outlet
louis vuitton handbags
giuseppe zanotti sneakers
montblanc
michael kors outlet
oakley sunglasses
pandora jewelry
louis vuitton
canada goose jackets
canada goose outlet
north face jackets
hollister uk
christian louboutin outlet
ugg boots
ugg boots
uggs outlet
uggs outlet
ugg outlet
louis vuitton handbags
oakley sunglasses wholesale
ugg australia
ugg boots outlet
concords 11
michael kors handbags
jordan retro
michael kors outlet
louis vuitton purses
christian louboutin outlet
christian louboutin outlet
oakley sunglasses
michael kors handbags
louis vuitton backpack

Unknown said...

jordan 4
nike outlet store online
michael kors outlet clearance
instyler ionic styler
true religion jeans
polo ralph lauren outlet
ugg outlet
fitflops sale clearance
coach outlet online
michael kors outlet
ray-ban sunglasses
mulberry handbags
prada sunglasses
nfl jersey wholesale
herve leger outlet
canada goose outlet store
ugg boots on sale
ray ban sunglasses
toms outlet
louis vuitton bags cheap
lebron shoes
oakley sunglasses
ugg outlet online
pandora outlet
cheap mlb jerseys
ugg boots uk
michael kors handbags clearance
fitflops sale
cartier watches for sale
louis vuitton handbags
coach outlet store
gucci outlet
lululemon outlet online
tiffany and co
rolex watches
michael kors outlet online
swarovski crystal
0815jianxiang

Unknown said...

Nike Magista II TF
MBT Kisumu 2
Timberland 6 Inch Boots Shoes
Nike ELASTICO Finale III Street TF
Nike Roshe Run BR

Unknown said...

Adidas Originals ZX 9000
Adidas Originals NMD R1
Air Jordan Horizon Women
Adidas Ace 16 FG
Adidas Ace 16 Purecontrol
MBT Fora Gtx Damen
Nike Air Max 95
Air Jordan Flight 89

Unknown said...

Adidas Originals ZX 8000
Adidas Messi 16 AG
Adidas Originals NMD C1 Chaussures
Nike HypervenomX IC
Adidas Yeezy Boost 350 Women
Air Jordan 3.5 Homme
Nike Air Max 90 Homme
Adidas Climacool Fresh Bounce
Timberland Classic Oxford Herren

Unknown said...

Nike Elastico Pro III IC
Air Jordan 4
Air Jordan Westbrook Herren
Nike Free Flyknit NSW,Nike Free Flyknit NSW Wolf Grey
Nike Air Force 1 Homme's Chaussures
MBT Flame Chaussures
Nike Roshe Two Flyknit Shoes
MBT Kimondo Men

chenmeinv0 said...

louboutin outlet
cheap rolex watches
canada goose outlet
burberry scarf
spurs jerseys
ugg boots outlet
michael kors outlet clearance
louis vuitton handbags
uggs sale
gucci outlet online
chenyingying20161130

Unknown said...

louis vuitton canada
true religion outlet
adidas outlet
louis vuitton outlet
coach outlet
michael kors outlet
louis vuitton outlet
coach outlet
ugg australia boots
christian louboutin
2016128

Unknown said...

Adidas Stan Smith
MBT Fora Gtx Women
Timberland Chukka Boots
Nike Magista Obra IC
MBT Lami Damen
Adidas Messi 16.3 IC
Timberland 6 Inch Boots Herren
Nike ELASTICO Finale III Street TF
Adidas NMD C1
Nike Air Max 2016

Unknown said...

true religion jeans
cheap oakley sunglasses
coach outlet
christian louboutin shoes
pandora jewelry
coach outlet store
oakley sunglasses
coach outlet
longchamp bags
timberland boots
chenshanshan20170318

caiyan said...

coach factory outlet online
coach outlet online
polo ralph lauren outlet
coach outlet online
coach factory outlet
christian louboutin outlet
rolex replica watches
birkenstock outlet
jordan femmes pas cher
fitflops sale
0405shizhong

Unknown said...

michael kors handbags
canada goose outlet
cheap oakley sunglasses
polo outlet
coach factory outlet
valentino shoes
michael kors outlet
michael kors outlet clearance
oakley sunglasses wholesale
cheap jerseys

stine said...

t1k54i9n37 k3e96l4v86 f8f42c5o85 d4v38i0d51 l0b67v6n31 p2k08v7y93