Rentacoder.com Usability Analysis

Course Home Page : One Subsection

This is a usability analysis of the Rentacoder.com Internet service, collaboratively created by the students of MIT course 6.171 in May 2006.

The source of these suggestions are the answers to a mid-term examination question:

Identify three usability problems with rentacoder.com and write instructions to their programmers on how to fix them.

-- 6.171 Mid-term

Below are some of our favorite suggestions from among the students.

The Suggestions

From Brian Glidewell:
PROBLEM 1:
There are separate options for browsing and searching the various projects
accepting bids.  It appears that the only difference between these two
functions is that browsing gives the user several categories to narrow down
their possible work while search just has a keyword field to search for
projects by.  This means that coders cannot both narrow down the field by
category and then search within that category by keyword.  This means that if a
user wanted to create a forum in PHP, that user could not just select the
"Language Specific > PHP" option and then search for "forum," but would have to
either browse the 329 PHP projects for those involving forum, or search for "PHP
forum," whose results would likely not be as tailored towards them.

SOLUTION:
Combine these two functions into one "Find work" option.  This page would give
both the tree of categories shown on the current "Browse all work" page and the
keyword search of the "Search all work" page.  Now the search would just be run
on the category(s) selected rather than the entire list of projects.  If no
keyword is selected, then all options within the selected categories would be
shown.  You should also consider moving the number of open projects in each
category from the tree at the left and instead place these numbers by each
option in the check box tree.  A user could then see if they actually need to
use the search option (they won't need to if there are only a few open projects
in a given category).  This last change may be one to consider even if the
functions are not combined, as it seems unnecessary for the user to have to
scroll all the way down a very long page just to see how many computer-based
training projects are opened.
From Michael Murray:
Viewing a category
==================

Once viewing a category there is no way to navigate to a higher category
or a lower sub category. The only way to get to a different category is
by going back to browse all work and choosing the category I want to
view. The list of available requests to also difficult to use and there
is a lot of white space in each project which is wasted space when the
request list is large. There is also no way to sort by bid price and in
fact sorting any other columns by clicking on the subtle arrows results
in an error (The multi-part identifier "racBidRequest.Title" could not
be bound). Clicking on the checkbox to 'unshow' detailed descriptions
results in an even less useful listing of requests. The font size of the
title decreases and the white space increases, the screen is largely
taken up by a progress bar to indicate the phase of the project. We also
lose the ability to see the current bid price of each request.

Possible improvements
---------------------

Get rid of the table view and instead adopt a google approach to viewing
results. This maximizes screen real estate Maintain the ability to sort
by fields in the request and expand this option to include all possible
fields. Make the 'undetailed' description view more useful by showing
the bid price and making the title of the request the focal part of the
screen.

Viewing a request
=================

The page to view a particular request is quite cluttered and
unorganized. The shortcuts box is quite useless as the majority of
options seem to be grayed out for requests. In order to place a bid for
a request you have to scroll all the way to the bottom of the screen to
'post a reply'. This wording of this section as reply is generally used
for text and so it is unsure from that title if a bid can be placed.

Possible improvements
---------------------

I think an ebay approach should be adopted to this page. There should be
a clear link at the top to place a bid, and also more clear information
about the buyer. Sections which contain no data (and grayed out
sections) should not be visible, this will free up screen real estate,
and avoid a large scroll before placing a bid. Wording of sections
should be more conventional. There is a message summary section and a
post a reply section. Both of which are mainly used for viewing bid
history and placing a bid however this cannot be told from the
title. The text size for the important information such as bidding
closes dates and current bid is very small and is dominated by other
things on the page like the shortcuts panel. Again an ebay approach
would help solve this problem so that people can quickly and efficiently
view all the important details about a request.

From Ricky Nguyen:
2) Registration vs. coder account
After registering my email address and choosing a password, I
immediately began browsing through the bid requests. I had browsed
for quite awhile before I realized I had to create a coder account.
This was confusing because the registration process was disjoint and
two-tiered.

Perhaps the registration page flow could include options to create a
buyer or coder account immediately upon email verification. For
example, after the user types (or pastes) in the temporary password
given by email, the user should be prompted to create a buyer or
coder account or both accounts, and then proceed to fill out the
necessary information. Here is a situation where a home page after
login could be useful as well (as suggested earlier). A newly
registered user's home page would have no content to display because
no buyer or coder account exists, so the home page would provide
links to create and edit such accounts.
From Ravi Mehta:
BROWSING IS ONE DIMENSIONAL

