Posts Tagged ‘Ruby on Rails’

Quick Rant on the word Agile

Wednesday, January 16th, 2008

Free Image Hosting at allyoucanupload.com

You keep using that word. I do not think it means what you think it means.

- Inigo Montoya, in The Princess Bride

The word agile, I fear, has lost its meaning. Originally it referred to a specific practice of software development, that contrasted itself with the Waterfall model of development.

Under Waterfall dev, you spend elaborate amounts of time up front, building 50+ page design documents, wire-framing, etc.

Perhaps I’m so far removed from Fortune 500 companies and non web-based applications, that I’m missing the forest for the trees here.

No one I know does Waterfall style development anymore. Getting Real is pretty much the new manifesto for how its done these days.

So now when I hear the word agile, my eyes tend to glaze over.

After all, if you’re not agile, what exactly are you trying to be?

Here are some antonyms for the word agile that I found online:

brittle, clumsy, stiff, inactive, unintelligent & stupid

Via synonym.com and answers.com.

After all, can you really hear someone saying something like?:

We prefer to be less nimble. For each iteration, it is our goal to have to refactor as much code as possible. Be like the Elephant, not the Cheetah — that’s our development philosophy.

No, of course not. Everyone thinks they are “agile“.

Ingenious Marketing Strategy: “Building a .com in 24 Hours”

Wednesday, January 9th, 2008

Dominiek outlines how he Built a .com in 24 Hour in this excellent writeup on the making of Wigitize.

As readers of this blog no doubt know, I’m a huge rapid application development fanboy.

I’ve blogged briefly about this before, but in early december I developed apps at the clip of about 1 per day for a week. Later I went back and put some polish on them, but it’s motivating to be able to see the finish line within 10-12 hours.

The genius of Dominiek’s strategy was to thoroughly blog the process. I will go ahead and call Bull$hit that he both: 1) created the app (including his slick photoshop designs, etc), setup the server, deployed it and documented the entire process, all in the course of a single day. In 2-3 working days (or ~ 24 hours non-stop), perhaps, sure, I’ll give him that.

The reason I can say that is because documenting things well (like he’s done) can be even more time consuming than writing the actual code. Still, not taking away anything from his accomplishment — it’s a major coup.

When I have the time, I’d love to do an app a day for a whole month, blogging the entire process & releasing much of the code as open source. From my experience though, it would have to be 1 app per day + 1 day to document the process nicely.

The Benefits of Releasing Software as Open Source

Friday, January 4th, 2008

Just came across this post which talks about automating Facebook interaction to perform a request in a Facebook app.

Their ruby code is here (much of it based originally off mine — which is so cool).

For the longest time I didn’t get open source… why anyone would give away their hard-earned time (in the form of code) to everyone else.

It’s not some hippie thing though. The benefits are:

* expands your “street cred” in the community
* allows other people to enhance what you’ve done, and possibly, contribute back to the project
* fosters even more giving back by growing pie — it’s not a zero-sum game, as many would believe

In my case, I’ve almost always already written the software that becomes open source. Without releasing it, the code would simply rot on the vine. Usually within 2-3 hours (though I’m getting better), I can have the code cleaned up, tests added (if applicable) and released as an open source project.

The original Facebook automation article is here: HOW TO: Automate Facebook Interaction using Ruby and WWW::Mechanize.

More recent open source work: Sexy Temp Passwords (rails plugin), Dynamic File Store (rails plugin), and The Hydra Project.

Thoughts on “Rails is a Ghetto”

Monday, December 31st, 2007

I won’t link to the article, but recently a very popular and well-respected member of the rails community wrote some scathing stuff about some members of the community, pretty much lambasting the entire RoR crowd in one fell swoop.

If this person’s blog had “Enterprise Java Architect” plastered across the top of it (and was not a well-known ruby contributor), then I’d probably be here ripping him to shreds. Actually, I’d probably be here just ignoring that kind of rant…

I’ve blogged before about the ability to take criticism well. Unfounded, meritless attacks are one thing. But if the criticism points out some flaws that are recognizable, I’m more than willing to take a good hard look. Won’t necessarily agree with the critics or feedback all the time, but it’s worth at least getting, to see how other people perceive you / your abilities / etc.

That’s how I would view this attack on some members of the community. He backs much of what he says up with IRC logs. Some of them, if true, are indeed astounding. i.e. the fact that a, how shall we say, major RoR operation had to restart their app server 400 times a day. Who knows if this was an exaggeration, or later turned out to be due to hardware failure (it happens).

On Consulting

It’s this persons right, but he basically called almost all of his consulting clients “morons” or some such. His reasoning was that he had a business degree as well, and obviously a high sense of self-worth & belief in his ideas, etc.

