Recent Posts

Slides: Rails meets the Legacy World

October 03, 2006

Just got back to my hotel room after giving my talk, Rails meets the legacy world here at Ruby on Rails seminar at AjaxWorld in Santa Clara, California.

As promised, I wanted to post some the slides from my talk today.

A few weeks ago, I announced the Ruby on Rails Legacy mailing list, which I also talked about in my talk. I invite you all to stop by and ask questions… and help the community grow.

If there was one thing that I wanted to really express in my talk… it was that you’re not alone. You’re not the only one faced with a situation where you need to work around legacy conventions, opinions, and politics.

…you’re… not… alone. ;-)

Heading out to go see James Adam talk about plugins… !

Announcing the Dialogue-Driven Development Project

October 03, 2006

I woke up this morning and came across an article written by Brasten Sager, titled, Of Dialogue and Development in which he discusses his initial (and healthy) criticism of Dialogue-Driven Development.

But d3 is an evolving thing. Its earliest forms offered very little definition, leading me to believe there was little to it. As it has evolved the goals and mindset of d3 and its proponents have become a little more clear, and after further consideration I’m now convinced that my original critiques may have been wrong.

I encourage you to read his article, which offers ideas (and diagrams) on how d3 might be injected into your existing process.

A small number of interested developers have been sending us questions about d3 and were wondering what the next step was for the community. We’re working hard on outlining patterns of dialogue, which is where we plan to put of our focus into. A small group of people have joined our mailing list and IRC channel over the past few weeks, where some conversations have occurred. After reading through Brasten’s post, I believe that our IRC conversation last week was a good example of how people with different ideas about something… can come together and have a shared understanding, which is exactly what Dialogue-Driven Development is about.

Through shared understanding, we can accomplish so much more.

“In true dialogue, both sides are willing to change.” —Thich Nhat Hanh

Thanks to the hard work of Brian Ford, we now have a website to announce, which will be the portal to various conversations, patterns, and resources related to Dialogue-Driven Development.

http://www.dialogue-driven.org

In California, for Rails Seminar

October 02, 2006

Sitting in my hotel room in downtown San Francisco, CA. Mr. London himself, James Adam (of Rails Engine fame)… and I have been spending some time wandering around the area, which is where I grew up. We ventured over to Berkeley and down the coast to Santa Cruz yesterday. :-)

California
Coast

James

We then took the Cable Car late last night…

James on the Cable
Car

…and had food with almost too much garlic.

James and the Stinking
Rose

Today, we’re heading down to Santa Clara, CA to check-in at AjaxWorld Conference and Expo, where we will both be speaking tomorrow at their Ruby on Rails seminar.

Congrats to Steven Baker…who got married this weekend! He’ll be meeting us in Santa Clara later and speaking tomorrow as well.

If you’re going to be at the conference, be sure to introduce yourself. :-)

Project Enlightenment with d3

September 27, 2006

What do we mean exactly when we say that we want to participate in thoughtful dialogue in a project? What is our intention with this? When I recently came across some essays by David Gurteen and read his definition of dialogue as being “a disciplined form of conversation” it got me thinking about how we often forget that like all skills, practice makes perfect. What make our conversations discilplined in the first place? Based on my experience, dialogue (disciplined conversation) manifests when all participants in a conversation are practicing mindfulness. I don’t believe that most people learn or behave well by being beaten into submission, so we must come to an understanding while we actively involve ourselves in dialogue. Most of us are civil towards one another, which does wonders for allowing us to tolerate each other, but I still can’t help but feel that we’re still missing the mark when it comes to having consistent and thoughtful dialogue.

Over the past several months, our team has been spending quite a bit of time and energy analyzing these problems. What we really starting to uncover is that the real problem seems to exist somewhere outside of our development methodologies. Working under the Agile umbrella provides no silver bullet. The real issues seem to exist much deeper in our human nature.

We’re not all that great at communicating