There is only a single taxonomy for browsing work, and this taxonomy is
not very well organized. Users should be able to browse along multiple
dimensions including: the platform for which the application is being
developed (Mac OS, Windows, etc.), the technologies that must be used by
the technology (PHP, Ruby on Rails, etc.), the domain of the application
(gaming, social networking, ERP, etc.), the complexity of the
application, and the level of experience of the buyer.
From Kevin Su:

The first usability problem I will address is located here on the search
page:
http://www.rentacoder.com/RentACoder/SoftwareCoders/SearchWork.asp.  The
problem with this page is that its aesthetics adversely affect its
usability.

What's wrong with this page and suggested solutions:
- There is a large amount of wasted screen space.  In fact, only the middle third of the page is being used.  The website clutters 
words together, which can lead to poor readability, as shown in the columns of checkboxes, yet doesn't make use of its available 
real estate.  The solution would be to eliminate the one column that constrains information to the center of the screen, don't 
limit information to just one third of the page.  This would eliminate the wasted screen space as well as help ease the problem of 
word cluttering.  

- The readability is poor.  People like reading from left to right, not right one inch, then down to the next line, then back up 2 
inches.  It is also not very conventional for checkboxes in the same category to be scattered over a rectangular area.  My solution 
to this would be to drop the 3 column layout, and simply do a list-style layout.  Have all the check boxes in the same horizontal 
space.  A good way to think of this is an unordered list in HTML, where the bullets are check boxes.  This would improve the 
readability, as the current text would all fit on one line.  Also, instead of an inconsistent amount of white space delimiting 
different categories to check-off, we would have new lines for each new category.  


The second page I will comment on is 
http://www.rentacoder.com/RentACoder/misc/BidRequests/ShowBidRequest.asp?lngBidRequestId=455130.  Other than the obnoxious overuse 
of horizontal rules, I think there are some things on this page that could be placed better, or just aren't necessary at all on 
this page.  

- Isn't the point of a bidding system so people can see what the current bid is, and then try to beat it?  It seems like this 
should be the place for it.  After all, this is the page with the project description, and where the coder makes his/her bid.  A 
description of the project should describe how much one can expect to make from this.  My suggestion is to place some kind of bid 
history on this page.  It is possible that the message summary is supposed to be that bid history, but I visited pages with x 
number of bids, and saw "None found." under the messages section.  This would give users information about bids, allowing them to 
make better choices.  For example, if I saw a 100-hour Philip Greenspun project that had a 10 dollar bid on it, I would be inclined 
not to bid on it myself.  

- The actual bidding tool is too far on the bottom.  The first thing I did when I visited this page was look for some button in 
which I could make a bid.  When I couldn't find it, I scrolled down a bit, and saw a very long description, and then saw some 
message summary item.  And then I kept scrolling and saw some form, which at a glance, appeared to be part of the message summary 
interface.  So I scrolled back up looking for a bidding button.  The shortcuts button didn't really help either.  It has stuff 
named like "post first reply" and "messages summary".  I'm looking for the word bid, not reply.  The solution would then be to 
either place the bidding form closer to the top, or make a shortcut that is consistent with the site.  Rentacoder constantly refers 
to bids, (i.e. bidding closes, bidding type on this page) yet when you make an actual bid they say "post first reply."  

- I have no idea what the purpose of message summary is.  Browsing through 10 or so projects, every single one has come up with 
"None found."  My suggestion is to just remove this entirely, only showing it when there are actual messages.  It wastes space, and 
for the most part, it seems like people don't even use it.  By removing it, we are simplyfying the page, which itself improves 
usability.  

- There is extraneous information.  I don't need to know when this project was approved.  I just need to know when it's deadline 
is, because having a deadline implies that it was already improved.  My suggestion is to try to remove the extra information, 
thereby eliminating some of the clutter.  

From Justin Moe:
- SEARCH
 - Search all work section is very limited
  Compared to the browse work the search work section is very
