I know, I know, we don't need another framework post. But the latest posts from Sean Corfield, Brian Rinaldi, and Jake Munson make me want to speak up. While I'm naming dropping, I feel the need to cite Joel Spolsky's In Defense of Not-Invented-Here Syndrome.
I am not against frameworks. I've tried coding against a couple. I've at least looked at most of them. I don't currently use one. The one I got the furthest with was Model Glue 2. I like it a lot, but I'm just not productive enough in it yet to rely on it. That means that I can accept that Joe Rinehart came up with a better solution to my problems than I, but I can't use them as productively, as I can use my own, perhaps flawed solutions.
It's that bit of logic that I think should be the key to using frameworks. Use them where they will be more productive than your own efforts.
Follow what I mean here.
Let's say you are a database wiz. You design textbook perfect databases in your sleep. You love seeing execution plans with no table scans. You think it's cool when your queries have to use parallelism. It would not be in your best interest to use a database framework like Reactor. Why? Because you would be substituting Doug Hughes' judgment for your own, where you provide the most value.
Well that's not quite true, because you don't exercise the full extent of your knowledge on every single piece of SQL interaction code you write. If Reactor makes 80% of what you do take 20% of the time it used to, then it still might be worth it to use, and then manage the exceptional cases.
Okay, I haven't convinced you - you still prefer the way you deal with your database to the way Reactor does. Okay, but you're still probably doing a lot of repetitive, rule based code like writing <cfstoredproc> code blocks with are more characters the actual SQL stored procedures you've written. Perhaps you should write your own code generator. That's essentially what I did with Squidhead, and it was easier than I thought, and a great experience for me.
Okay, database wiz, now it comes to the UI. You need to do an Ajax front end. What do you do? Start writing JavaScript? No! You told us you were a database wiz. If you're not a JavaScript wiz then stop and download an Ajax framework. Because at some point someone has better judgment than you about some of the technology you use.
Now I started with a database guy, but I could have started with an Ajax wiz, or a designer and the advice would have been analogous.
If your expertise is based on a certain set of skills, you would be nuts to accept someone else's judgment for yours. But if you're not an expert in an area, that it is equally nuts to assume your judgment is better than an expert.
Pick frameworks and techniques that strengthen your weak spots.
10 response s so far ↓
1 J.Cruz // Feb 18, 2007 at 1:07 AM
2 Peter Boughton // Feb 18, 2007 at 8:03 AM
Pick something. Learn it.
3 Sammy Larbi // Feb 18, 2007 at 9:41 AM
But (not sure why this font is getting big, but I put a space in above and it seems to have gone away) I would caution not to just assume that "my solution is better than theirs" because that is your expertise. That may be true - but your solution may still take longer and produce something better than "good enough," in which case, you've still wasted your time.
To me, Joel's article read more about not outsourcing your primary business function - not your primary talent. So for instance, if you were selling data mining services, you might want to write your own applications for it. But, if you can make use of Reactor (which, you may or may not be able to do), then you still might do that. But, if you were selling ORM frameworks, you might not want to use Reactor to do it. That's how I took it anyway. I know the Excel example didn't focus too much on that - but they had other, internal reasons for not wanting to use others' code, that I'm not sure apply to this situation as well as they might to others.
4 Sammy Larbi // Feb 18, 2007 at 9:44 AM
5 Terrence Ryan // Feb 18, 2007 at 10:42 PM
6 Terrence Ryan // Feb 18, 2007 at 10:46 PM
7 Craig M. Rosenblum // Apr 6, 2007 at 5:08 PM
What bothers me the most about framework's is the proselytizing, everyone does, implying your a sucky programmer if you don't program with a certain framework or any framework.
I think there are things we can learn from frameworks, but me, i am still waiting for the fish to come and bite me.
And I do like Joel Spolsky, he has a lot of common sense, also like Jeff Atwood's Coding Horror.
I mean, good architecture helps, unless the creation of that architecture gets in the way of you doing your job.
8 Michael Cole // Jan 9, 2008 at 12:30 PM
is this something like .netframwork?
9 Frame // Jan 16, 2008 at 7:46 PM
10 Bathroom Cabinets Raleigh // Jan 21, 2010 at 6:44 AM
Regards
Leave a Comment