<TABLE> <S> <C>
<PAGE>
<ARTICLE> 5
<LEGEND>
THIS SCHEDULE CONTAINS SUMMARY FINANCIAL INFORMATION EXTRACTED FROM THE
COMPANY'S BALANCE SHEET AT JUNE 30, 2000 AND STATEMENTS OF INCOME FOR THE THREE
AND SIX MONTHS ENDED JUNE 30, 2000 AND IS QUALIFIED IN ITS ENTIRETY BY REFERENCE
TO SUCH FINANCIAL STATEMENTS.
</LEGEND>
<MULTIPLIER> 1,000
<S> <C> <C>
<PERIOD-TYPE> 3-MOS 6-MOS
<FISCAL-YEAR-END> DEC-31-2000 DEC-31-2000
<PERIOD-START> APR-01-2000 JAN-01-2000
<PERIOD-END> JUN-30-2000 JUN-30-2000
<CASH> 0 28,149
<SECURITIES> 0 0
<RECEIVABLES> 0 37,835
<ALLOWANCES> 0 1,523
<INVENTORY> 0 0
<CURRENT-ASSETS> 0 4,602
<PP&E> 0 12,360
<DEPRECIATION> 0 5,658
<TOTAL-ASSETS> 0 121,994
<CURRENT-LIABILITIES> 0 25,901
<BONDS> 0 0
0 0
0 0
<COMMON> 0 171
<OTHER-SE> 0 95,899
<TOTAL-LIABILITY-AND-EQUITY> 0 121,994
<SALES> 0 0
<TOTAL-REVENUES> 41,099 78,213
<CGS> 29,724 57,177
<TOTAL-COSTS> 29,724 57,177
<OTHER-EXPENSES> 9,782 18,363
<LOSS-PROVISION> 0 0
<INTEREST-EXPENSE> 24 24
<INCOME-PRETAX> 2,200 3,974
<INCOME-TAX> 890 1,600
<INCOME-CONTINUING> 1,310 2,374
<DISCONTINUED> 0 0
<EXTRAORDINARY> 0 0
<CHANGES> 0 0
<NET-INCOME> 1,310 2,374
<EPS-BASIC> 0.11 0.19
<EPS-DILUTED> 0.11 0.19
</TABLE>