A prospective client recently asked this in regards to a proposed build for their startup. I know an accountant who would say, “it depends,” although he says that in response to just about any question. Unfortunately, there’s not a formula for post-construction software value as you might have with a house. With a house, you can generally assume that $X in lumber and $Y and labor multiplied by some kind of “neighborhood value multiplier” results in a rough estimate of a home’s value.
Tim Bray’s post on how enterprise systems are “Doing it Wrong” just triggered a realization for me. This whole agile vs. whatever debate has been a kind of red herring for a much larger argument about how businesses themselves ought to operate. I’ve seen large companies adopt agile methodologies, and they don’t magically transform as a result. Something of the earlier culture persists, and the tendency to overplan, overbuild and generally waste tons and tons of money continues.
Lots of people seem to have been inspired by Tim Bray’s Doing it Wrong post just like I was. There’s a great response on rc3.org titled “Do you want to be in the software business?” that expresses a lot of the same issues I raised in The Ruby on Rails CMS Dilemma. The gist of the post is that you shouldn’t commission custom development unless you’re going to be “in the software business”.
I’ve just completed my Rails Rumble contest entry for this year. I took a very focused project, and built it as a single solo developer. I’m extremely pleased with the way it turned out. The site was inspired by a recent post over at kottke.org about “The Steve Ward” diet (see Kottke’s source article from Philip Greenspun, it’s a good read… and not actually about dieting). After reading about this simple diet strategy (it’s nothing more than a graph paper of your daily weight), I decided to try it for myself; it works.
Apple’s iPhone 3Gs has had a bit of a muted–dare I say disappointing–reception. Unlike with the 3G launch, very few of the new OS 3.0 features depend on the 3Gs model, and for most iPhone users (for me at least), there aren’t compelling reasons to upgrade. None of that matters, though. Apple’s going to make far more money for another reason: they didn’t discontinue sales of the regular iPhone 3G. Through AT&T subsidies, you can now get an iPhone 3G for $99.
Say you have a database table which contains an integer sort order column, but it’s incorrect. Perhaps you forgot to sort before creating the records. Let’s say you have another column which, when sorted, would produce the correct order. You can use that column to fix the sort order column in pure SQL. Here’s an example using the MODX CMS, which has a menuindex column (the sorting column), and a pagetitle column.
Working on a deep-dive Drupal rescue project, we encountered an enormous mess of modules, and needed to know which of those modules were related to Ubercart checkout features. drush eval 'print_r(module_implements("uc_payment_gateway_charge"));' On a related note, the full list of available Ubercart hooks is here.
This is one of my own personal Git FAQs. Here’s the scenario: You’ve created a topic branch of new code, and done all the work required to complete the feature. But before you can merge it back into the main tree, you get assigned to some new work, and the branch sits dormant for several days. Now the time has come to merge that feature back in, but it’s been so long, you forgot exactly what the code included.