Feb 17, 2016

Software production guided by principle of continuous delivery

5DM_3014-Edit.jpg

Better_Tech_Blog_intro_banner.jpg

[in Finnish below]

Principles of software production have changed from traditional style to agile software development such as Agile, Scrum, TDD and Continuous Delivery. Thanks to agile software development, it’s easier and faster to react to customers’ and project’s needs. Fast changes require a solid method which enables the fast feedback about the changes and their impact. To answer this challenge we have chosen Continuous Delivery as one of our methods. It supports our goal to deliver our products fast to our customers.

Continuous Delivery (CD) can be compared to automated lines that rapidly and continuously pump out the same type of product with the same uniformity. Product manufacturing requires a range of functions, the outcome of which is the desired product. Although the line is automated, it requires human supervision to ensure that nothing happens to stop the flow of production. Minor problems are, of course, sorted out automatically, and the system also notifies the developer when necessary. The role of personnel is to introduce raw materials on the line and ensure that the line stays operational. In addition, the line’s functions must be developed, and inspections and extra functions have to be added, depending on the product being manufactured at any given time.

Want to know more about working for Landis+Gyr? Just click.
Here at Landis+Gyr, Continuous Integration (CI) means that changes that are made to the system are tested by compiling the code. Early testing is also performed to determine how the change will be potentially integrated into the existing code base. These operations are performed several times a day. This type of inspection early on in the process serves to increase the reliability of the software and eliminates merge conflicts in the base code lines, which in turn speeds up the development and testing of the product. Continuous integration allows us to continuously produce new versions of the product.

We have chosen GIT, Gerrit and Jenkins as our tools for continuous delivery and continuous integration. How we use them and what were the reasons we chose them – that’s a topic for a new blog post!

 


Jatkuva toimitus ohjelmistotuotannon periaatteena

Ohjelmistotuotannon menetelmät ovat muuttuneet perinteisestä tyylistä ketteriin menetelmiin kuten Agile, Scrum, TDD ja jatkuva toimitus. Näin on meillä Landis+Gyrilläkin. Ketterät menetelmät ovat mahdollistaneet paremman ja nopeamman reagoinnin projektin ja asiakkaiden vaatimuksiin.

Nopeat muutokset tarvitsevat taustalle toiminnon, jolla saadaan nopeasti palaute muutoksista ja niiden vaikutuksista. Vastauksena tähän haasteeseen meillä on käytössä jatkuvan toimituksen malli, jonka yhtenä tavoitteena on saada tuote nopeasti asiakkaalle.

Jatkuva toimitus (Continuous Delivery) on verrattavissa automatisoituihin linjastoihin, joista tuotetaan nopeasti samanlaista ja tasalaatuista tuotetta ulos jatkuvasti. Tuotteen valmistus vaatii erilaisia toimintoja, ja haluttu tuote on niiden summa. Vaikka linjasto on automatisoitu, ihmisten pitää valvoa sitä, jotta linjastossa ei tapahdu mitään vakavaa, mikä sen voisi pysäyttää. Pienimmät ongelmat toki hoitaa automaatio, joka tarvittaessa ilmoittaa ongelmista tekijälle. Ihmisten tehtävä on tuottaa raaka-ainetta linjastolle sekä ylläpitää sitä niin, että se ei pysähdy. Lisäksi on kehitettävä linjastolla tapahtuvia toimintoja sekä lisättävä tarkistuksia tai lisätoimintoja riippuen siitä, mitä tuotetta ollaan milloinkin tekemässä.

 

Want to know more about working for Landis+Gyr? Just click.

 

Meillä Landis+Gyrillä jatkuva integraatio (Continuous Integration) tarkoittaa sitä, että muutokset, joita järjestelmään tehdään, testataan tekemällä koodille käännös. Lisäksi testataan jo etukäteen, miten muutos integroituu olemassa olevaan koodipohjaan. Näitä toimintoja tehdään useita kertoja päivässä. Tällaisella alkuvaiheessa tehtävällä tarkistuksella lisätään ohjelmiston luotettavuutta ja päästään eroon ongelmista muutosten yhteensovittamisessa, mikä taas nopeuttaa kehitystä ja tuotteen testausta. Jatkuva integraatio mahdollistaa sen, että pystymme tuottamaan jatkuvasti uuden version tuotteesta.

Meillä jatkuvan integraation ja jatkuvan toimituksen työkaluiksi on valittu GIT, Gerrit ja Jenkins. Se, miten niitä meillä käytetään ja miksi ne meille valittiin, onkin jo uuden postauksen aihe.