Rails In Action & How To Build An Efficient Empire
-
Upload
invisiwill -
Category
Technology
-
view
675 -
download
2
description
Transcript of Rails In Action & How To Build An Efficient Empire
![Page 1: Rails In Action & How To Build An Efficient Empire](https://reader034.fdocuments.in/reader034/viewer/2022042713/54635e7fb1af9fbc4d8b55f9/html5/thumbnails/1.jpg)
Rails In Action & How To Build An Efficient Empire
By: Will Bridges
![Page 2: Rails In Action & How To Build An Efficient Empire](https://reader034.fdocuments.in/reader034/viewer/2022042713/54635e7fb1af9fbc4d8b55f9/html5/thumbnails/2.jpg)
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](https://reader034.fdocuments.in/reader034/viewer/2022042713/54635e7fb1af9fbc4d8b55f9/html5/thumbnails/3.jpg)
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](https://reader034.fdocuments.in/reader034/viewer/2022042713/54635e7fb1af9fbc4d8b55f9/html5/thumbnails/4.jpg)
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](https://reader034.fdocuments.in/reader034/viewer/2022042713/54635e7fb1af9fbc4d8b55f9/html5/thumbnails/5.jpg)
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](https://reader034.fdocuments.in/reader034/viewer/2022042713/54635e7fb1af9fbc4d8b55f9/html5/thumbnails/6.jpg)
![Page 7: Rails In Action & How To Build An Efficient Empire](https://reader034.fdocuments.in/reader034/viewer/2022042713/54635e7fb1af9fbc4d8b55f9/html5/thumbnails/7.jpg)
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](https://reader034.fdocuments.in/reader034/viewer/2022042713/54635e7fb1af9fbc4d8b55f9/html5/thumbnails/8.jpg)
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](https://reader034.fdocuments.in/reader034/viewer/2022042713/54635e7fb1af9fbc4d8b55f9/html5/thumbnails/9.jpg)
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](https://reader034.fdocuments.in/reader034/viewer/2022042713/54635e7fb1af9fbc4d8b55f9/html5/thumbnails/10.jpg)
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](https://reader034.fdocuments.in/reader034/viewer/2022042713/54635e7fb1af9fbc4d8b55f9/html5/thumbnails/11.jpg)
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](https://reader034.fdocuments.in/reader034/viewer/2022042713/54635e7fb1af9fbc4d8b55f9/html5/thumbnails/12.jpg)
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](https://reader034.fdocuments.in/reader034/viewer/2022042713/54635e7fb1af9fbc4d8b55f9/html5/thumbnails/13.jpg)
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](https://reader034.fdocuments.in/reader034/viewer/2022042713/54635e7fb1af9fbc4d8b55f9/html5/thumbnails/14.jpg)
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](https://reader034.fdocuments.in/reader034/viewer/2022042713/54635e7fb1af9fbc4d8b55f9/html5/thumbnails/15.jpg)
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](https://reader034.fdocuments.in/reader034/viewer/2022042713/54635e7fb1af9fbc4d8b55f9/html5/thumbnails/16.jpg)
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](https://reader034.fdocuments.in/reader034/viewer/2022042713/54635e7fb1af9fbc4d8b55f9/html5/thumbnails/17.jpg)
![Page 18: Rails In Action & How To Build An Efficient Empire](https://reader034.fdocuments.in/reader034/viewer/2022042713/54635e7fb1af9fbc4d8b55f9/html5/thumbnails/18.jpg)
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](https://reader034.fdocuments.in/reader034/viewer/2022042713/54635e7fb1af9fbc4d8b55f9/html5/thumbnails/19.jpg)
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](https://reader034.fdocuments.in/reader034/viewer/2022042713/54635e7fb1af9fbc4d8b55f9/html5/thumbnails/20.jpg)
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](https://reader034.fdocuments.in/reader034/viewer/2022042713/54635e7fb1af9fbc4d8b55f9/html5/thumbnails/21.jpg)
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](https://reader034.fdocuments.in/reader034/viewer/2022042713/54635e7fb1af9fbc4d8b55f9/html5/thumbnails/22.jpg)
Sourcing
• Outsource
• Local Source
• Near Source
![Page 23: Rails In Action & How To Build An Efficient Empire](https://reader034.fdocuments.in/reader034/viewer/2022042713/54635e7fb1af9fbc4d8b55f9/html5/thumbnails/23.jpg)
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](https://reader034.fdocuments.in/reader034/viewer/2022042713/54635e7fb1af9fbc4d8b55f9/html5/thumbnails/24.jpg)
Tools
• Redmine or equivalent
• Highrise or equivalent
• 14dayz or equivalent
• SCM
![Page 25: Rails In Action & How To Build An Efficient Empire](https://reader034.fdocuments.in/reader034/viewer/2022042713/54635e7fb1af9fbc4d8b55f9/html5/thumbnails/25.jpg)
My Info
• Business: http://www.cogwisesoftware.com
• Personal: http://www.invisiwill.com
• Twitter: @cogwisewill
• Facebook: http://www.facebook.com/william.bridges