1965-ben a University of Wisconsin River Falls keretében matematikából és fizikából diplomázott. A vietnámi háborúban 192 harci bevetést hajtott végre. Több mint 6400 órát töltött a levegőben (repülő/űrrepülő) több mint 24-féle repülőgépen szolgált. 400 alkalommal landolt repülőgép-hordozó felületére.
1978. január 16-tól a Lyndon B. Johnson Űrközpontban részesült űrhajóskiképzésben. Kiképzését követően az STS–1, valamint az STS–2 támogató (feladatmegoldó) egységének tagja. 1987-1992 között az Astronaut Office (Űrhajózási Hivatal) vezetője. 1996-tól alelnöke a Kistler Aerospace Corporation Seattlenek. Négy űrszolgálata alatt összesen 32 napot, 21 órát és 3 percet (789 óra) töltött a világűrben. Űrhajós pályafutását 1992. október 10-én fejezte be. 1999-től az űrrepülőgép program támogatási csoportjának alelnöke.
STS–8, a Challenger űrrepülőgép 3. repülésének pilótája. Az űrrepülőgép program történetében először fordult elő, hogy éjszakai indítás/leszállás történt. Az Apollo–17 esetében volt az első éjszakai start. Elsötétített körülmények között gyakorolták az indítást, de a rakétahajóművek fényei szinte nappali világosságot produkáltak. Műholdat telepítettek, műholdat teszteltek, valamint teljesítették a mintegy 54 kutatási, kísérleti programot. Tesztelték a Canadarm manipulátor képességeit. Első űrszolgálata alatt összesen 6 napot, 1 órát és 8 percet töltött a világűrben. 4046 660 kilométert (2514 480mérföld) repült, 97 alkalommal kerülte meg a Földet.
STS–51–G, a Discovery űrrepülőgép 4. repülésének parancsnoka. A küldetés során a legénység pályairányba állított három kommunikációs műholdat – a mexikóiMorelos-t, az Arab LigaArabsat-ot, valamint az amerikai AT & T Telstar-t. Következett a Spartan–1 műhold, amit a robotkar segítségével később visszanyertek és vizsgálati céllal a Földre szállítottak. Második űrszolgálata alatt összesen 7 napot, 1 órát és 39 percet (170 óra) töltött a világűrben. 4693 051 kilométert repült, 112 alkalommal kerülte meg a Földet.
STS–32, a Columbia űrrepülőgép 9. repülésének parancsnoka. A küldetés során útnak indítottak egy katonai kommunikációs műholdat, mely később geoszinkron pályára állt. Az út negyedik napján sikerült a beépített kanadaiCanadarm (RMS) manipulátor robotkarjával befogni, majd a Földre visszahozni a 9724 kilogramm tömegű LDEF (Long Duration Exposure Facility) tudományos műholdat, amely a Challenger űrrepülőgép 1984-es STS–41–C küldetése óta keringett orbitális pályán. Harmadik űrszolgálata alatt összesen 10 napot, 21 órát és 00 percet töltött a világűrben. 7258 096 kilométert repült, 172 alkalommal kerülte meg a Földet.
STS–49, az Endeavour űrrepülőgép első repülésének parancsnoka. Az egyik legfontosabb feladat az űrrepülőgép tesztelése volt. Az 1986-ban megsemmisült Challenger űrrepülőgép pótlására megépített űrrepülőgép első útján a legénység négy űrséta során megjavította és új hajtóművel szerelte fel az Intelsat VI (F–3) kommunikációs műholdat, amely két évvel korábban eredeti hajtóművének hibája miatt nem volt képes geoszinkron pályára állni. A szerelési munkálatok következtében a világ első hármas – és addig a valaha volt leghosszabb – űrsétájára került sor. Negyedik űrszolgálata alatt összesen 8 napot, 21 órát és 17 percet (213 óra) töltött a világűrben. 5948 166 kilométert repült, 141 alkalommal kerülte meg a Földet.