I am doing an online (live) panel discussion with special guests a little less than an hour from now.
Here is a brief list of topics that we hope to cover:
I am doing an online (live) panel discussion with special guests a little less than an hour from now.
Here is a brief list of topics that we hope to cover:
Our annual BizConf recap video is ready! For attendees a chance to reminisce and if you weren't there, well, this is what you missed: connections, creativity and community.
BTW dates for BizConf events next year should be announced before Christmas.
Just a quick update to my readers who might have been on the fence about attending this year's BizConf, coming up August 4th. We're pleased to announce the addition of David Allen (of GTD fame) to our lineup of provocative and educational presenters.
David will be presenting a special three-hour workshop to a very small audience in an intimate setting. Chances like this don't come along very often, certainly not at this price.
Registrations have been coming in slowly, but surely. As I write this we're over 60 registrations. Since I'm confident we're going to sell out soon, the time to commit and register is now. Click here to use the coupon code OBIE40 when you register to get a huge $771 discount. Believe me, I know that even with a 40% discount we're still an expensive event, but I promise you it's worth it. Our lineup is superb and the Ritz-Carlton Amelia Island is the nicest conference venue I've ever been to and worth every penny.
Incidentally, some of you might be wondering why we're giving such steep discounts late in the game. The first iteration of our budget was overly optimistic and planned for a healthy profit. As a still young conference, we've lowered our sights to breaking even. Last year we lost a lot of money (more than $40k) on BizConf, but conventional wisdom is that you always lose money in the first year of an ambitious event. Profit should help us get ahead in the years to come, as our reputation solidifies and we build a base of loyal repeat attendees.
Hashrocket sponsored the inaugural RubyConf India event primarily to support the nascent, yet growing community of Rubyists here, but also due to my personal love of Indian people and culture. I've been eager to get back to Bangalore for the last couple of years and this was the perfect excuse. I deliberated about what talk to deliver to this audience. At all costs I wanted it to be entertaining and provocative. In my opinion, too many Indian service companies are "doing it wrong" -- they stick to the stereotypical modus operandi of offshore providers, with waterfall processes and fixed bid. I wanted to impress on the audience that there is a better, more fun way to run your business. After opening comments by the organizers and Roy Singham, Chairman of ThoughtWorks, I delivered the second general audience talk.
I was charged up with the right kind of anxious energy and this being material that I know inside and out, it came straight from the heart. The talk was not entirely new, previous versions of it had similar material. However, I did go through and restructure the outline significantly as well as adding new material based on the last 12 months of operations at Hashrocket. Luckily I also added some elements that I knew would appeal to my audience -- slides based on the blockbuster Indian movie "3 Idiots". Little that I know how important the concept of "All Izz Well" would prove to be to myself!
On a scale of 1 to 10, I would rate myself a 9 on delivery. I was funny and engaging, making eye contact with the audience members and spending much time in storytelling mode. Unfortunately, I would have to deduct points for making the mistake of dropping the "F-bomb" too many times and as a result getting interrupted and vocally dressed-down by Tina Vinod halfway through! Somehow, although nervousness infected my voice and I started forgetting to breathe, I did pat my heart and tell myself audibly "all izz well, all izz well" and charged ahead with my talk -- the audience got a good laugh at that. Other challenges included the organizer mistakenly telling me I was out of time when I actually had at least 15 minutes left! Luckily my Keynote display presenter mode with its timer saved me. I did pick up the pace a bit, but finished in 48 minutes, just 3 minutes over my alloted time.
In the section of the talk about Process and Practices, I mentioned that it is necessary to go "by the book" when starting out. Too many people criticize practices that they haven't properly implemented. You must learn to crawl (so-to-speak) before you can evolve your own practices.
The list of books I recommended constitute a large part of the orthodoxy of progressive software development nowadays. I asked the audience, how many of you have read at least half of these books. Sadly, only a dozen or so hands (out of 400) shot up. I truly believe that you cannot be effective nowadays without studying these books and applying them to your day to day.
After you've mastered the fundamentals, then you can begin to evolve your process and practices to actually achieve the best results for your context. I must have said 20 times during my talk that "context is king."
One of my favorite and most controversial pieces of advice, at least based on the feedback and comments that it generated:
"I don't defend breathing... I don't defend Agile. It just is."
I believe unequivocally that the time to be evangelizing and advocating proven Agile techniques is over. It's been at least 10 years since Extreme Programming hit the scene. We know that TDD yields excellent results. We know that pair programming yields excellent results. We won. To continue being in defensive mode against stupidly obstinate management is a waste of time. It may take a long time from now, but eventually people that don't work in smart Agile ways will fail and go away. As for you, concentrate on being excellent, perfecting your craft and building a loyal and devoted group of clients that will provide you with strong references and testimonials.
If you want to put into practice my advice, refuse to work for clients for whom success is not 100% important. This will necessarily exclude most large enterprise clients, where politics and status quo are as important as results. Those types of clients will drag you down and make you compromise your values. Startups and entrepreneurs usually are 100% focused on successful results. These stakeholders will not be worried about your technology choices or whether you want to pair program and do test-first. They will let you do your job, and the way that you sell them on using you is with successful track record, demonstrated by copious amounts of testimonials from previous clients. I stressed the importance of photos and videos to capture the spirit of your success in a vivid and emotional way. We have the technology -- use it!
My advice to fire clients if they need to be fired was perhaps shocking. It shouldn't be. I've only had to fire a client a few times in the history of Hashrocket. That's considering a list of now almost 60 happy clients of all shapes and sizes. The key to not having to fire clients, is to not get the wrong clients to begin with. This is known as being able to "choose your clients." It's not as hard at it seems. Sure, when you're starting out it is somewhat difficult to put this advice into effect and you will make mistakes. That's when it's important to have the confidence to cut ties and look for greener pastures.
"Never allow your clients to corrupt your values or integrity."
The worst thing that can possibly happen, more than having money difficulties, is to corrupt yourself by compromising on your values and integrity due to pressure from a bad client. I'm not saying to be inflexible! I'm saying that there are core values that will allow you to reach for excellence and achieve it. You won't know what those values are when you're starting out, but you can be informed by studying the successful results of others and internalizing that knowledge. Then when you're on a roll and doing great work for your clients, you will realize what those core values are. From that moment on, no matter how big the pressure is, you should not compromise. The more confident you are about your way of working, the easier it will be for you to sell your services and acquire quality clients. The last thing you ever want to do is to appear desperate -- at that point great clients will go away running and bad clients, those that will take the worst advantage of you will become very friendly! Never allow your clients to compromise you. Stick to your values and focus on success.
When I'm evaluating software developers to hire, I don't give much credence to resumes, cover letters, referrals or work history. The only things I care about are work ethic and cultural fit. And there's only one way to determine whether a candidate satisfies my criteria for success -- actually see them in action over the course of a week or more. Since we always pair program, it is trivial to do short contract gigs with qualified candidates and bring them in putting them on multiple real projects. Seeing them working on real code in real situations is very instructional. Again, context is king. Over the course of time, we've created a very desirable work environment at Hashrocket, which means that there is a strong demand for people to come work with us. That means I can diverge easily from traditional hiring models.
Indian business culture, at least the stereotypes that are propagated to the west, doesn't strike me as particularly fun. But if you're doing great work for your clients and sticking to your core values, then you're going to have a lot of success and be able to enjoy it by building a very fun work environment. My final series of slides was a photo set of various fun activities that Hashrocket folks engage in on a regular basis, from participating in user groups, to music and sporting events, games, having parties, drinking and dancing and doing crazy stunts like all jumping into a swimming pool at the same time.
I truly believe that if you're not having fun at work, you're doing it wrong. A happy, healthy environment is one that leads to the best results. However, you can't impose fun on a group by fiat, just like you can't create culture. It has to emerge from hiring happy, progressive folks that want to do the best work possible while sticking to strong core values. This is the final message of my talk and I hope that the audience found it inspiring and worth passing on...
Despite my honest intention to travel less this year, I still have a particularly long list of conferences and events that I'm attending, sponsoring or otherwise involved with. Will keep this blog entry as up to date as possible as changes occur.
SpeakerConf in Aruba (February 9-11)
Had an awesome time hanging with folks way smarter than me, learned a lot, drank way too much and came back with a tan. Please don't hate me.
Hashrocket Chicago Grand Opening Party (March 5)
Meet a bunch of Hashrocket folks and a good chunk of the local Ruby community for a cocktail party to celebrate the opening of our Chicago branch office. Details and RSVP
NoSQL Live in Boston (March 11)
In support of our growing reputation in MongoDB circles, we've decided to sponsor this promising event and are sending a couple of Rocketeers to present: Les Hill creator of MongoDoc and Durran Jordan creator of Mongoid. The conference is sold out, but you should be able to catch a live simulcast.
SXSW Interactive in Austin (March 11-16)
I've been attending SXSW for the last couple years and always learn a ton and enjoy the great networking opportunities. This year I'm excited to participate in the program as a panelist on the What Guys are Doing to Get More Girls Into Tech panel.
Together with our design team, I'll also be premiering our the results of our rebranding effort and the relaunch of hashrocket.com. Special limited-edition prints to honor the occasion will be available to select friends of Hashrocket in attendance at SXSW.
RubyConf India in Bangalore (March 17-21)
I'll finally put my Indian visa back to work when I travel back to Bangalore to speak at the inaugural RubyConf India, which we are sponsoring as Hashrocket. If you've been following my blog for awhile or know me personally, you know that in 2006 I lived in Bangalore for three months as a ThoughtWorks University trainer and loved it! I have a special fondness for my friends and associates in India, so this trip is particularly near and dear to my heart. I can't wait to reconnect with everyone and make new friends.
I still haven't decided what my talk will be, but I'm leaning towards an updated version of The Hashrocket Way. Let me know what you think about that via twitter.
Pune Visit (March 22-24)
Before leaving the subcontinent, I'm hoping to visit old friends at the ThoughtWorks India office in Pune, as well as meeting with other folks from the thriving Ruby on Rails scene in that city.
Scottish Ruby Conf (March 25-28)
On my way back from India, I'm spending a few days in Scotland for what's quickly becoming a yearly Hashrocket tradition. Jon Larkowski, Robert Pitts and Jim "Big Tiger" Remsik are representing us on the speaker list.
Palmetto Open Source Software Conference in Columbia, SC (April 15-17)
Speaking at this interesting conference catering to developers, educators and businesspeople involved in open source. Maybe I'll get to meet Cringely.
Hashrocket University in Baltimore (June 6)
Your very exclusive opportunity to study the tools and processes behind Hashrocket's success, hands-on and directly from actual Rocketeers, pairing on our equipment. Presented in partnership with the excellent folks at JumpstartLab. Plus, you're going to be in Baltimore for RailsConf 2010 already!
Ignite RailsConf in Baltimore (June 6)
Ignite events are lightning talks, where 16 speakers each get 5 minutes to talk about a subject they are passionate about, but with a twist: the speaker's slides are automatically advanced every 15 seconds. At Hashrocket, we think Ignite events are fucking awesome. That's why we're sponsoring this one, which promises to be an awesome pre-party kickoff for...
RailsConf 2010 in Baltimore (June 7-10)
I'll be part of a contingent of at least 10-15 people from Hashrocket, many of us speaking (hopefully). I've proposed several talks including a great new experience report called "Million Dollar Mongo" about our work on a large and successful production deployment of a MongoDB/Mongoid/Rails app.
Planning to spend most of middle and late July working out of our Chile office.
BizConf 2010 in Amelia Island (August 4-6)
My own conference promises to be one of the greatest learning events of 2010 for people that run software operations. Registration is now open and seats will go fast due to limited capacity. Seriously, what are you waiting for? (Okay, maybe you're waiting for me to post the program - I promise to do it soon.)
Burning Man in Black Rock City (September 1-5) Oh man, I can't wait for this. Been trying to go for at least 5 years and I lost count. I think I'll be able to go this year, in fact have promised special friends that I will do so. RubyConf in New Orleans (November 11-13) A must-attend event, especially in the Big Easy. Will be there with plenty of co-workers from Hashrocket.
Burning Man in Black Rock City (September 1-5)
Oh man, I can't wait for this. Been trying to go for at least 5 years and I lost count. I think I'll be able to go this year, in fact have promised special friends that I will do so.
RubyConf in New Orleans (November 11-13)
A must-attend event, especially in the Big Easy. Will be there with plenty of co-workers from Hashrocket.
YOW! 2010 in Melbourne (December 2-3) and Brisbane (December 6-7)
Presenting on Rails 3. More details as they become available.
BizConf is back on August 4th to 6th, 2010 at the same fabulous venue, the Amelia Island Ritz-Carlton. If you weren't there, check out the video below to see what you missed in 2009, and why you want to make sure to attend next year.
A limited amount of registrations should open up for alumni and friends very soon, with general registration opening up in January. Jen and I are currently busy putting together the program for next year. We're expecting most of the instructors from last year to present again. Our friends from AYE will definitely be back, including Esther Derby, Johanna Rothman, Don Gray, plus new addition Steve Smith. BizConf 2010 will be more of a training event than a traditional conference, featuring even better interactive sessions and simulations to stretch your skills in the business management arena.
Note: Jerry Weinberg expressed interest in participating again, but in his frank words, only "if I'm still alive." Our love and prayers go to Jerry as he battles thymic cancer. You can follow his progress here.
Jerry Weinberg is one of my heroes. He has over 30 years of consulting experience and has written many notable books including "The Secrets of Consulting" and "The Psychology of Computer Programming". He will be presenting small group experiential sessions including "Learning to Say No" and "Great Client Expectations".
Roy Singham, my friend and mentor, will be keynoting and spending one-on-one time with attendees. Roy famously grew his tiny Chicago-based consultancy into world-class software consulting powerhouse ThoughtWorks, admirably working to make positive change in the world every step of the way. Martin Fowler has written about Roy on his blog.
Esther Derby and Johanna Rothman are esteemed trainers and co-authors of the Pragmatic's Behind Closed Doors: Secrets of Great Management among other titles. They will be very busy at BizConf with sessions topics including:
Don Gray coaches software development organizations to higher levels of productivity. His background in machine and process automation provides the foundation for working with organizational systems and change. His workshops at BizConf will focus on personality types and teamwork, team productivity, and retrospectives.
Ian McFarland, Principal at the esteemed San Francisco-based consultancy Pivotal Labs will present a new model for selling a potent mix of Agile, Ruby on Rails and cloud-computing to CIOs and CTOs in the enterprise world. Ian was a special guest on the Rails Podcast last year.
Corey Haines is one of the warmest, most genuine voices of the Software Craftmanship movement. He is rapidly gaining friends and notoriety from his travel around the world as the wandering journeyman software craftman, sharing programming language with technology professionals in exchange for room and board.
James Duncan Davidson will provide attendees that bring their own DSLRs with a unique opportunity to learn photography from a master of the craft. Learn how to maximize your marketing with candid shots of your people in action.
Jessie Shternshus is founder and owner of The Improv Effect and has worked with companies such as CBS, Paramount Pictures, MTV and Sesame Workshop. Jessie merges her lifelong passion and expertise of improvisational acting with the fast paced demands of the corporate world. In her classes and workshops she helps people become better listeners, team players, leaders and communicators. Her physically engaging and playful workshops are relevant to all facets of life and are sure to be a fun highlight for BizConf participants.
Jason opens the conference with an inspirational keynote-style, rambling, slideless talk. Main ideas:
Jason doesn't care about the competition, doesn't think about them -- just focus on building a great product. The success of competitors doesn't bother him.
As free services fail there's going to be a "flight to quality", to stable companies that make money
37signals was recently looking for a VP or Marketing and Business Development manager. Stopped rather quickly once realized they "didn't know what it fucking meant". Suggestion, before you hire someone try doing that job yourself so that you understand what you're looking for.
During the Q and A Robert Dempsey asks whether there will be consolidation in the web app field or whether OAuth and other integration technologies will help single-function apps thrive. Jason thinks integration without a cohesive user experience is a pipedream. On the other hand, big uber-apps don't work either, so maybe vendors offering multiple tools (like 37signals? heh) will continue to succeed.
37signals has 12 people now, after hiring 4 people in 2008. Key productivity advice is to stay the hell away from each other -- interruptions kill productivity. Totally opposite philosophy from the way that Hashrocket works.
Dion Almaer and Ben Galbraith
Dion left Google (news to me) to join Mozilla with Ben. Their talk is about the future of the browser. Lots of talk about how Ajax has pushed the state of the art forward. The focus of their talk is a set of four technologies that will change the world of web apps.
Bespin (in-browser open-source IDE and code editor) looks really cool.
They use Delicious Library (half-million in profit) as example of making refined, sexy versions of apps that have been done a million times before.
Amazing conference animations by Chris Kelley.
Sadly, this presentation is not working at all. It's a code-oriented talk about the open APIs provided by Yahoo, but the presentation slides were corrupt and didn't work. Dan is up on stage trying to talk his way through api descriptions and code examples. Terribly painful :(
The lead architect (or something) at Digg, was the seventh developer hired. Everything was chaotic in the beginning, and Joe is going to talk about the hurdles in scaling a team as you scale up and implement process.
His .vimrc file is 20 lines and has been the same for last 10 years. (In other words, developers are stubborn.) Other attributes of developers:
(Generalizations bad, mmmkay... I don't think he meant any harm though, but this is feeling very cliched so far)
Tells story of things that top developers have gotten from hiring companies: $50k shower installed into office "since I do my best thinking in the shower" and $30k fully-functioning desk made out of LEGOs. Funny, but I missed the point. That developers are difficult?
Good point made about team size: need to keep the size down to 5-7 people at most. (Actually, I say that 2-4 is optimal.) Break up large groups into teams with specific responsibilities.
Strong advice about code repositories. "Can't believe that I have to put this slide up here." As I've been ranting about lately, there are still teams out there not using source control. "If you have a development team that's not using source control you have to fire the team or fire yourself" - Joe Stump
Joe says to Promote Ownership (in contrast to XP's shared ownership), but I think he's talking about at a team level.
"You should have frameworks (Rails, Django, etc)... it doesn't matter, it's all about lowering barriers to entry, and frameworks definitely help there" He's been playing with Django and likes it, but Digg is not porting their 500k lines of code to Django.
Testing. Unit testing.
21 developers and 5 concurrent sprints going on.
They're writing code so quickly that they can't get it through QA and integration rapidly enough.
Copy sucks. Needs time and organization. (Didn't get that much out of this short talk.)
11 women out of 800 people registered.
Challenges for organizers
The potential speaker's challenge:
Tag speaker ideas and offers with #fowaspeak Ryan will be listening for future Carsonified events.
Open-source is chaordic (ordered chaos). Decision-making is pushed to the nodes. Technically Aza has 1 person working on Ubiquity fulltime, but he has 10 core contributors. Mozilla Labs operates in an open-source manner internally, there isn't really a traditional division of labor.
(I'm missing the point of his call to action about the 270 million users and designing for it.)
Aza calls for "the wiimote of the browser world". He's asking for disruptive development in that space?
Neat conference trick. Tells everyone to raise their hand, then thanks everyone for volunteering and picks one person to "describe your significant other in 30s without disclosing their gender". Immediate fail by the volunteer, who began "she does..." Point it, it's difficult to leave gender out of the way we communicate, yet computers do that all the time.
Couching problems in terms of people rather than technology.
Let's move away from destination sites. From people having to go places, and make computers do stuff for them instead. Can't wait to see actual Ubiquity demo. I'm sad that technical problems are ruining some of the talks here.
We've only been thinking about people for the last 2 years. (Really?) Never been a better time to be doing what we're doing than now -- the building blocks are there to build the applications that we've been wanting to do for years. Facebook is just one of the companies providing the social graph.
Facebook has 175 million people (and 660 thousand developers) as of February 2009. Facebook Connect is the first step in enabling everyone on the web.
(Sigh, almost ten minutes in, the speaker is wayyy loud, lunch is late, and this talk has said nothing so far. Frustrating. Also, although his slides are actually on the screen, he's having trouble with the clicker.)
Talks about beefier activity feeds and activitystrea.ms which looks interesting, but overall I couldn't bring myself to get excited about this talk. Very high-level.
Don't treat software like assembly-line factory. Be like a movie studio, bring the best talent. We live in a winner-take-all society, there's only going to be one big social networking site, one microblogging service, etc. It's all about talent. Disproportionate reward example: one of his summer interns built their job listing site in 2 weeks. Over 2 years it's earned $1,043,767 dollars, paying for 6 years of intern expenses, many times over.
Based on Yale CS students statistics, there is no connection between the time taken to do an assignment and its quality. (Ratio between best and worst developers is 10 to 1.)
Bottom line: Emphasize talent in recruiting, treat them like rockstars, invest in a great office and working environment, keep them all together, long lunch tables for everyone to eat together. All great advice.
Check out Fog Creek's new office, it's gorgeous and is attracting a lot of attention.
Unfortunately I missed what AARRR acronym means. He's talking very, very quickly. This appeared to be a quick talk about optimizing for "Conversion Improvement". Advice is to stop iterating when conversion increase slows down. The break
Shows a conversion dashboard with stage, conversion status, percentage columns.
Measure stuff. Keep it Simple. As founder concentrate on metrics.
(Gotta say these slides with dark colors on black background are really difficult to read, even on the good FOWA equipment. Presentation FAIL.)
The presenter works at Virgin on redesign of their main website (for which he will debut mockups today). The talk is Brand 2.0 - Why should people love you? (Should be interesting.)
People are the new brands: think Branson, Jobs, Ryan Carson (lol)... man, but this is a powerful line of thought. You have to believe that you are creating the best possible, the best in history service or product in the history of the universe. (Ha! Captures exactly how I run Hashrocket, doesn't it?)
"Consistency is not Dogma"
"Consistency is a state of mind... like winning"
Example of blog.digg.com as one of the best corporate blogs ever. Diggnation has a 250k audience and has 10 live events per year where massive amounts of fans celebrate them.
Props to design agency Rokkan for redesign of Virgin.com. Alex is really excited about Facebook Connect. According to Ryan, Alex is "putting his ass on the line" by making virgin.com content user-driven.
Ryan warms up the crowd by telling us he's been under NDA for months and that what Francisco will be announcing today will be "fucking amazing". Okay, we're ready...
Aristo is a new UI component being integrated into Cappucino and is purely open-source. Made by SOFA. The actual photoshop files (including the iterations that led to the final version) are on Github. In other words, you can use that to learn how to create a beautiful look and feel. (Awesome)
"Write once, layout everywhere" (Sorry, I was enraptured by the Atlas demo, so I wasn't taking any notes.)
Oh man, he's rocking it. Lots of quotable quotes.
"Why in the world should Kanye's next album share anything with Apple."
"You're going to have douchebags like me" running around teaming up with content-providers to monetize.
"You're going to go back to your hotel room and ask yourself, 'Why am I working at this company that sucks straight shit!?'"
He wants to buy the New York Jets. (And he probably will eventually, heh.)
You have to have passion.
It's all about the hustle. (Yah, preach it!!! And checkout my Hustle talk)
"I need to hustle more. I'm doing too many speaking engagements."
Agrees with Jason Fried, he doesn't believe in making mistakes. Everything he's done is potentially a mistake, but when you cry, you're stuck. "Stop crying."
"The fact that you know what FOWA is means that you should win... that's the game"
"There's too many primadonnas in this business... people are idiots. They're gonna lose and they're gonna lose hard because they think they're hot shit."
I asked him how many years until he buys the jets. He said 25, but if he can't he'll take out the NFL. "Fuck the NFL" (ROFL!)
"All this world is doing is making the person with the chops win... If a restaurant is awesome, but sucked at marketing, it could die (in the past)." Not now, because online fans would save it.
"You want a marketing strategy? CARE!!!"
"If you were not selling stuff before the age of 13, YOU ARE NOT A SALESMAN! ... You have to know who you are!!!"
"When's the tipping point? THE DAY YOU START, ASSHOLE!" He doesn't care about numbers and SEO. He doesn't worry about dumb shit like that, just pump out great shit and care. When he was starting out he went out to every wine blog and became part of the conversation.
"I have never drank a Red Bull in my entire life." (Comment from the crowd: "he snorts it" LOL) Offers to pitch it if anyone from Red Bull is watching and interested.
"If you're in this room trying to convince someone to use Facebook or Twitter, stop it."
Congrats to Ryan Carson and his crew for another fantastic event. Very inspiring. - Obie
The RailsBizConf idea has been brewing in my head for close to a year and I'm finally ready to start making it a reality. I'd like to bring together principals of Rails consultancies for a 2-day conference, focusing on the business aspects of our niche.
As a first step, I am collecting your feedback about the idea, and plan to use the information to help me retain a conference organizer and narrow down the date and location. If you're at all interested, please fill out the following survey.
External link (in case of problems with the embedded form)
I'm super busy with my duties as technical chair and M.C. for the conference and I'm not getting the opportunity to live-blog the Professional Ruby Conference the way I would like to. Luckily Nick Quaranto is doing a great job documenting the proceedings in details here: Professional Ruby Conference Notes
Liana (with baby in tow sometimes) is also doing a great job of documenting the highlights of the sessions.
So far it's been a really great experience. Along with friends and familiar faces, I'm also meeting amazing people from all sorts of backgrounds and it's doing wonders for my reputation (heh!)
The single track, 30-minute format is wonderful and we've gotten ample praise about it. Everyone in the audience gets the same content at the same time and has plenty of opportunities to meet informally and discuss what was presented. We have quite a mix of experience levels in the audience -- keeping the talks short and sweet ensures that no single group is bored for an extended period of time. We've covered the gamut of topical ranges, from pure case study "this is what we did" in the New York Times newsroom to Philippe's detailed explanation of DTrace.
Our Tuesday morning keynoter, Giles Bowkett, canceled at the last minute, so I had to scramble. After some undecidedness, I opted to try a concept that I witnessed last week at Conferencia Rails in Madrid. Sebastian Delmont and I brainstormed the content over single-malts in the hotel bar last night.
Photo credit: Sebastian Delmont
We distributed two pieces of colored paper to each person, which they used to vote on their preferred choice from the two displayed on the screen. After most of the votes, I asked for the audience to chip in with an explanation (and occasionally apology) for their choice.
Photo credit: Sebastian Delmont
I was asked to post the results, so here is my list of the smackdown lineup:
vim vs emacs: About half of the audience voted, skewed heavily to vim. I didn't want to start a "religious war" so I didn't ask for elaboration.
svn vs. git: Heavy voting, with fairly even split (perhaps slightly skewed to svn). Will from
jQuery vs. Prototype Apparently when I introduced this lineup I said "...still using Prototype" which I apologize for, since it was leading the audience and it got a laugh. I've been a fan of Prototype for a long time, but Hashrocket as a whole has switched over to jQuery in the last 6 months.
Chad Pytel told us that he's still using Prototype on existing projects because it doesn't make sense to switch over, essentially "if it's broke don't fix it".
Sinatra vs. Camping A few people in the back of the room voted for Sinatra. Matt Bauer told us that it's good for very small standalone web apps and yes, it's ready for production-use.
Blueprint vs. YUI About half the audience voted, skewed towards Blueprint. Someone pointed out that the 960 Grid System is cool, and then we spent at least 30 seconds trying to figure out the name and URL.
MySQL vs. Postgres Heavy vote for MySQL. Consensus appears to be that if you come from big enterprise databases then you're going to prefer Postgres. Also, Postgres is more standards-compliant and
blank? vs. empty? This one was a joke (pretty much) that Sebastian and I included in the smackdown to remind the audience to consider the semantic meaning of API methods. The correct vote would have been for both, since they are not used for the same purpose. The blank? method is for strings and returns true for strings consisting of purely space characters. The empty? method is primarily meant for arrays, but works on strings and returns false for strings consisting of purely space characters.
attachment_fu vs. paperclip Evenly split audience, but consensus was that Paperclip is better than attachment_fu in terms of features and flexibility and its implementation code is very clean and easy to figure out. Also, paperclip allows for attaching more than one file to a single model.
system gems vs. frozen gems Frozen gems won hands-down. Bryan Liles said that if anyone thinks system gems is the way to go then obviously they aren't doing production deployment. Sebastian chimed in that using system gems saves 10 seconds on his deploy time, which everyone took as a joke. Not sure if he meant it seriously. :)
Vlad vs. Capistrano A handful of people voted for Vlad, but otherwise the audience favored Capistrano heavily. I asked Matt Bauer to defend Vlad. He mentioned some reasons about its simplicity and how bad early versions of Capistrano were, but in the end he said it's not worth switching at this point because the pain-points of Capistrano have been resolved.
Mocha vs. Flexmock Mike Schwab was the only person who voted for Flexmock, but wasn't really able to defend the choice except to tell us that Chad Fowler and Marcel Molina suggested it once at a conference. (Comments welcome -- Is this reason still valid? Was it ever?)
FactoryGirl vs. ObjectDaddy Not too many people voted and those that did went for FactoryGirl. Earlier in the conference we heard from the testing panel that ObjectDaddy has way too much magic to be useful.
resource_controller vs. make_resourceful A couple of people voted for each. Got the impression that the audience was largely unfamiliar with these great plugins, so I asked Joe Fiorini to explain them. Bottom line, if you're writing your apps in a RESTful manner then you should check out and use one of these libraries because it'll spare you a bunch of boilerplate code.
HAML vs. ERB One of my favorite topics! The split was maybe 33% HAML with surprisingly heavy voting. The reasons for sticking with ERB? Mostly to keep designers happy or based on what I detect as a resistance to change. I gave my typical impassioned explanation of how HAML lessens the amount of mental mapping needed to effectively think of your views as semantic markup and match them to your CSS.
Bluecloth vs. Redcloth Meh...
RMagick vs. ImageScience Meh...
restful_authentication vs. clearance This one was funny. A handful of votes went up for Clearance, which disturbed its author, Chad Pytel. He stood up and told us not to use it since it's not ready. The offshoot of Github's popularity, is that once public projects go up, they start getting used -- whether they're ready or not. :)
Test::Unit vs. RSpec I was pretty much out of time at this point, so I skipped a bunch of slides to this matchup. Even distribution and some confusion about whether Shoulda belongs to TestUnit (yes) or RSpec. I think the consensus is that it doesn't matter as long as you're putting some effort into testing. I wondered to myself if the people that didn't vote weren't doing any testing. Things that make you go "hmm..."
If you're so inclined, take a moment to tell me your vote for the following smackdown matchups that I didn't have time to get to in the session...
Mongrel vs. Passenger
Sphinx vs. SOLR
ThinkingSphinx vs. UltraSphinx
exception_notiﬁer vs. hoptoad
Gruff vs. Google Charts
CouchDB vs. SimpleDB