Rails In Action & How To Build An Efficient Empire

25
Rails In Action & How To Build An Efficient Empire By: Will Bridges

description

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!

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

Page 1: Rails In Action & How To Build An Efficient Empire

Rails In Action & How To Build An Efficient Empire

By: Will Bridges

Page 2: Rails In Action & How To Build An Efficient Empire

Who Is Will Bridges?CEO / Cogwise Software

Open Source Web Developer & Entrepreneur For Over 10 Years

Page 3: Rails In Action & How To Build An Efficient Empire

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

Page 4: Rails In Action & How To Build An Efficient Empire

I Love Ruby Becausesome_integer = 50_000_000

class Integer def to_half self / 2 endend

some_integer.to_half25000000 will be the result

Page 5: Rails In Action & How To Build An Efficient Empire

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

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.

Page 6: Rails In Action & How To Build An Efficient Empire
Page 7: Rails In Action & How To Build An Efficient Empire

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.

Page 8: Rails In Action & How To Build An Efficient Empire

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!

Page 9: Rails In Action & How To Build An Efficient Empire

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

Page 10: Rails In Action & How To Build An Efficient Empire

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.

Page 11: Rails In Action & How To Build An Efficient Empire

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.

Page 12: Rails In Action & How To Build An Efficient Empire

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

Page 13: Rails In Action & How To Build An Efficient Empire

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

Page 14: Rails In Action & How To Build An Efficient Empire

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

Page 15: Rails In Action & How To Build An Efficient Empire

Where To Look?

• oDesk

• Job Boards - jobs.rubynow.com

• User Groups & Meetup Groups

• Google Search

Page 16: Rails In Action & How To Build An Efficient Empire

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

Page 17: Rails In Action & How To Build An Efficient Empire
Page 18: Rails In Action & How To Build An Efficient Empire

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

Page 19: Rails In Action & How To Build An Efficient Empire

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

Page 20: Rails In Action & How To Build An Efficient Empire

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

Page 21: Rails In Action & How To Build An Efficient Empire

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!

Page 22: Rails In Action & How To Build An Efficient Empire

Sourcing

• Outsource

• Local Source

• Near Source

Page 23: Rails In Action & How To Build An Efficient Empire

Communication

• Weekly Client Meeting

• Daily Developer Status Update

• Visibility Into Project Management

• Early & Often But Not Burdensome

Page 24: Rails In Action & How To Build An Efficient Empire

Tools

• Redmine or equivalent

• Highrise or equivalent

• 14dayz or equivalent

• SCM

Page 25: Rails In Action & How To Build An Efficient Empire

My Info

• Business: http://www.cogwisesoftware.com

• Personal: http://www.invisiwill.com

• Twitter: @cogwisewill

• Facebook: http://www.facebook.com/william.bridges