|« May 2005||July 2005 »|
I'm Ryan Lowe, a Software Engineering graduate living in Ottawa, Canada. I like agile software development and Ruby on Rails.
I write this blog in Canadian English and don't use a spell checker. Typos happen.
» Full-time Ruby on Rails freelancer
» Full-time with Rails since May 2005
» Former committer for RadRails (now Aptana)
» I also have a few Rails side-projects in development:
1. wheretogoinTO.com Toronto nightlife
2. Hey Heads Up! TODO list and sharing
3. Layered Genealogy family history research
4. foos for foosball scoring
5. fanconcert for music fans (on hold)
Hiring Rails developers? I can telecommute by the hour from Ottawa, Canada
»» Email: rails AT ryanlowe DOT ca
Now hosted on Hey! Heads Up -- check it out!
Derek Lowe's (Ryan's older brother) words at Ryan's funeral
firstname.lastname@example.org no more
Forging Email Headers: Good, Bad or Ugly?
Sarcastic Dictionary (Part 1 of Many)
Twisting Rails is Risky Business
Risky Business? My Take on Early Alphas
Whoa, it's August 2007
A Postscript to "Growth at the grassroots"
»» All Blog Posts
David Heinemeier Hansson
James Duncan Davidson
Signal vs. Noise
Amy Hoy: (24)slash7
Luis de la Rosa
# Complicated is Not Even Worth Attempting
I've told a few of you about the idea I'm working on these days and gotten some great feedback. I'm not willing to talk about the idea here, mostly because I don't want someone else to pick it up and run with it.
I think the broad idea is good but the implementation ideas I've come up with so far are too complicated. All of the great websites out there are great because they are simple. Complicated is not only bad, it's not even worth attempting.
So I'm stimulating my creative juices, I'm elaborating on a domain model, I'm going sky high and into the fine details. All of these views are giving me different perspectives on the same problem. In turn they also give me ideas about how to simplify the implementation.
Being creative is actually hard work, especially with just one person. That's why I try to bounce my ideas off of as many friends and family members as I can. A different perspective for brainstorming is invaluable.
As for my own creativity, I've found that it's much easier to be creative when I start with a blank mind. For example, I might take a walk around Dow's Lake, which takes about an hour. For about the first half of the walk I don't think about anything. Around the middle I start thinking about a tough problem I was confronted with and the ideas seem to flow much more easily.
I'm also trying to figure out what my users want. Oh, what folly. How can I possibly guess what my users will want? I think I can get about 25% of it right, mostly because I'd be a user myself. The end-user problems I'm having are probably going to be similar to problems that other people are having.
That's good enough for the first few iterations until deployment -- bootstrapping. The real power will be taking feedback from users -- their creativity and ideas -- and organizing and prioritizing the feedback for future iterations. The creativity becomes a collective thing instead of a singular thing and the project rides the feedback wave.
# Eclipse Foundation Looking for Evangelist
Those are some interesting job duties. It's unfortunate that software development is not part of the job description. I think it might be very valuable for an evangelist to be working on an open source Eclipse plugin or Rich Client Platform project 5-10 hours a week while they write about the platform. James Robertson does a great job evangelizing the Smalltalk platform and Cincom, mostly because he's using the Smalltalk language/platform to write real applications. That makes him credible.
Not only would a project give the evangelist invaluable experience with the Eclipse platform and something to blog about but it would also help them sympathize with developers, the exact people they are evangelizing to. It would put the evangelist on equal footing with other developers -- the evangelist wouldn't just be some suit telling me to use a platform because of x,y and z.
Blogging is all about credibility -- fewer people are going to read a fluff blog from an evangelist that sounds like a marketing "drone" and is not actually using the platform in production anywhere. People will see right through that and dismiss it.
I don't mean to pick on Robert Scoble but the fact that he's not in the developer trenches is sometimes a disadvantage for him. He often has useful insights but other times his lack of knowledge in certain technical areas is obvious. I like Scoble's blog but he's a different kind of evangelist than what the Eclipse Foundation is looking for, I think.
Eclipse is a developer platform and not a bunch of end-user products like Microsoft's. The Eclipse Foundation may be best served by an evangelist that is a developer working on a real Eclipse-based product ... and this evangelist could be given time to work on this product as part of his job, since it enhances his overall credibility.
Update 3:33PM James Robertson agrees with me and reinforces the point.
 Why an open source project? A few reasons: It's a lot easier to blog about a project if you don't have to worry about licensing issues or revealing too much detail of a closed-source project. Other people can check out the code to see how good of a programmer you are (credibility). The developer/evangelist can reuse the project code in tutorials, presentations, etc. Other people can reuse the project's code in their own projects if it is released under an EPL or BSD-style open source license, like the Eclipse platform itself.
