I gave a talk at the Enterprise Lamp group on why our business chose Ruby on Rails and then what practices we used to build our business by 300% in less than a year and still growing. I plan on putting together a book on some of the methods we use to give a more detailed description but hopefully these slides help!
Beginners Guide to TikTok for Search - Rachel Pearson - We are Tilt __ Bright...
Rails In Action & How To Build An Efficient Empire
1. Rails In Action & How To Build
An Efficient Empire
By: Will Bridges
2. Who Is Will Bridges?
CEO / Cogwise Software
Open Source Web Developer & Entrepreneur For
Over 10 Years
3. Why Rails?
• Ruby has a very simple syntax - easy to read, learn
and understand with very little knowledge of Ruby
• Fully object oriented
• Dynamically typed
• Encourages good programming practices like MVC
and high test coverage
• Convention over configuration
• Good community support
4. I Love Ruby Because
some_integer = 50_000_000
class Integer
def to_half
self / 2
end
end
some_integer.to_half
25000000 will be the result
5. And More...
class Integer
def method_missing(sym, *args, &block)
puts "What kind of method name is #{sym}? Integer #{self} hasn’t heard of this."
end
end
50.ninja_hiku_kick
The result of that last call will be:
What kind of method name is ninja_hiku_kick? Integer 50 hasn’t heard
of this.
6.
7. Who Is On Rails?
• Basecamp - One of the oldest rails apps. Over 1
million users.
• YellowPages.com - Around 25 million views a
month.
• Hulu.com - 29 million views a month.
• Twitter.com - 140 million views a month.
• Bumpersticker - A Facebook App created by
LinkedIn’s engineering team gets over 1 BILLION
page views a month.
8. Why Not Choose
Rails?
• Where are all the Ruby Programmers? It’s TIBOE
Rating is 10
• WTF is Ruby and why doesn’t my cousin know it?
My cousin fixed my puter’ the other day. He’s so
smart!
• Slow?
• Rails can’t scale! Look at Twitter!
9. Why We Really Chose
Rails
• We prefer Mid-Large sized projects over smaller
CMS-like sites.
• We love to code in Ruby and being a programmer
I was able to really appreciate the simplicity of the
language. Simplicity leads to cheaper maintenance.
• The market was less saturated for people looking
specifically for Rails Development, giving us a niche
• We know lots of people that know Ruby on Rails
10. Stop Being Afraid
• Rails can scale and depends on who is doing the
scaling and their level of expertise. There are
plenty of places to get the information on scaling.
• There are plenty of Ruby on Rails contractors and
potential employees out there that would love to
be doing this full-time. Know where to look.
• Ruby is not obscure. Ruby is very easy to learn and
can be refreshing in it’s elegance and simplicity.
• Many clients do not care about your language
framework choice.
11. Choose a Framework
• At least use some Framework for mid-large
projects... it’s 2009.
• Symfony, CakePHP, Django, Rails and Sinatra are all
good and modern open source frameworks.
• Ruby is very easy to learn and is well supported by
a great community so don’t be afraid to explore.
• If the only dynamic element on the page is the date
then you don’t need a framework.
• Stop flaming... a good programmer has many
options and picks the best one for the project.
12. Cogwise Method
• Contractors Over Employees
• The Feudal Structure
• Quick, Agile & Flexible
• Mix Of Outsource, Local Source and Near Source
• Communicate Early, Communicate Often
• Tools That Empower Remote Development
13. Contractor Basics
• 80/20 structure with intention of no more than
50/50 contractors over employees
• Specialists are more expensive than your average
employee but also very much more efficient in
most cases
• Employees can be much more wasteful as well and
can have hidden costs when you factor in every
resource it takes to have an employee
14. Contractor Tips
• Check references... yes, they will only give you the
good ones. Make sure there are plenty recent ones
• If you aren’t a coder have someone you trust and
know is competent interview them
• Peer Review and oversight are good practices
• Resourcefulness is more important than raw
knowledge
• Keep your contractors busy and you will enjoy a
continued relationship with them
• In the end trust your gut and be willing to fail...
15. Where To Look?
• oDesk
• Job Boards - jobs.rubynow.com
• User Groups & Meetup Groups
• Google Search
16. Feudal System
• Each project manager is technical in nature and
understands the code exceptionally well
• Each project manager is responsible for their
team’s productivity and client communication
• A project manager may be responsible for more
than one project
• We pass our company standards down the line to
the project managers and check in with clients to
make sure they are being adhered to
• We review the code randomly to make sure code
standards are being adhered to
17.
18. Keeping Consistency
• You cannot build this type of organization without
STANDARDS
• Put those standards in a place where everyone can
review them and keep tabs on if they are being
adhered to
• Your Project Managers should be a good gauge on
how well standards are proliferated in your
organization. Meet with them at least weekly
• In place of a daily stand-up meeting you should
have your remote devs send in a daily status
report
19. Company Owner
• We are the product owners and partnered with
the client to produce quality work
• Our time is not billable as we are the glue that
keeps the organization together
• We and the people we trust help to set
standards... ie.. the Project Manager
20. Special Roles
• Quality Assurance - Double check work with a
non-programmer
• Code Helper - All the kings men
• Support Staff - Your time is valuable so don’t do
stuff that isn’t valuable
21. Quick, Agile & Flexible
• Agile development is smart development
• Value communication over planning
• Leave things pliable as much as you can but don’t
hang yourself
• Agree to only what you can do for your
compensation
• Treat your client’s sites like they are your own
• Allow room for incremental adjustment
• Mind your budget!