Humans are not perfect… therefore… our ideas are probably far from perfect as well. Our thoughts aren’t perfect. Our interactions aren’t perfect. We’re consistently inconsistent (heh) and while we can rely on averages to some extent to calculate probabilities, we can’t always explain why somethings still go horribly wrong. The principles outlines in the Agile manifesto stress the importance of focusing on people not processes and responding to change. If we are to put a heavy focus on the people involved in projects, we must acknowledge our strengths and weaknesses and find innovative ways to improve our communication skills.

On a daily basis, we’re faced with complex problems. Hopefully, we’re using a lot of our prior experience to aid us in making rational decisions about how we respond to them. There is a lot that goes through each decision that we make. We can’t automate this process (yet), but we can definitely share our lessons with one another. Our intentions need to be thoughtful and empathetic to the needs of all parties affected by each decision. As humans, we have the opportunity to really listen to the concerns of others and use not only our logical intelligence… but also our emotional intelligence.

Much of this comes down to each of us learning to understand how we make decisions and interact with people. It’s our goal with Dialogue-Driven Development that with your help, we’ll be able to outline patterns of dialogue, which we hope will be of great value to the community. Our team has been analyzing our interaction with clients and discussing what has worked well and what hasn’t. How did our clients respond to approach X versus Y? It’s important that we capture this information and have conversations about the results.

“The meaning is what holds it [dialogue] together. ..Meaning is not static – it is flowing. And if we have the meaning being shared, then it is flowing among us; it holds the group together…in that way we can talk together coherently and think together.” - David Bohm

Doesn’t that sound beautiful? Who wouldn’t want to reach such levels of project enlightenment?

d3 aims to be to communication what BDD is to specification

While at RailsConf Europe, I had the privilege to speak with several Rail developers… several of which are doing contract development for several clients, just like our team. We discussed d3 for a while and I walked away feeling really excited about the whole concept. When I explained that our team didn’t see d3 as a replacement for Agile methodologies like Scrum, XP, etc… but as another tool in our tool belt. Dialogue between developers, clients, and users should be agnostic about particular methodologies. We’re really excited about Behavior-Driven Development as a best practice in our development process and we’re seeing Dialogue-Driven Development as another best practice that we start using from the initial point of contact with a potential client to long after we deliver the working product that we were contracted to develop.

We’ll be posting some fun announcements about the d3 project in the coming week(s). Stay tuned…

Rails is not about inventing your own style

September 26, 2006

I meant to post this list of quotes I was compiling while at RailsConf Europe 2006, but never got a chance to do so.

“This is definitely the first time that I have eaten pizza while walking in the rain.” - David Black

IMG_1457.jpg{width=”240” height=”186”}

“Rails is not about inventing your own style.” -DHH

IMG_1452.jpg{width=”240” height=”133”}

“Nobody is passionate about something that they suck at.” - Kathy Sierra

“But it’s not about the tools you build, it’s about what your users do with them.” - Kathy Sierra

“What can you help your own users kick ass at?” - Kathy Sierra

“Talk to the brain not the mind.” - Kathy Sierra

IMG_1448.jpg{width=”240” height=”180”}

“My computer might be at risk. Well, oh well. Life on the edge.” - David Black

IMG_1501.jpg{width=”240” height=”139”}

Jonathan Lim also posted a few on his blog as well.

Rails Hosting with Resource Limits

September 25, 2006

Over the past several weeks, David and Daniel have been working to make our Ruby on Rails hosting options even more streamlined. We’ve been aiming to implement new resource limits on all of our servers.

For example, did you know that when you purchase a Business Level 1 account with us (starting at only $75/month), you’re getting 196 MB of resident memory and 368 MB of virtual memory? The great part about this? You don’t have to configure and manage the server yourself… we do it for you!

If you’re shopping for some hosting… you might take a quick peak at our Rails Business Hosting packages.

..and yes, our standard hosting plans have resource limits too! We hope this will cut down on the noise that you hear from your neighbors.

Question: Scouting new mobile service

September 25, 2006

