<TABLE> <S> <C>
<PAGE>
<ARTICLE> 5
<MULTIPLIER> 1,000
<S> <C> <C>
<PERIOD-TYPE> 6-MOS 6-MOS
<FISCAL-YEAR-END> DEC-31-2000 DEC-31-1999
<PERIOD-START> JAN-01-2000 JAN-01-1999
<PERIOD-END> JUN-30-2000 JUN-30-1999
<CASH> 35,394 37,627
<SECURITIES> 0 1,898
<RECEIVABLES> 53,576 53,675
<ALLOWANCES> (2,228) (2,517)
<INVENTORY> 0 0
<CURRENT-ASSETS> 122,784 111,681
<PP&E> 24,090 21,546
<DEPRECIATION> (8,326) (6,804)
<TOTAL-ASSETS> 243,555 233,264
<CURRENT-LIABILITIES> 92,281 86,351
<BONDS> 14,345 1,155
0 0
0 0
<COMMON> 23 25
<OTHER-SE> 136,901 145,728
<TOTAL-LIABILITY-AND-EQUITY> 243,555 233,264
<SALES> 197,901 181,259
<TOTAL-REVENUES> 197,901 181,259
<CGS> 161,375 138,144
<TOTAL-COSTS> 186,171 160,305
<OTHER-EXPENSES> (785) (373)
<LOSS-PROVISION> 0 0
<INTEREST-EXPENSE> (1,051) (123)
<INCOME-PRETAX> 11,464 21,204
<INCOME-TAX> (4,586) (8,563)
<INCOME-CONTINUING> 6,878 12,641
<DISCONTINUED> 0 0
<EXTRAORDINARY> 0 0
<CHANGES> 0 0
<NET-INCOME> 6,878 12,641
<EPS-BASIC> 0.30 0.53
<EPS-DILUTED> 0.30 0.53
</TABLE>