# Lunch with the Eclipse Foundation
We talked mostly about blogging and Eclipse. I think the Eclipse Foundation is taking some very positive steps by adopting blogging -- it can only broaden the Eclipse community and enhance Eclipse's value to everyone.
A lot of community involvement can also further separate the Eclipse Foundation from IBM. There's obviously nothing wrong with being associated with Big Blue but I've been reading that many people have the opinion that IBM still has a lot of influence over Eclipse. It seems as though the Eclipse Foundation is trying very hard to distance themselves from IBM for this reason.
Even if IBM's power over Eclipse is not the reality it's a perception that hurts Eclipse. That perception could change if the Eclipse Foundation was seen as a more personable and open organization than a company the size of IBM.
Blogging could open up the Eclipse Foundation and give it a much different feel as an organization and therefor a much different public perception. Other communication tools and further process transparency could have the same effect.
In other very good news: Denis mentioned that search engines like Google can index the newsgroup and mailing list archives, which is fantastic. There's a lot of great content in there -- and now people will be able to find it quickly and easily.
# Rambling About Creativity
The front page of my blog is starting to disappear so it's about time for another rambling software rant. Let's see, where can we start today? There's been quite a lot on my mind recently...
Ahh, research: The R in R&D. D being development, natch. Here we talk about software development since I refer to myself as a software developer and not a software engineer (no P.Eng. yet). But I disgress...
Software research. A bunch of architecture astronauts sitting in their offices cooking up elaborately abstracted diagrams? Maybe. Maybe it's just two guys working in their garage. Maybe it's just one guy with a pen and a beer napkin ... six beers later.
Doesn't really matter. It's an idea. Taking that idea from R to D means... time, money, effort, coffee? In the software world, three out of four ain't bad. How about discipline? Self-motivation? A killer instinct? Hmmm, I'm not sure.
Definitely takes time and it takes some planning. Planning is part of the "research". You don't just make the first finish line, you plan many. And you plan how to get from one to the next -- adjusting each plan as you progress. That seems reasonable enough to me, sure.
But software just doesn't like to be worked around this way very much. Software is a bunch of 1's and 0's ... easy to generate and reproduce but difficult to arrange "properly" and even harder to successively rearrange.
Research ... ahh, sitting in an ivory tower speculating what people want. It's an interesting academic exercise. Idea. Marketing analysis. Risk analysis. Business plan. Boom, boom, boom, done. Well, that much. Next!
Venture capital, hiring blitz, cubicle farm, casual Fridays and maybe, maybe ... a yearly golf tournament. Complimentary swag apparel. Working 2 actual hours in an 8 hour day, the same amount of time you commute. Heartburn.
...wow, nice tangent.
Oh right, research. An art form. Creativity cannot be scheduled from 9 to 5. Problems with infinite solutions require creativity to hone in on a single one. Otherwise all solutions can still be considered, and they probably shouldn't be.
If the problem is not difficult then a computer can do it. Difficult stuff is the vast majority of the programming out there. Humans are still good for something: their artistic creativity. Their limitless minds.
Consider that a single problem has an infinite solution set, where each solution in that set is a piece of software that solves the problem. Now consider an infinite set of problems requiring software solutions. That's an awful lot of software. That was also awfully wordy, wasn't it?
That's also a lot of required creativity. People thinking out of the box. People thinking inside existing boxes and stretching them. People expanding the possibilities of software beyond our current understanding. Is that research, or just the mother of all invention?
Creativity then, in software, is necessary. Not just to create new solutions but to hook together existing abstraction boxes together. Creativity takes a problem and figures out a solution. Not by imposing the solution on the problem, or by making one solution stretch to solve many problems poorly because it is economical. No.
Software -- arrangements of bytes -- is as unlimited as combinations of beats and music notes, or yards of canvas and oil-based paint. It's an infinite universe. To deny an infinite universe creativity is a shame. Which makes me wonder -- why isn't creativity part of our software education?
Why don't we all try to enhance our creativity?
The reason is too simple to ignore: software, like music and art, is a business and software has long been though of as a widget ... but that is changing.
There's a new trend, enabled by the Internet, and it's a very interesting one: software is diverging away from other creative forms like visual art and music. Software is a living, breathing creative piece of art. It's an organism. It has a lifespan. It has a physical form that supports it's functions. It requires energy to move and operate. It requires sustenance, grooming, regular maintenance. It defecates bytes everywhere that must be cleaned up, organized, analyzed.
Better yet, we get to play God with our organisms. We control their creation and evolution: how the software adapts to its environment. We respond to defects in the software's genetic code with fixes ...
... oh analogies. Software people especially really like using them but they only go so far. But it does illustrate a point: out of all of the art forms we currently recognize none have evolutionary lifetimes. Traditional art is like a time capsule as if being a time capsule was its ultimate purpose. The art is an expression of the time it was created.
But software is functional art, functional creativity. Once its function is no longer needed, the art is probably no longer appreciated. Maybe it evolves, maybe it is replaced by another more effective organism. But we don't hang it on a wall in a museum. We sometimes playback old software like Beatles records for nostalgia, but ... deep down we know it's obsolete.
Is there any doubt that people will be listening to the Beatles for hundreds of years? People will still appreciate the Mona Lisa then as well. Do you think they will still be playing Pong or even Doom or Quake? Do you think they will marvel at Lotus 1-2-3 or Microsoft Outlook?
Maybe not. But it doesn't make this art form any less creative. It's living art, living creativity.