Improvement of the software process for renewing legacy simulation software on top of the Simantics platform: A case study
No Thumbnail Available
URL
Journal Title
Journal ISSN
Volume Title
School of Science |
Master's thesis
Checking the digitized thesis and permission for publishing
Instructions for the author
Instructions for the author
Authors
Date
2013
Department
Major/Subject
Tietojenkäsittelyoppi
Mcode
T-76
Degree programme
Language
en
Pages
vii + 102
Series
Abstract
Simantics is an open-source integration platform for modelling and simulation tools. It was originally developed by VIT Technical Research Centre of Finland. KCL-ECO is a legacy life-cycle assessment tool currently being renewed on top of the Simantics platform. In this thesis the software development processes of Simantics development team at VIT were studied and analysed based on observations and interviews. The KCL-ECO project was chosen as the target for a more detailed case study. Improvements for the current process are suggested based on literature study of state of the art agile software development methodologies. Implementation of serum practices had started before this study was conducted. Still a number of conflicts were identified between the current process and the requirements of scrum. Application developers are highly dependent on external platform support even though scrum teams should be independent. Quality of many of Simantics components is poor; components are not generic and lack documentation. Application developers are unable to implement product backlogs in order since they often have to wait for platform support. All developers must switch between tasks and/or projects often and have a huge amount of work in progress. The most significant suggestion is to prefer static, larger, co-located and more independent project teams to facilitate high-bandwidth face-to-face co-operation and learning. Larger teams have a wider set of skills and are less dependent on external support. Small projects should be implemented by a multi-project team constructing their sprint from several product backlogs. Project teams should set a realistic definition of done for themselves and make it more demanding over time. Teams should estimate their progress based on past velocity to enable better decision making. Simantics knowledge should be shared through pair programming especially for new developers. Platform developers should only add new requests to the platform backlog that they commit to implement in the near future. This would avoid filling the backlog with tasks that are never implemented and reduce unnecessary waiting. Improving the platform documentation should be started by commenting the source code. Some of the platform developers' work should be outsourced to others to make them more responsive. The platform codebase should be moved to Godthab to have more sandboxes for platform development, a review process and to gain more visibility for the Simantics.Simantics on alun perin Teknologian tutkimuskeskus VTT:n kehittämä avoimen lähdekoodin integraatioalusta mallinnus ja simulaatiotyökaluille. KCL-ECO on vanha elinkaarimallinnusohjelmisto jota ollaan parhaillaan uudistamassa Simantics alustan päälle. Tässä diplomityössä tutustuttiin Simantics tiimin ohjelmistokehitysprosesseihin havainnoimalla ja haastattelemalla tiimin jäseniä. KCL-ECO projekti valittiin tarkemman tapaustutkimuksen kohteeksi. Kehitysehdotuksia prosessiin muodostettiin ketteriin ohjelmistokehitysmenetelmiin keskittyvän kirjallisuustutkimuksen perusteella. Scrum prosessin implementointi oli käynnissä jo ennen tämän opinnäytetyön aloittamista. Silti nykyisen prosessin ja scrum kehyksen väliltä löytyi ristiriitoja. Sovelluskehittäjät ovat hyvin riippuvaisia ulkopuolisesta avusta vaikka scrum tiimien pitäisi olla itsenäisiä. Useiden Simantics komponenttien laatu havaittiin heikoksi, ne eivät olleet geneerisiä eivätkä dokumentoituja. Sovelluskehittäjät eivät tällä hetkellä pysty implementoimaan uusia ominaisuuksia halutussa järjestyksessä vaan joutuivat usein odottamaan ulkopuolista tukea. Kaikki kehittäjät joutuvat siirtymään työtehtävästä ja/tai projektista toiseen usein ja heillä on suuri määrä työtä yhtä aikaa meneillään. Merkittävin ehdotus on suosia pysyviä, isompia, yhteen tilaan keskitettyjä ja itsenäisempiä projektitiimejä joissa mahdollistuu kasvokkain tapahtuva yhteistyö ja oppiminen. Suuremmissa tiimeissä on enemmän osaamista ja ne ovat vähemmän riippuvaisia ulkopuolisesta avusta. Pienet projektit tulisi allokoida tiimille joka muodostaa pyrähdyksensä usean eri tuotteen työlistasta. Projektitiimeillä tulisi olla realistinen valmiin määritelmä jota kehitetään jatkuvasti vaativammaksi. Edistymistä tulisi arvioida historiallisen etenemisen perusteella, koska tiedolla on ohjausvaikutusta loppuprojektiin. Simantics tietoutta tulisi jakaa uusille kehittäjille hyödyntäen pariohjelmointia. Alustakehittäjien tulisi ottaa työlistalleen vain työtä jonka he sitoutuvat implementoimaan pian välttyäkseen lisäämästä työtä jota ei ikinä tehdä. Tällöin sovelluskehittäjät eivät myöskään odottaisi ominaisuuksia joita ei koskaan tule. Simanticsin dokumentaation parantaminen pitäisi aloittaa koodin kommentoinnista. Parantaakseen alustakehittäjien mahdollisuuksia vastata tukipyyntöihin osa heidän tämän hetkisistä vastuista tulisi siirtää muille kehittäjille. Simanticsin koodi kannattaisi siirtää GitHubiin jotta kehittäjille saataisiin helpommin lisää hiekkalaatikoita alustakehitykseen, tehokas koodikatselmusproseduuri sekä Simantics alusta saisi lisää näkyvyyttä.Description
Supervisor
Lassenius, CasperThesis advisor
Karhela, TommiKeywords
software processes, ohjelmistokehitysprosessit, software platforms, ohjelmistoalustat, agile software development, ketterä kehitys, scrum, scrum