Related link: http://www.artima.com/intv/flexplex.html
Artima.com has published Part IV of an interview in which Martin Fowler discusses design decay, the cost of flexibility and reusability, four criteria for a simple system, and test-first design of interfaces.
Here’s an excerpt:
The cost of flexibility is complexity. Every time you put extra stuff into your code to make it more flexible, you are usually adding more complexity. If your guess about the flexibility needs of your software is correct, then you are ahead of the game. You’ve gained. But if you get it wrong, you’ve only added complexity that makes it more difficult to change your software. You’re obviously not getting the payback.
It’s not hard to guess wrong about flexibility needs. You can guess wrong if requirements change. What you think is a requirement for flexibility now may go away or change in the future. You can also guess wrong if you put extra code into the program to improve flexibility but you don’t get it quite right. You get more complexity without getting the flexibility you were after.
The alternative is to use the XP approach and not put the flexibility in at all. XP says, since most of the time we get it wrong, just don’t put the flexibility in there. Now if you can’t evolve your design safely, then that is a foolish route to take. But if you can evolve your design safely, it becomes quite a nice approach. In fact it becomes a self-reinforcing approach. If you strive to keep your design as simple as possible by avoiding speculative flexibility, then it’s easier to change the code because you have less complication to deal with. The code is easier to understand and easier to change. As a result, you can make changes much more quickly.
Related link: http://www.artima.com/intv/evolution.html
“People also underestimate the time they spend debugging. They underestimate how much time they can spend chasing a long bug. With testing, I know straight away when I added a bug. That lets me fix the bug immediately, before it can crawl off and hide. There are few things more frustrating or time wasting than debugging. Wouldn’t it be a hell of a lot quicker if we just didn’t create the bugs in the first place?”, says Martin Fowler in this Artima.com interview.
If you accept Jack Valenti’s arguments, you believe that no creative work will ever be produced in this country unless copyright protection is a couple of generations long. But not even Jack would argue that a bunch of post-turkey sale information constitutes “creative expression.”
Yet Wal-mart and other retailers invoked DMCA to force small small websites like FatWallet.com and MyCoupons.com to delete news about post-Thanksgiving sales, Amy Harmon reports in the NYT today. The sites complied — small wonder: under DMCA, Web publishers are immune from prosection if they remove offending material immediately after notification.
According to Wal-Mart: “We believe copyright covers a compliation of fact.” This on the heels of the Supreme Court ruling in the phone book case that a compliation of facts is not copyright protected. “It’s out data about our products … and we don’t want customers confused.”
Outrageous? Consider this: Not only did Wal-Mart demand removal of the facts, they wanted to know who leaked the information to MyCoupons. Site owner Jason Wolfe declined.
Would Wal-Mart consider suing the NYT or any other offline news media for publishing facts received legally, regardless of whether the company agreed with the timing of the release? Not in a million years. Yet under DMCA, Web publishers are compelled to remove true information upon receipt of a letter invoking DMCA.
Is the Web less worthy of First Amendment protections than other media? Sounds like a Constitutional challenge to DMCA to me. Memo to MyCoupons and FatWallet: Call EFF.
Related link: http://www.scientificamerican.com/article.cfm?chanID=sa004&articleID=00052728-1B…
Lawrence Lessig was named one of Scientific American’s Top 50 Visionaries for arguing “against interpretations of copyright that could stifle innovation and discourse online.”
Related link: http://www.artima.com/intv/principles.html
“You can almost do this as an exercise. Look at some program and see if there’s some duplication. Then, without really thinking about what it is you’re trying to achieve, just pigheadedly try to remove that duplication. Time and time again, I’ve found that by simply removing duplication I accidentally stumble onto a really nice elegant pattern. It’s quite remarkable how often that is the case. I often find that a nice design can come from just being really anal about getting rid of duplicated code,” says Martin Fowler in this Artima.com interview.
What do you think of Martin’s comments?
Related link: http://www.washingtonpost.com/wp-dyn/articles/A20152-2002Nov6.html?referer=email
Venture capitalists are investing in Wi-Fi companies; Intel is pushing 802.11, new PCs are coming with Wi-Fi antennas, even Tablet PC is WiFi ready. Another victory for a bazaar, grass roots mentality over CathedralThink.
Related link: http://www.artima.com/intv/refactor.html
“Reliability is one story that hasn’t been told about extreme programming (XP), which focuses heavily on testing. People talk a lot about its responsiveness and its light weight, but I hear more stories about XP’s staggeringly high reliability. A couple weeks ago I chatted with Rich Garzaniti, an old colleague from the C3 project. The C3 project is often referred to as the birth project of XP at Chrysler where Kent first really put the various practices together coherently. Rich talked about this system he was developing using XP with testing and refactoring — drinking the whole XP Kool-Aid completely through the system. He’s had one bug so far this year,” says Martin Fowler in this Artima.com interview: