• Share
  • Email
  • Embed
  • Like
  • Save
  • Private Content
Rails In Action & How To Build An Efficient Empire
 

Rails In Action & How To Build An Efficient Empire

on

  • 643 views

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 ...

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!

Statistics

Views

Total Views
643
Views on SlideShare
643
Embed Views
0

Actions

Likes
0
Downloads
6
Comments
0

0 Embeds 0

No embeds

Accessibility

Categories

Upload Details

Uploaded via as Adobe PDF

Usage Rights

© All Rights Reserved

Report content

Flagged as inappropriate Flag as inappropriate
Flag as inappropriate

Select your reason for flagging this presentation as inappropriate.

Cancel
  • Full Name Full Name Comment goes here.
    Are you sure you want to
    Your message goes here
    Processing…
Post Comment
Edit your comment

    Rails In Action & How To Build An Efficient Empire Rails In Action & How To Build An Efficient Empire Presentation Transcript

    • Rails In Action & How To Build An Efficient Empire By: Will Bridges
    • Who Is Will Bridges? CEO / Cogwise Software Open Source Web Developer & Entrepreneur For Over 10 Years
    • 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
    • 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
    • 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.
    • 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.
    • 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!
    • 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
    • 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.
    • 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.
    • 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
    • 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
    • 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...
    • Where To Look? • oDesk • Job Boards - jobs.rubynow.com • User Groups & Meetup Groups • Google Search
    • 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
    • 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
    • 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
    • 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
    • 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!
    • Sourcing • Outsource • Local Source • Near Source
    • Communication • Weekly Client Meeting • Daily Developer Status Update • Visibility Into Project Management • Early & Often But Not Burdensome
    • Tools • Redmine or equivalent • Highrise or equivalent • 14dayz or equivalent • SCM
    • My Info • Business: http://www.cogwisesoftware.com • Personal: http://www.invisiwill.com • Twitter: @cogwisewill • Facebook: http://www.facebook.com/ william.bridges