limited.  In browse work you have a set of controls to filter on
categories, while in the search work section they are strangely
absent.  If I were interested in C# projects about zebras (for some
strange reason) I would have to put C# in the query string, and hope
it was filtered properly.  It would seem that the categories (one of
which is C#) are perfect for this, and I should be able to filter my
searches based on categories.  That shouldn't be much more than
copying the code over from the browse page and adjusting the form
processing to match.

- Private auctions that aren't accessible to me are semi-visible
  As a logged in user, I can search through the results for
listings.  In them are a large number of private auctions, none of
which are available to me.  Since I have credentials, it should be
simple to add an additional clause in the WHERE statement to filter
out an auction if it is both private, and I am not on the list of
authorized bidders.  Otherwise it's a set of results cluttering those
that I could bid on which will simply give me an error if I select them.

 - Search form gives unclear errors on invalid input.
  If, for some odd reason I put in -5 for the number of entries on a
page I don't get any sort of error, the system simply says I get no
results.  It would be better to return to the search page with an
error on invalid inputs such as that, or even possibly just include
an absolute value around the input for pagination
features.  Rentacoder is in good company, as a lot of commercial
software packages don't like invalid pagination results like that either.

- Option to create private auction for myself
  When I'm logged in viewing my own resume, I have options
available to invite myself to a private auction, and give myself a
bonus.  This seems rather silly, as I don't have any need to use
Rentacoder to enter a private auction for myself or give myself
money.  The pages don't even give an error if I'm trying to follow
through and create the private auction.  This should be a relatively
simple test to ensure that the person creating a private auction or
bonus is not the person it is being created for.
From Pamela Hollingsworth:
Looking at a project on a page such as 
http://rentacoder.com/RentACoder/misc/BidRequests/ShowBidRequest.asp?lngBidRequestId=456193,
why aren't the categories links?  

I feel like I should be able to view this bid request, then quickly view
other C# projects.  The category "c#" is listed, but what good does it
do me?

TO THE CODERS:
This is a pretty simple fix.  Simply make the list of categories into a list of links that
redirect to the ShowBidRequests page, with the lngBidRequestCategoryId query parameter set
to the appropriate value					

http://rentacoder.com/RentACoder/misc/BidRequests/ShowBidquests.asp?...
		&lngBidRequestCategoryId=45...

**** PROBLEM ****

There doesn't seem to be much personalization of the site, depending on
whether I am a coder or a a buyer.  When I log in, I get the same home
page no matter what my role is...just a list of what buyers can do and
what coders can do.  What if I want to just start browsing right away?
It isn't intuitive for me to scroll to the bottom of the page and click
on the Coders: My Bids link, just to get to a page that I can
search/browse from.  Why doesn't it just take me to this browsing page
to begin with? If I am a coder, it could take me either to MyBids or (if
I don't have any bids, or if I just set a preference somewhere) to the
Newest open work link (which threoretically only displays the newest
work that I'm interested in, but I'm not convinced that it does that
since I'm getting matches on Visual Basic and I don't even know visual
basic.

After I'm at the main BidRequests page, why am I able to see the
Software Buyers navigation bar?  I'm not registered as a buyer...so why
is my nav bar cluttered?  The right sidebar is the same for both coders
and buyers.  Maybe as a coder I want to see the top buyers to work for,
or maybe as a buyer I want to see my competitors.

TO THE CODERS:
Determine what type of user is logged in (either a buyer, a coder, or both) and tailor
the UI accordingly.  It's not too much extra work to redirect to a meaningful page when 
someone logs in.  After all, if I've registered then I don't need to constantly see the 
nice man in the suit on the front page and all the advertising of your site.  I'm already
convinced that it's a worthwhile site.  
From John Nham:
THE SIDEBAR

The sidebar on the left of the main page has a really annoying
feature. When the user clicks on an item with a +/- designation, the
page refreshes, opens/closes the proper menu, and snaps to the top of
what was just opened/closed. First, the page refresh should be replaced
with Javascript code that toggles the menu smoothly and without a
refresh. Consider, for example, a buyer creating a private bid request
who wants to invite one of the Top 10 coders. If he opens that tab
without thinking, he will lose all the information on the current
page. Second, I think the in-page anchors used to snap the page to a
particular menu really have to go. It is not what the user expects and
really disrupts the 'browsing flow'.

I also think that the newest bid requests scroller would be better
implemented as a slideshow, where the user can click back and forth to
go between the most recent jobs. The list could be updated every 15
minutes or so.

BROWSE ALL WORK

The directory structure to the left of the browse page does not really
present new information except for the number of jobs open for a
particular category/sub-category. Why not just integrate those numbers
on the main browsing form to declutter the page?

The category tab of this page has two fairly large problems. First, the
'state' of what boxes can be checked lack consistency. For example, it
is possible to have 'All','Database', and 'Oracle' all clicked (this
returns results as if 'All' was not clicked). It is also possible to
have only 'Oracle' checked (this returns a timeout error). Use
Javascript to ensure the checked boxes are always in a consistent
state. The second problem is that if the user clicks a main category and
not any of the sub-categories, the browse returns a timeout error. After
clicking 'Web', the user probably expected all the sub-categories within
'Web' to be returned, which is what I suggest.  
From Lev Popov:
PROBLEM:  Poor Information Presentation
The amount of clutter and lack of information organization on the
page can only be matched by those of New York tax forms.  The amount
of information thrown at user on every page is overwhelming and makes
it hard for users to pick out what they are looking for. Lack of
visual cues makes grouping related pieces of text difficult, and tiny
fonts (increasing which often breaks the layout) only add to the
problem.

PROPOSED FIXES:
The page layout needs a major redesign: the double (sometimes even
triple!) sidebars should be scrapped, and replaced with just one.
Similarly, the header real estate should be put to use (for
navigation links for example) instead of being crowded with
advertisements (Their main source of revenue is commissions so
compromising usability for a bit of ad income is unreasonable). To
manage the amount of information on page, only the text relevant to
the user should be shown on most pages - i.e. the coders do not need
to see buyer links and top 10 coders on every single page of the
site. All of the little information pieces currently crowded in
sidebars could be moved to a separate site portal page where users
can see all relevant activity at a glance.

The way individual information pieces are presented should be changed
as well. Using larger (and more consistent!) fonts would greatly
improve readability. Items related to each other should have visual
cues indicating that they are related. Having boxes with light
background under each information group would save user the effort of
trying to parse the page into logical sections.  The way links for
item-specific actions (for example - 'add bookmark' on project page)
are presented should be standardized - for example  by having a box
with action links underneath section's title. This way user
immediately knows what they can do with the item, instead of having
to scan all of the page looking for an action that might not even exist.

PROBLEM: Finding Projects Is Cumbersome
The interface for browsing projects is frustrating to use, and
project search is severely crippled.

PROPOSED FIXES:
'Browse Available Work' seems to ignore the preferences for kind of
projects user is interested in that they fill out at registration,
and makes no effort to remember what user has browsed for in the
past. Application should be able to prefill the browsing filters form
saving user time every time they go looking at projects. The
preference history can be used even better by letting coder have
personalized project listing feeds matching a set of user-defined
filters (with RSS of course).

The presentation of the list of projects returned by selecting
browsing preferences can be improved as well. Each of the listing is
showing too much not immediately relevant text, while missing some
important information. Most of the text pieces could be replaced with
one word or even an icon (like "NDA" tag for example).
Each project item should have the following: Buyer WITH average
feedback, Title, 2-lines of description, class OR maximum acceptable
bid, categories, status(perhaps presented as background color of the
listing), DATE posted (not timestamp), number of bids so far, and
perhaps average of the bids so far (findacoder.com does this for
example, and it should help users to see where they stand).  By
properly condensing all of those, each listing should occupy no more
than 3 lines, allowing user to see more projects per page with less
clutter.

The ability to bookmark projects can be extended: It would be great
to have a project shopping cart - as users browse projects they may
(from the listing page itself) add  a project to their cart for later
review.

Searching projects is extremely slow and results in server timeouts
half the time. The search results are not sorted by relevance making
it all but useless. Fixing search performance and ranking search
results would be a great improvement.

PROBLEM: There is no site-wide search (or it is buried somewhere
users can't find)
There is no way of searching static pages or news articles, or coder/
buyer profiles, or really anything but the projects. For example if
users want to find legal information about working for rent-a-coder
in their country, they are stuck digging through the site looking for
relevant links.

PROPOSED FIXES:
Add site-wide full-text search for the items mentioned above.
From Martin Glynn:
1. It takes too long to find the registration page.  As we've learned in
our class, "Some studies show that on each extra click there is a 50
percent chance that a user will abandon the site altogether."(
http://philip.greenspun.com/seia/discussion) Why can't I go straight to
the registration page from the home page?  If I click on the register
button I end up on a page describing the experience, but no registration
form.  The link from that page that tells me to "Register(free)>>"
redirects me to a login form.  From there I can click "create a free
account".  I have to make 3 clicks just to get to the account creation
page.

2. The two navigation columns on the left and right hand of the screen are
confusing and difficult to follow.  Even though it would be nice if people
read the entire screen in detail, it just won't happen (we have first hand
experience with this).  Jakob Nielsen, a well respected usability expert did
a study in which he found that people tend to read web pages in an F-Shape
form (http://www.useit.com/alertbox/reading_pattern.html). This means you
should have all your most important links on the left hand side of the page,
with the most important at the top.  This will likely mean you have to
eliminate some of the links on the page; that's OK.  The existing interface
is overwhelming, even for me, and I'm a genius from MIT.  :-)
(this layout seems to be site wide, so there is no specific URL to point you
to)
From Zak Stone:
1. The Front Page

As a coder visiting RentACoder for the first time, I want to learn what
the site does and see whether I want to participate. Though the large
image of a hand holding a briefcase suggests business, it doesn't tell
me anything that I want to know, and it uses up far too much of the
most important real estate on the page. If I view your website on a
small screen, that image is all I will see in both the high and low
resolution versions of the site, which seem nearly identical in layout.

I suggest that you simplify your homepage dramatically to feature _very
short_ use-cases for buyers and for coders along with a few short
descriptions of representative projects. The use cases can be as simple
as the following blurbs, which would be shown in a large, attractive
font:

"Buyers: Post a project. Approve a bid. Get the software you need."
"Coders: Find projects you like. Place your bids. Make money fast."

Your homepage currently lists only the newest one of 2068 open bid
requests. If instead you displayed five hand-picked project
descriptions that exemplify the purpose of the site, both buyers and
coders could see at a glance what the site is about and what kind of
software they can buy or code. Near these examples, there should be
links that encourage visitors to browse and search all project
descriptions; the only way to browse projects at present seems to be to
click the tiny "2068 open bid requests" link and then the tiny "Browse
all work" link in the left-hand column.

2. Searching and Browsing Pages

If your front page entices coders enough for them to enter the site,
they will want to find a suitable project as quickly as possible. The
internal site pages are currently very crowded, and a great deal of
space is wasted -- when I navigate to the list of newest open bids, I
only see two and a half project descriptions in the window, even in a
large window on a large screen . On Google, I can see at least seven or
eight search results with excellent short summaries in the same size
window, and I really appreciate that.

 It would be very helpful to group all search and browse features in
one place on your internal pages; at present, "Browse all work" and
"Search all work" are buried in the list in the left column, "Advanced
Search" and the search box are over on the right, and "Newest open
work" is repeated on both sides.

The browse interface is very frustrating; the boxes with asterisks in
the "Show status of" section are automatically checked, but those
checks mean that login is required, which prevents coders from browsing
for interesting projects before they sign up. It is a real drag to have
to manually uncheck seven boxes before every browse operation, and it
would be very easy for your programmers to change the default checkbox
setting depending on whether the user is logged in. All of the
checkboxes and the heavy black dividers between sections make the
browse interface seem very complicated; maybe you could push some of
those troublesome opti ons off to an advanced browsing page.

Whenever a list of results is shown, I would like to be able to filter
quickly by the size and expected price of the project, keywords in the
project description, the quality of the buyer, and the category of the
work. The rating of the buyers should be displayed with every search
result; at present, the system lists the _number_ of ratings, which
isn't very useful, and I have to click through to the buyer's profile
for each project to see whether he or she seems reliable. The profile
page summarizes the "Buyer Rating" -- just display that score in the
search results!

Also, the project descriptions in search and browse results are often
too short to understand what the project is about, as many buyers
launch immediately into detailed descriptions that are then truncated.
Auto-summarization is hard, but you could have your software buyers do
the summarization for you by requiring them to fill out a summary field
that is exactly the length that you show in your search results.

3. The Project Description Page

Most coders viewing a bid request page that is still open for bidding
will want to see a very quick summary of the nature of the project, the
price range, the quality of the buyer, and the lowest bids that have
been made so far. If buyers were asked to enter a _very short_ project
summary when they post a bid request, that summary could be used both
in the search results (as I suggest above) and at the top of the bid
request page.

To facilitate browsing, the layout of the page could be tightened up
considerably. The large header image and banner advertisement on the
current project description page push the title down almost to the
middle of the window, and then an oversized shortcuts panel that is
almost irrelevant for the casual browser takes up the rest of the
screen; all of these things could be compressed or eliminated. If the
chat room link below the shortcuts is intended to allow potential
bidders to communicate with the buyer, the link should only be shown
when the buyer is actually available. Coders should not have to scroll
down to get an overview of the project.

It should be _much_ more obvious to a coder who is not logged in how to
place a bid! At present, coders have to scroll all the way down and
locate the following sentence, which is rendered in plain text:

"Coders: To place a bid and/or to see any of your own pre-existing bids
on this bid request, you must login."

A coder would be much more likely to make a bid if there were prominent
"Bid now!" buttons at the top and bottom of the page. Any registration
that is requested before a bid is placed should be incredibly short and
painless.

As a logged-in coder, I appreciate the boldface instructions around the
bid and comment boxes and the example bid condition. If the bid field
isn't on the same screen as the project summary at the top, though, it
would be worth listing the expected price range near the bid to save
the coder the trouble of scrolling back up to find it.

Coders will look at a project description and move on to another
description far more often than they will place bids, so it would be
extremely helpful to list _related_ bids instead of unrelated new bids
on each bid request page. These related bids could be collected simply
by full-text search on the project descriptions, but it would be even
more effective to connect projects by the coders who bid on them. When
coders bid on multiple projects simultaneously or over time, those
projects are very likely to require similar skill sets or to be
semantically related in some way. So if many coders have bid on
projects A, B, and C, it should be useful to list projects B and C as
related links on the bid request page for project A.


Zak is notable in that he prefaced his email to the Rentacoder staff by flattering them...
First, congratulations on having such a successful site; most of the
programmers I know have heard of RentACoder, and the software buyer I
know who has used your service was very satisfied with the work that
was done for him. All of my comments below are meant as constructive
criticism to help you make the site easier for people to use and to
bring in more business.
This shows a real talent for diplomacy.

From David Dryjanski:


I think the rating, percentage of of work accepted out of bids accepted,
and security verification give a good indication of a trustworthy buyer.
The larger number of projects adds credibility as well. An average
project cost history for the buyer would be informative.

Problem - The map of the buyer location is a waste of space, as it does
not add more information (i.e. the U.S. map for example)

Solution - Just a link to google maps would be cleaner and more informative.

Problem - When looking at past buyer ratings, there is no sorting or
paging ability for the ratings and it is hard to find out about specific
ratings.

Solution - Sorting and Paging should be implemented and an average
project cost history would also be helpful.

From Fivos Constantinou:

2. Sorting search results is not functional

Each header in the search results page (Title, Project Type, etc) has
two clickable arrows, presumably for sorting in either ascending or
descending order based on the chosen header. There is however, either no
visible change after clicking one of the arrows or an error similar to
the following is thrown :


Microsoft OLE DB Provider for SQL Server error '80040e14' 

The multi-part identifier "racBidRequest.Title" could not be bound. 

/RentACoder/misc/BidRequests/ShowBidRequests.asp, line 1853 

From Brian Wu:
Problem:
When browsing for projects, rentacoder.com only shows me 10 projects
at a time.  If presumably coders are picky, and clicking through page
after page of projects is tedious.

Suggestion:
Allow the user to set the number of projects seen on each page.  
From Marios Assiotis:
PROBLEM : Speed! The entire site is very slow, especially searching.
The number
of records is not that big, doing a very very wide search only returns 1300
records. Given the lack of big images, I do not think the slowness is due to
bandwidth limitations. Viewing the source code for the page however, reveals
that all icons(horrible, please remove) are displayed by a function that
performs graphic manipulation. This will probably result in even slower
rendering for users with slow computers (CPU bounded). Also, the entire site
markup is done using tables which adds quite a few Kb of HTML markup. What is
probably the limiting factor though is the database



SUGESTED SOLUTION: First, get rid of all the icons, they do not add to the
aesthetics of the site, and they are not externally consistent with popular
applications (Windows, Office, etc) to add positively to the user experience.
Then redo the site layout using CSS which should reduce the size of each page
by a factor of 50%.

As for the database, I understand it is probably impossible to cache search
results due to the huge number of different search option combinations.
However, you could encapsulate a "Project" and its "Bids" record into a
lightweight object (just a bunch of strings and ints) and cache that. 
From Abdulrahman Tarbzouni:
In the process of completing my bid for an open web project, I
noticed that my name and user data were missing because the sign up
process didn't ask for neither my name nor any other validating info.
I'm identified as "new user" on the welcome page. I cancelled my
bidding process and started looking for an "update profile" page.
Nothing was there, till I found a "register as coder" link under
"coder financials". After completing this registration step, other
options appeared on the left hand side of the site pertaining to the
account options.

Rentacoder.com needs to couple the second registration step (to
become either a coder or buyer or both) with the site's registration
(the first step of registration). The separation of the two steps
doesn't make sense. At the very least (if they do not want to
separate the two steps), the first registration step should ask for
the user's important info.

philg@mit.edu