1975-ben az University of Texas keretében űrhajózási mérnök diplomát szerzett. 1977-ben szerzett repülőgép vezetői jogosítványt. 1978-1980 között az USS Midwayrepülőgép-hordozó fedélzetén az A–7 Corsair II gépével teljesített szolgálatot. 1980-tól az Air Wing Landing Signal igazgatója. 1981-ben tesztpilóta kiképzésben részesült. Szolgálati gépével a repülőgép-anyahajók katapult és leszálló rendszerének tesztelését végezte. 1983-tól tesztpilóta oktató. Több mint 5400 órát repült, több mint 50 különböző típusú repülőgépet vezetett vagy tesztelt. Több mint 300 leszállást hajtott végre repülőgép-anyahajó fedélzetére.
1985. június 4-től a Lyndon B. Johnson Űrközpontban (JSC) részesült űrhajóskiképzésben. Négy űrszolgálata alatt összesen 40 napot, 4 órát és 59 percet (965 óra) töltött a világűrben. Az Űrhajózási Hivatal megbízásából 1992-1994 között üzemeltetési igazgató. 1995-1997 között a NASA megbízásából Oroszországban műveleti igazgató (űrrepülőgép/Mir program). 1997-2001 között a JSC/Oroszország emberi űrrepülés program vezetője (koordináció, integráció, kiképzés, támogatás). Űrhajós pályafutását 2008 januárjában fejezte be.
STS–43, a Atlantis űrrepülőgép 9. repülésének pilótája. A legénység sikeresen pályairányba állította TDRS–5 távközlési műholdat. Több (32) technikai és egyéb, meghatározott kutatási, kísérleti programot is végrehajtottak. Első űrszolgálata alatt összesen 8 napot, 21 órát és 21 percet (213 óra) töltött a világűrben. 5 955 217 kilométert (3 700 400 mérföldet) repült, 142 kerülte meg a Földet.
STS–52, a Columbia űrrepülőgép 13. repülésének pilótája. A legénység útnak indította a LAGEOS–2 tudományos műholdat, valamint működtette a raktérben elhelyezett USMP–1mikrogravitációs laboratóriumot. (olasz, kanadai, francia, amerikai). Második űrszolgálata alatt összesen 9 napot, 20 órát és 56 percet (236 óra) töltött a világűrben. 6 645 026 kilométert (4 129 028 mérföldet) repült, 126 kerülte meg a Földet.
STS–68, az Endeavour űrrepülőgép 7. repülésének parancsnoka. Globális környezeti változások tanulmányozása egy környezeti és geológiai program keretében. A Föld felszínéről radartérképet készítettek. Több mint 14 000 fényképet készítettek. Harmadik űrszolgálata alatt összesen 11 napot, 5 órát és 46 percet (270 óra) töltött a világűrben. 7 569 092 kilométert (4 703 216 mérföldet) repült, 182 kerülte meg a Földet.
STS–81, az Atlantis űrrepülőgép 18. repülésének parancsnoka. A Mirűrállomással dokkolt, több mint 3 tonna teheráru és csere legénység szállítása, szemét visszahozása. Negyedik űrszolgálata alatt összesen 10 napot, 4 órát és 56 percet (245 óra) töltött a világűrben. 6 100 000 kilométert (3 800 000 mérföldet) repült, 160 kerülte meg a Földet.