Corante

Fruitful Seminars

Making Social Tools Ubiquitous

10 Sept 08

Social tools help improve business communications, increase collaboration and nurture innovation, but what do you do if people won't use them? And how do you grow from a pilot to company-wide use?

The Email Problem and How To Solve It

3 Sept 08

Email is becoming a problem, with people sending and receiving hundreds each day. 'No Email Days' don't help, nor do inbox size limits. So just how do you reduce email and improve people's relationship with their inbox?

Google Groups
Subscribe to Fruitful Seminars
Email:
Visit this group
About the Authors

Suw Charman-Anderson

Suw Charman-Anderson

Suw Charman-Anderson is a social software consultant and writer who specialises in the use of blogs and wikis behind the firewall. With a background in journalism, publishing and web design, Suw is now one of the UK's best known bloggers, frequently speaking at conferences and seminars.

She recently launched Kits and Mortar, a blog about planning a green, cat-friendly self-built home. Her personal blog is Chocolate and Vodka, and yes, she's married to Kevin.

Email Suw

Kevin Anderson

Kevin Anderson

Kevin Anderson has been an online journalist since 1996, designing, editing and writing websites for both broadcast and print media. In 1998, he joined the BBC and became their first online journalist based outside of the UK, covering the US for its award winning news website. After coming to the UK in 2005, he developed a blogging strategy for BBC news, helped launch a programme on the BBC's 5Live covering weblogs and podcasts and was on the team that launched the interactive radio programme World Have Your Say on the BBC World Service.

Kevin is now the Blogs Editor for The Guardian, where he is responsible for management, strategy and 'leading by doing' for Guardian Unlimited blogs.

E-mail Kevin.

Member of the Media 2.0 Workgroup
Dark Blogs Case Study
Case Study 01 - A European Pharmaceutical Group
Find out how a large pharma company uses dark blogs (behind the firewall) to gather and disseminate competitive intelligence material.
All content (c) Kevin Anderson and/or Suw Charman
Just Released the 2008 Tribalization of Business study - an in-depth look at how 140+ organizations are managing and measuring online communities

Strange Attractor

« FoWA: Native to a web of data - Tom Coates | Main | FoWA: Ten reasons why you need to build an API - Shaun Inman »

February 8, 2006

FoWA: Happy programming with Ruby on Rails - David Heinemeier Hansson

Email This Entry

Posted by Suw Charman

Silver bullet for developers - motivation. We should be focusing on productive and motivation in our development, in the work we do. Not enough to be just working in an interesting domain, or customers who appreciate what you do, but you also need to enjoy the mundane things of what you do.

I'm most motivated when I'm happy. Motivation comes from happiness. Not far down to say that if happiness, is the key ingredient for motivation we should optimise for happiness to optimise for productivity.

Used to be a programmer who didn't like programming, liked the end result but not the process of programming. Didn't find that exciting. But found there was one key factor that me me happy about doing the actual work and for me that's beautiful code.

Beautiful code is one of those things that's hard to explain, it's about feeling good about a single statement, expressing what you want to say in a way that's aesthetically pleasing, that's understandable, that's right.

Your app is not a unique snowflake. It is not special. Hard for people to deal with the fact that they are not special. Most parts of most apps are just like everyone else's. Most people do the same most of the time.

So Ruby on Rails optimises for the 80% of the workloads. Can't optimise for special, can abstract special. So that's not the work that we focus on with RoR, because it's too hard.

To get people on board with this they have to believe that 80% of what they do is the same as everyone else, and the last 20% is special, is the snowflake.

One technique for making beautiful code is the notion of convention over configuration. Configuration is the annoying part of making software. First you do the work, then you tell the system how you did the work, then you tell another part of the system how you did the work. Programmers don't like repetition. So beautiful code does not repeat itself. It express what it needs to express just once.

[Gives example of code.]

Look for patterns to abstract, conventions say in mapping. Look for relationships between things. Conventions are there for the 80% of the time. When you work inside those conventions, you don't need to do work, because you can get the conventions to do it.

Configure once, the move on.

Flexibility is overrated. Assumption is that flexibility is good. Trading valuable parts of your system away to get flexibility, and usually not worth it. Should stop chasing flexibility.

Constrains are liberating. If you think about what most people are doing most of the time, you'll get systems which are consistent.

Devil shows you the easy way, where something gets done today but tomorrow is tomorrow. On the other hand, the angel tells you to test things.

Not about whether something is possible or impossible, it's about whether it should be encourage or discouraged. At this point I realised that PHP is the devil, because PHP was constantly giving me temptation to do the ugly thing. The whole language just encouraged me to be a slob. Yes, I could fight that, and that works until the pressure's on, and then you listen to the devil.

Ruby on Rails is the angels, we're trying to embed the angel on RoR. We're making it easier to do the right thing, the clean thing, the pure thing, than the hack. You have to go out of your way to do something ugly.

Create invitations to do better, reminding you that you should be consistent, that you should be creating tests, and that you get benefits from doing things the right way.

We do this by allowing common patterns but showing you there is a better way to deal with these common patterns.

Conventions
Invitations
Opportunities
Expectation

Want to set up a community of expectation that people are interested in doing the right things, the clean things.

[Another code example. Hard to take notes on code without the examples.]

Extracting common usage. Reduce mental effort. Sometimes the beautiful thing is to get out of the way. Sometimes, the beautiful thing is not to try to abstract, but to be a snowflake, do the unique thing.

What do you need to use RoR
- Feel the hurt. If you don't feel the hurt, don't hear the devil whispering in your ear, you're not ready for RoR yet.
- Appreciate agile. That a functional spec is evil. Appreciate tests.
- You can skip the vendor. 'I'm not here for you'. Open source because you want to help yourself. Rails is solution to problems faced by the contributors.

Does it scale? Yes.

Comments (1) + TrackBacks (2) | Category: Conferences


COMMENTS

1. forgot on February 10, 2006 2:06 AM writes...

i like to present the "idiots'" positions and make a dire prediction. :hah? you say? p certainly! # i retort! Look here missE: Too many Kids are given the role of 'decision makers' in this "industry". heck, you can't run an "industry" using a "cottage" industry mind{}.

RoR is disposable software.


Now that is a great idea, but hardly "motivating" to me, the "idiot" developer who have made, in spite of my best resolve, a dire prediction.

Now, who would like to be the first investor in my RoR->? converter tool company?

btw, please do not mis?interpreter my me?ssege, i think ruby is great "fun" and RoR one heck of a prototyping tool ...

Permalink to Comment

TRACKBACKS

Listed below are links to weblogs that reference FoWA: Happy programming with Ruby on Rails - David Heinemeier Hansson:

Just some notes from a conference I wasn’t at. from Andrew Garrett's Scroll of Emptiness
More for my own future reference than anything else, but I know some readers will find this osrt of stuff interesting. Building a webapp on a budget. Not a generic webpage, not just an app - a Web Application Business - in this case, Dropsend. Came i... [Read More]

Tracked on February 27, 2006 7:55 AM

I previously blogged on Large Enterprises and why they don't care about Ruby and was rightfully accused of bashing folks in the Ruby community but not providing the answer to my original statement. Figured I would set things right... [Read More]

Tracked on March 19, 2006 5:16 PM

POST A COMMENT




Remember Me?



EMAIL THIS ENTRY TO A FRIEND

Email this entry to:

Your email address:

Message (optional):




RELATED ENTRIES
links for 2008-06-30
links for 2008-06-27
links for 2008-06-26
links for 2008-06-25
links for 2008-06-24
links for 2008-06-23
Three days left to sign up
links for 2008-06-20