An Obsession with Everything Else

http://www.derrickschneider.com/atom.xml

Thursday, November 03, 2005

Making a Social Network App, Part 2: Make or Buy

One of Ning's key features is the ability to copy an existing application for your purposes. Clone it, change a few things, and you get the benefit of the original's author's hard work.

Non-developers will no doubt love this feature. I wonder how programmers will feel about it? Like any craftsperson, we tend to be protective of our code, and we're not eager to see someone else slap their name on our extensive work. I'll be curious to see how many career programmers will jump on the Ning bandwagon.

At any rate, why am I starting from scratch when I could leverage one of the applications on the system? I looked at some of the existing apps (Ninglets?), but for each one, it seemed like I'd have to expend as much effort understanding, gutting, and restructuring the code as I would just writing it from scratch at the outset.

This is a classic make or buy decision. Yes, I am technically capable of building the system I need. But then I have to spend the time to build it. I tend to be more of a maker than a buyer, but I've obviously decided to "buy" Ning's core functionality instead of make it. I didn't choose to "buy" an existing Ning application because adapting it to my needs would take too much work. But starting from "scratch" isn't exactly a piece of cake, either. (An aside: an increasing number of people consider cake mixes and their kin to be "from scratch" because you still have to add eggs and milk. It seems wrong, but you're probably not milling your flour or extracting your own sugar, either, so why is your cake "from scratch" while a cake mix cake isn't?)

It's tempting to wonder how Ning users will typically come down on this decision. Even if you find a Ning application that does many of the things you want to do, non-developers are at the whim of the original author. Maybe the code will be poorly commented. Any of the author's bugs will become yours, and you'll need to track it down along with every other person who copies that code.

What's more interesting is to wonder how the Ning community will respond to these issues. Will certain authors be shunned because their applications are typically buggy? Will those who copy an application fix the bugs and send them back to the author? Does every Ninglet developer need a bug-fixing queue? One that all those who copied the application can see as well?

2 Comments:

At 4:51 PM, Anonymous Anonymous said...

Hey Derrick, even though you've decided to 'make' rather than 'buy' with your Ning app, you'll probably get a lot out of looking at the simple example apps (lower left hand side of the page) as lightweight examples of working with Ning content objects.

In terms of updating cloned apps when the original changes, or letting developers know that the parent application for their app has changed, we know that this is a difficult problem, but we're looking at a few strategies for making it easier to manage going forward.

Your project sounds great! It will be interesting to watch it develop.

 
At 8:35 AM, Blogger Derrick said...

Phil,

Thanks for the tips and encouragement. I went through the tutorial but for some reason hadn't spotted the simple example apps. I'm learning PHP as I go on this project, so I'm sure they'll be useful in that regard as well.

I'll be curious to see what kinds of solutions y'all come up with for these issues.

 

Post a Comment

<< Home