Ohjelmistokehitys on prosessi, jossa kaupallinen tietokoneohjelma vaatii jatkuvaa päivittämistä, ylläpitoa ja parantamista ajan mittaan, jotta se pysyy elinkelpoisena tuotteena. Tässä suhteessa ohjelmistokehitystä ohjaavat ulkoiset liiketoiminnan ja kuluttajien tarpeet, jotka muuttuvat muiden ohjelmistojen ja tekniikoiden edetessä. Ohjelmistokehityksen veturi on kuitenkin usein sisäinen tekijä, joka keskittyy tuotteen valmistaneeseen suunnittelutiimiin ja yritykseen, joka on riippuvainen sen menestyksestä kannattavuuden kannalta. Imperial College of London, Englanti, julkaisi ensimmäisen kerran kolme ohjelmistokehityksen perustuslakia 1970 -luvun alussa, joita on sittemmin laajennettu yhteensä kahdeksaan lakiin vuoden 2011 alusta. Lineaarinen peräkkäinen malli ja prototyyppimalli, mutta paradigma, joka näyttää parhaiten sopivan ohjelmiston entropian elinkaareen, on elävän olentojen Darwinin evoluutiota muistuttava paradigma.
Ohjelmistoarkkitehtuurin muutosten taustalla olevat perustekijät muistuttavat samoja voimia, jotka kannustavat yrityksiä päivittämään teollisuuskoneita tai vakiotoimintamenettelyjä yhteiskunnallisten tarpeiden muuttuessa. Ohjelmistojen käytön kasvaessa ilmenee uusia tarpeita tai toimintoja, jotka on otettava huomioon tuotteen myöhemmissä julkaisuissa. Kaikki ohjelmistot julkaistaan myös aiemmin tuntemattomilla virheillä, joten säännölliset korjaukset ja huoltotoimenpiteet on suoritettava korjaamaan tilanteita, kuten tietoturva -aukkoja, jotka voivat tehdä yrityksen alttiiksi hyökkäyksille itse ohjelmiston kautta. Ohjelmistokehityksen avain on myös se, että tällaisia ohjelmia on yhä enemmän mukautettava toimimaan erityyppisten uusien tietokonelaitteiden kanssa ja eri käyttöjärjestelmäarkkitehtuureissa, jotta ohjelmalla olisi laajempi vetovoima.
Kaikkien näiden tarpeiden täyttäminen on ratkaisevan tärkeää sen määrittämiseksi, onko ohjelmisto edelleen elinkelpoinen, ja koska ohjelmistovarat ovat niin tärkeä osa tietotaloutta vuodesta 2011 lähtien, ohjelmistokehityksestä on tullut liiketoiminnan sopeutumisen ja kasvun keskeinen osa. Meir Lehman, joka on tietojenkäsittelytieteilijä Lontoon Imperial Collegessa, on luonut Lehmanin lait, jotka määrittelivät lyhyesti ohjelmistokehityksen prosessin ja ohjasivat kehittäjiä ohjelmiston visualisoinnin eteenpäin ajattelussa. Lehmanin lait perustuvat oletukseen, että ohjelmisto kehittyy palautettaessa sen suorituskyvystä ja että sen väistämätön taipumus muuttua yhä monimutkaisemmaksi.
Lehman on todennut, että ohjelmistokehityksen luonne heijastaa luonnollisia muutoksia, kuten hedelmäkärpästen mutaatiota, tapaa, jolla kaupungit laajenevat ajan myötä, ja sitä, miten sotilaalliset rakenteet parantavat asteittain asejärjestelmiä. Prosessin kolme ensimmäistä lakia jäljittelevät näitä suuntauksia yksityiskohtaisesti jatkuvassa muutoksessa, monimutkaisuuden lisäämisessä ja suuressa ohjelmakehityksessä. Jatkuva muutos viittaa siihen, että ohjelma on mukautettava vastaamaan todellisia todellisia liiketoimintaolosuhteita, mikä heijastaa monimutkaisuuden lisääntymistä, koska ohjelman on täytettävä odottamattomien tarpeiden jatkuvasti kasvava monimuotoisuus. Suuri ohjelmakehitys viittaa tarpeeseen korjata virheitä ja uusia ohjelman julkaisuja, jotka ovat väistämättä sidoksissa markkinoiden vaatimuksiin.
Ohjelmistokehityksen viidestä jäljellä olevasta laista numero neljä on organisaation vakaus ja viittaa siihen, että ohjelman kasvu elää omaa elämäänsä tarkoituksellisesti sille varattujen resurssien tasosta riippumatta, ja numero viisi on tuttuuden säilyttäminen toteaa, että ohjelman asteittainen kasvu on väistämätöntä. Kahdeksan Lehmanin lain numero kuusi on jatkuva kasvu, joka on tarpeen kuluttajien kysynnän tyydyttämiseksi, ja numero seitsemän on heikkenevä laatu, mikä korostaa sitä, että kaikki ohjelmistot kohtaavat lopulta toiminnallisuuden rajoituksia, joita ne eivät voi täyttää. Ohjelmistokehityksen viimeinen Lehmanin laki on itse Feedback System, joka yhdistää kaikki ohjelmiston elinkelpoisuuteen vaikuttavat voimat nopeuttaakseen sitä joko menestykseen tai väistämättömään vanhenemiseen ja kuolemaan.