This person should clearly not be doing consulting. He made some pretty major mistakes, i.e.:

1. Not getting a percentage paid up front (i.e. minimum 30% of some X amount)

2. Kept working on projects even though he wasn’t getting paid (similar to #1)

3. Allowed his clients to pay him NET-30 (turned into NET-60)

You have to be pretty firm as a consultant or clients will try and walk all over you. On several occasions, I’ve had the opportunity to glance at client’s bank accounts just to ensure A) they had a viable balance, or B) they indeed were sending me a check via their bank’s check mailing system.

In these cases, I didn’t ask this but the clients offered this to me as an assurance that they were the real deal.

For every 1 paying client, you get 4-5 people who want you to work equity-only, so often the lines are blurry.

Do Most of Us Get it Wrong?

Statistically speaking, most of said rant author’s clients probably will fail. But at least these clients are taking chances by starting “some silly social network.” BTW - has he heard of silly social networks like Bebo who targeted the UK market (even while MySpce dominated here) and is now valued at hundreds of millions?

Or perhaps Digg, which was built by a php contractor for ~ $2,000 paid for out of Kevin Rose’s retirement savings. This ruby contributor (god bless his contributions, which my apps use daily) would probably have scoffed at Rose’s idea for “yet another” social bookmarking site.

Small sample sizes indeed, not scientifically indicative, but if all of these client ideas are stupid, then sites like Digg, Bebo, etc. would never have broken through.

Extraction of Sunk Labor Cost Value Through 60+ Hour Weeks

The rant author then goes on to post this gem, which I could finally get behind (company name removed so as to not run their name through the mud via hearsay):

Because ******** pays these people a salary that is fixed and considered a sunk cost. If they pay someone 60k/year and that person works 40 hours/week then they are paying them about $29/hour. If they convince this idiot to work 60 hours/week then they are basically paying the moron $19/hour. If they can push them to 80 hour/week then these idiots are actually making $14/hour. You can make $29/hour managing a fast food joint.

The further and harder ******* (or any consulting firm) pushes its employees the more money they make because then they charge the client for each fucking hour. Get it? If they push an employee to 60/week they not only reduce the cost of that employee but also increase the billable hours. Hell, even if they don’t charge for those hours they still make more money just by reducing costs.

Okay, but that could be said of any company that hires someone on salary but then pushes them to work so many more hours each week.

I’ve had occasion to work with people who seem to value hours spent in the office as opposed to actual productivity.

They basically come across as having the Jesus Complex, i.e. “they died in the office for our sins.”

Here were some of the things that were slightly annoying about this mentality:

1. You could, literally, get as much done in 20% of the time (or 5x as much for the day), but if you didn’t work 10 hours that day you still looked like a slacker.

2. Working from home is not allowed. Lord knows, people might *goof off* at home (or run errands) in between checking in code. Because no one ever surfs Google Reader, Digg or their favorite sites in the office.

3. Were not accustomed to using a Changeset viewer to see exactly what everyone is working on each day.

4. Changeset viewers would make it trivial, for example, to see if someone indeed produced many multiples of quality output as someone else.

5. Would spend 20+ hours setting up their favorite version control / ticket system, when Unfuddle and friends would be ready to go in 5 minutes worth of setup.

6. Would create new projects (not optimizations) that could take days to implement (not to mention maintain), when leasing an additional server @ $125 per month would solve the problem equally (if not better) as well.

This is not directed at anyone individually, but rather that kind of mentality that values “looking like you’re working hard” vs. actual quality output.

Under Pressure

I’ve had to deal with a pressure cooker situation before, where this statement from our rant author rang a bell:

I saw them pull passive aggressive shit like picking on a single employee high-school-nerd-vs-jock style until he conforms or quits.

In my case, I got the heat because of my speaking up about the diminishing (then negative) returns of pushing devs in 60, 70+ hour weeks. Then eventually walking out one evening when my feelings on the matter weren’t being heard.

If you’re treated like this, it probably is a good idea to just walk out or somehow or another assert your value. If you’re normally a rockstar but are farting along, checking in crap code, while you see your fellow devs checking Facebook stats every 5 minutes in between GReader sessions, then you know that nobody is really getting much done but is rather just putting in face time…

All in all, that experience was a learning one, and it was more about miscommunication, middlemen / managers, etc. than anything.

Rant Repercussions?

Will this developer’s rant have repercussions beyond the ruby world? Perhaps — this could end up all over Digg, programming.reddit.com, etc.

I say that’s great though. If the RoR community can’t take criticism, then it will never actually evolve or learn to take a good hard look at itself in the mirror.


Shanti A. Braford blogs here.

If you really want to know, just read this.



  

Powered by FeedBlitz