Immature developer attitudes revealed in flames regarding CDBaby

23 09 2007

Derek Sivers of CDBaby kicks ass. He got a sophisticated and very very user-friendly, efficient, straightforward e-commerce system (including the back-end systems) written in PHP. Based on what I’ve read, he’s up there with Phil Greenspun in my opinion; that is, he’s among those who understand strategy and customer service and low-level technology and are able to build systems that don’t suck, resisting the temptation to be distracted by technological panaceas and fads. I may disagree with their individual technology decisions, but their higher-level thinking is excellent, so they’re definitely in the class of people who I’ll give the benefit of the doubt.

So when I read 7 reasons I switched back to PHP after 2 years on Rails I was a bit surprised, but not much. He’s experienced with PHP (he says he’s written 90,000 lines of code for CDBaby!), and has a huge installed base of code he wrote and understands intimately. He tried Rails, it didn’t work the way he wanted, and he went back to PHP. It was immediately obvious to him that this was what he should continue using.

The most shrill and arrogant among the Rails community have been rather unkind, partly due to this rather poorly written Slashdot headline that misrepresents what Derek says in his article.
Read the rest of this entry »



Prefactoring

18 05 2007

I have a text file full of links and notes extracted from about a month of reading everything posted to the 2 dozen Ruby, Rails, Postgres, and web tech blogs that I subscribe to via RSS. There’s so much going on in Ruby and Rails in particular, especially when it comes to convenient shortcuts that save you work, that there’s something new and cool and slightly revolutionary on a daily basis that you could use to make your app prettier.

So I’ve been in a state of analysis paralysis for about a week.

I was trying so hard to be clever and state of the art that I forgot to get something working.
Read the rest of this entry »



Ad Hoc Software Planning with Graphviz

19 03 2007

I’ve been playing around with Graphviz this weekend. I first used it a few years ago with a Perl script that sorta kinda knew Cold Fusion and JavaScript syntax and could output the Graphviz .dot file format, as a means of visualizing all the dependencies between source code files in a project with no compilation phase and no automated tests. It helped me answer a few questions that I had about the code: What should I write tests for first? What should I leave alone, because breaking it breaks a bunch of pages? What pages do I need to test in order to make sure that changes to a deeply-buried chunk of included code didn’t break anything? Having a simple tool that draws graphs of nodes in a fairly clean form can be really useful.
Read the rest of this entry »



HTML Wireframes vs. Wireframe Drawings

25 02 2007

Related to Rapid Application Development vs. Big Design Up Front is the question of what exact format the UI design work should be done in.

This is more important than user stories vs. use cases, class diagrams vs. ERDs and other such decisions, because UI design artifacts are the most user-accessible artifacts. That means they’re probably the only ones you’re actually going to be able to get users to look at. Try emailing a CFO a 100-page Word doc full of use cases sometime, if you don’t believe me. Then sit that same CFO down in front of Excel and ask for a rundown of their least favorite Excel features. Big difference!
Read the rest of this entry »



Tips for Offshoring

20 02 2007

Having just read Why you need to get rid of your freelance developer ASAP, and the comments under it, I can see that people are really clueless about offshoring. It’s a magic box that you put pennies in, and great code comes out a few weeks later!

Having worked for a few companies that sold themselves as “a magic box that you put millions of dollars into, and great code comes out a few weeks later”, I know that this is a serious misconception. Subcontracting is fraught with peril. Offshore subcontracting is fraught with more peril, but it costs less per hour. In both cases, the peril is avoidable, but avoiding it requires that you manage the relationship carefully.

I’ve worked with offshore teams on a couple of occasions, and in one case I was fortunate enough to get sent overseas to work with the team in their own offices. I think I probably have more direct experience with offshoring than most developers or technical project managers, and I’ve seen how offshored projects can go awry, so I thought I’d share some tips for those of you considering offshoring a software project, or those involved with such a situation already.
Read the rest of this entry »