Datasheet
13
Chapter 1 ✦ Introducing Curl
✦ Which features require the most disk accesses on your servers?
✦ Which features are currently most awkward for your users?
✦ Which pages have the most local user interaction?
✦ Which use cases require the most round-trips to the server?
The answers create a “pain list” of what “hurts” most about each aspect of your
site. Often, users are more elated by an improvement in a current feature than by
the addition of a new one. (Note that Marketing usually feels the opposite way.)
Users already expect new features to be perfect, so if you deliver a great new fea-
ture, they will be only modestly impressed. Users are more apt to be impressed
when you fix a daily frustration. Existing features also have the advantage of being
well understood, so you are less likely to stall on endless brainstorming aiming at
perfection. Pages or features that appear on multiple pain lists should be strongly
considered for your first foray into Curl.
Analyzing the pain
Now that you’ve identified the painful aspect of your site, you need to decide if Curl
can help. If you have high-bandwidth pages, can Curl reduce them by using client-
stored templates that only get loaded once? Where your server is using CPU time,
could Curl use the client’s CPU? If your server accesses its disk to store user-state
data, could Curl store the state information on the client? If you have multiple
servers, what would it take to eliminate one of them? Most systems have a specific
bottleneck that causes problems. Curl should be used to address one of the bottle-
necks, if possible.
Solve an easy one
This does not mean that you should find the hardest problem you can find and
tackle it first. The road of technology adoption is littered with roadkill from teams
that overpromised and fell short. If your first attempt at Curl is a failure, you may
not get a second chance.
Instead, you should take the pain list and estimate how easy or hard it would be to
solve the problem using Curl. Choose something that you think is easy or medium-
hard for your first project. If everything on your pain list is hard to solve in Curl,
pick a less critical feature even if it’s not on the list. Choosing a hard project for
your first usage of any new tool is begging for trouble. The first project is always
harder than it appears.
Consider the longer term
Since Curl can incrementally replace parts of your site, update the pain list periodi-
cally to help pick future priorities. Keep in mind that the notion of solving a current
problem was only intended to cover your first use of Curl. After you are comfort-
able with Curl, new features or enhancements should be considered as well.
c4942-1 ch01.F 4/29/02 9:01 AM Page 13