During my recent trip to London, I plugged my mobile phone charger into my UK power adapter and it blew the charger… leaving me across the world with no charger for my phone. It didn’t matter much because I couldn’t get coverage with my service with Verizon Wireless. My second two-year contract with them came up a few months ago… so I am now considering leaving them for something else. After four years… I would grade them a B+. I’ve always liked their web tools and since all of my close family and girlfriends family has used Verizon… the in-network calls have always been free. The coverage is generally good within the states… however, lack of international plans doesn’t work out well with my recent and upcoming travel plans for work. Also, I need to sneak my way over to the Nokia phones as one of our projects requires that it work with opera mini and the mobile version of mozilla. So… I’d like to test the application first hand. ;-)

Since you have all been so helpful in the past with open questions… who do you have mobile service through?

I would like to get the following:

  • java-enabled for mini opera, ssh client!, etc…
  • camera-not-so-important but useful
  • bluetooth for getting an internet connection and sharing to my
laptop while on the road
  • lots of text messaging/email (server notices…)
  • ability to use phone internationally
  • wifi?

Who do you use and why do you like them (or not)?

Thanks!

Matz on Considering Interface

September 25, 2006

…back in Portland after being in London and New York City for the past two weeks. It’s nice to be home. :-)

I came across this interview with Matz earlier today. It was published almost three years ago (pre-Rails)… I’m quite intrigued by what he is advocating here…

Bill Venners: You also mentioned in your ten top tips: “Be nice to others. Consider interface first: man-to-man, man-to-machine, and machine-to-machine. And again remember the human factor is important.” What do you mean by, “consider interface first?”

Yukihiro Matsumoto: Interface is everything that we see as a user. If my computer is doing very complex things inside, but that complexity doesn’t show up on the surface, I don’t care. I don’t care if the computer works hard on the inside or not. I just want the right result presented in a good manner. So that means the interface is everything, for a plain computer user at least, when they are using a computer. That’s why we need to focus on interface.

Some software people—like weather forecasters, the number crunchers—feel that the inside matters most, but they are a very limited field of computer science. Most programmers need to focus on the surface, the interface, because that’s the most important thing.

Bill Venners: You also mentioned machine-to-machine interfaces, so are you just talking about interfaces for users or also for machines?

Yukihiro Matsumoto: It’s not just user interfaces. When machines are talking to each other via a protocol, they don’t care how the other is implemented on the inside. The important thing is the proper output getting passed correctly via the proper protocol. That’s what matters.

If you have a good interface on your system, and a budget of money and time, you can work on your system. If your system has bugs or is too slow, you can improve it. But if your system has a bad interface, you basically have nothing. It won’t matter if it is a work of the highest craftsmanship on the inside. If your system has a bad interface, no one will use it. So the interface or surface of the system, whether to users or other machines, is very important.

One of things that we’re really advocating with Dialogue-Driven Development is artifact generation. Wireframes and lightweight prototypes are great for generating constructive dialogue between clients, users, and our team. We should make sure that we understand why and how users will use an interface before we worry about the code that will drive it. Too often we fall into a pattern of thinking where we’re convinced that we can build an agnostic application that has various interfaces to a central repository of business logic and data. While we strive for this during development, it really should be focused on after some initial interaction design has been planned. Of course, this is my opinion.

So, I must ask you. When you’re working with on a new project, do you focus on interface or code implementation first?

Luigi has a secret

September 20, 2006

I’m in New York City this week working with one of our clients… and a little birdie told me that the PLANET ARGON team in Portland is preparing a formal announcement in the coming week(s)…

..the informal announcement?

Dedicated servers for hosting your Rails applications! …yeah it’s about time. ;-)

Contact us for more details. Tell them that Luigi sent you.

RailsConf Europe, day zero

September 13, 2006

Arrived in London yesterday after ~13 hours of flying from Portland to Chicago to London. It seems that sleeping on planes (or trains) is not something that my body does well… so I am pretty tired. That mixed with general jet lag due to an eight hour time zone change… my body is feeling pretty confused. In fact, I am typing this from my hotel lobby at 5am.

Yesterday, I was wandering around London, seeking a new UK/US power adapter (thought I blew the one that I brought… long story) and was taking a picture, when I heard a familiar voice say, “Robby?” Go figure… travel across the world and some Canadian (david goodlad) spots you in downtown London. He was walking with Luke Redpath and Jarkko Laine to PizzaOnRails. It’s a good thing that I bumped into them because I thought it was in the complete opposite direction!

Here are a few pictures that I snapped…

David
Goodlad{width=”240” height=”160”}

Jarkko takes
pictures{width=”240” height=”160”}

The pictures that I took at the pizza & beer party didn’t come out so well… but here is one of James Adam. I was really looking forward to getting to spend some time with him again. We’re both speaking at the Ruby on Rails Seminar in California in a few weeks as well. That’ll make four conferences in six months that we’ve both been to together. :-)

James
Adam{width=”180” height=”240”}

Thanks again to everyone who has sent me links to veggie-friendly places to eat at in London.

Quotes from RailsConf Europe

The only one worth mentioning so far was…

“This is definitely the first time that I have eaten pizza while walking in the rain.” -drblack

Buzz in the Rails community

  • The RadRails guys are up to no good. Kyle
Shank gave us a quick overview of a Rails project that they are
working on called HedgeHog. The project is definitely something that
I'll be looking forward to trying when it's available. :-)
```text
-   Everybody is extremely *busy* with client work. By the way, [we are
```text
hiring](http://www.planetargon.com/jobs.html).
```text
-   A Dublin Ruby User Group is in the works... would they be called
```text
DRUG? ;-)
```text
-   Everybody is really excited about
```text
[BDD](http://behaviour-driven.org/)!

I’ll try to post entries throughout the day and will be taking lots of notes today.

If you’re in London for RailsConf Europe, stop by #railsconf on freenode.

Cheers!

Using Gravatar

September 12, 2006

In the past few days… a few people have asked how people include their picture when they post their comment.

The answer? They are using Gravatar, which many blogs will automatically try to find your avatar for and display next to your comments.

I’m also looking to modify typo to try look your icon up from flickr too.

The Technology of Dialogue

September 12, 2006

In the essay, Dialogue and Organizational Transformation, Glenna Gerard and Linda Teurfs outline the the building blocks of THE TECHNOLOGY OF DIALOGUE, which they suggests consists of:

  • Suspension of Judgment
  • Identification of Assumptions
  • Listening
  • Inquiry and Reflection

What makes dialogue different than conversation? According to David Gurteen, “dialogue is a disciplined form of conversation.”

Gurteen says that within dialogue[^1^](#fn1){#fnref1 .footnote-ref role=”doc-noteref”}:

  • You prefer a certain position but do not cling to it.
  • You are ready to listen to others.
  • Your mindset is not one of ‘convincing others that your way is
right' but of asking what you can learn from them.
```text
-   It is recognizing that other people's input will help you refine
```text
your own ideas or reveal your misconceptions.
```text
-   It is not argument or debate. It is not win-lose. In dialogue all
```text
sides win by coming up with a more appropriate solution than a
single person could ever have. It is win-win.
```ruby
When we first introduced Dialogue-Driven Development, Ryan Allen
[responded with a brief
overview](http://www.robbyonrails.com/articles/2006/08/02/dialogue-driven-development#comment-21737)
of how you might go about defining a *failed project*. His first bullet
was, *"Miscommunication can lead to the implementation of the wrong
solutions."*

It is our opinion that many of the problems that lead to *failed
projects* can be solved through consistent and cooperative discourse.
Much of this relies on each of us taking ownership of our commitment to
encouraging healthy collaboration between developers, clients, and
users.

Wikipedia [currently describes
dialogue](http://en.wikipedia.org/wiki/Dialogue) as, *"a reciprocal
conversation between two or more persons."*

### Question

What are some of the obstacles that you face when interacting with a
diverse set of developers, clients, and users?

------------------------------------------------------------------------

1.  ::: {#fn1}
```yaml
[The Discipline of Dialogue by David
Gurteen](http://www.gurteen.com/gurteen/gurteen.nsf/id/km-dialogue)[↩︎](#fnref1){.footnote-back
role="doc-backlink"}
:::