Any organization that designs
a system will inevitably
produce a design whose
structure is a copy of the
organization's communication
structure.
Text of paper: http://bit.ly/RrHWvp
Slide 33
Slide 33 text
If you have four groups
working on a compiler, you’ll
get a four-pass compiler.
class Stuff < ActiveRecord::Base
include Rails.app.url_helpers
def as_json
{url: stuff_url(id)}
end
end
Slide 58
Slide 58 text
class Stuff < ActiveRecord::Base
include Rails.app.url_helpers
def as_json
{url: stuff_url(id)}
end
end
Slide 59
Slide 59 text
class Stuff < ActiveRecord::Base
include Rails.app.url_helpers
def as_json
{url: stuff_url(id)}
end
end
Slide 60
Slide 60 text
class Stuff < ActiveRecord::Base
end
class StuffPresenter < Presenter
def as_json
{url: stuff_url(id)}
end
end
Slide 61
Slide 61 text
class Stuff < ActiveRecord::Base
include Rails.app.url_helpers
def as_json
{url: stuff_url(id)}
end
end
Slide 62
Slide 62 text
class StuffController < AppContro
def show
render json:
@stuff.as_json.merge({
url: stuff_url(@stuff)
})
end
end
Slide 63
Slide 63 text
Skinny controllers, fat models
Slide 64
Slide 64 text
Skinny controllers, fat models
Skinny controllers, models that
only have code related to their
main purpose: persistance.
Move other stuff out to non-
ActiveRecord classes.
Slide 65
Slide 65 text
Decoding Smelly Code
Slide 66
Slide 66 text
Decoding Smelly Code
1. Hidden silo
Slide 67
Slide 67 text
Decoding Smelly Code
1. Hidden silo
2. Developers ready for more nuance
Slide 68
Slide 68 text
Decoding Smelly Code
1. Hidden silo
2. Developers ready for more nuance
2.1. Developers actually listen to me o.0
Slide 69
Slide 69 text
Every piece of bad
code is trying to
tell you something.
2
Slide 70
Slide 70 text
Fixing Problems
Slide 71
Slide 71 text
No content
Slide 72
Slide 72 text
http://www.flickr.com/photos/juniorvelo/4490511204
Slide 73
Slide 73 text
Fixing Problems
• Pair programming
Slide 74
Slide 74 text
Create opportunities for informal communication
Slide 75
Slide 75 text
Use High-Bandwidth
Communication
http://www.flickr.com/photos/beglendc/434086133
Slide 76
Slide 76 text
http://www.flickr.com/photos/malias/73169727
Slide 77
Slide 77 text
Fixing Problems
• Pair programming
• Create opportunities for informal
communication
• Use high-bandwidth communication
• Teach/learn/practice
Slide 78
Slide 78 text
No content
Slide 79
Slide 79 text
Hack your team
3
Slide 80
Slide 80 text
• Think about team
dynamics
• Use code smells to
illuminate problems
• Fix them!
http://www.flickr.com/photos/uggboy/4066337480
Slide 81
Slide 81 text
• Think about team
dynamics
• Use code smells to
illuminate problems
• Fix them!
http://www.flickr.com/photos/uggboy/4066337480