Vana ja kehva tarkvaraga oleme vist kõik kokku puutunud. Mis takistab siis tarkvara paremaks tegemist? Huvitav lugemine on raamat Re-Engineering Legacy Software by Chris Birchall. Siin 1. peatükis on kirjas mõned programmeerijate kartused:

  • Millised omadused ei ole enam kasutusel, kas on ohutu mingi funktsioon kustutada?
  • Mis vead on ohutu parandada? Mõned kasutajad sõltuvad tarkvaraveast, see ongi nende jaoks harjumuspärane süsteemi omadus.
  • Missuguste kasutajatega tuleks enne nõu pidada, kui hakata muudatusi tegema?

Need hirmud võivad olla täiesti põhjendatud, kuid neile on ka lihtsad lahendused:

muudatus kasu risk vajalikud tegevused
 vana tarkvarajupi kustutamine
  • edasine arendus on kergem
  • parem jõudlus  
  •  keegi ikka kasutab seda tarkvaraosa
  • tee logifaili kirjutamine ja vaata
  • küsi kasutaja käest
 koodijuppide ümberstruktureerimine (refactoring)  
  • edasine arendus on lihtsam
  •  oht midagi ära rikkuda
  •  koodi mitmekesi ülevaatus
  • testimine
tarkvarateegi uuendamine
  • veaparandused
  • jõudluse paranemine
  • muutunud teek rikub varasema toimimise
  • loe teegi muudatustelogi
  • vaata üle teegi kood
  • testimine

 Tegelikult ei ole ju need asjad arendajale üle jõu käivad. Milles võib siis asi olla? Raamat toob välja ka selle:

  • vähene näost-näkku kommunikatsioon
  • hirm rumal välja paista (kui keegi avastab, kuidas mu kood töötab, võib ta mind kritiseerima hakata)
  • "hõivatud nägu" (kõrvaklapid peas ja pinges nägu, mis reedab, et arendaja on väga hõivatud)

viiteid:

http://www.targotennisberg.com/tarkvara/2015/08/06/tarkvara-riknemine/

https://www.safaribooksonline.com/library/view/re-engineering-legacy-software/9781617292507/

https://www.safaribooksonline.com/library/view/re-engineering-legacy-software/9781617292507/kindle_split_008/