{"id":1758,"date":"2017-01-12T14:28:12","date_gmt":"2017-01-12T13:28:12","guid":{"rendered":"https:\/\/blog.mi.hdm-stuttgart.de\/?p=1758"},"modified":"2023-06-07T15:23:25","modified_gmt":"2023-06-07T13:23:25","slug":"snakes-exploring-pipelines-a-system-engineering-and-management-project-5","status":"publish","type":"post","link":"https:\/\/blog.mi.hdm-stuttgart.de\/index.php\/2017\/01\/12\/snakes-exploring-pipelines-a-system-engineering-and-management-project-5\/","title":{"rendered":"Snakes exploring Pipelines &#8211; A \u201cSystem Engineering and Management\u201d Project"},"content":{"rendered":"<h3>Part 4: Jenkins and Wrap Up<\/h3>\n<p><strong> This series of blog entries describes a student project focused on developing an application by using methods like pair programming, test driven development and deployment pipelines. <\/strong><\/p>\n<p>Our first blog entry for this year will at the same time be the final one for this project as well, but to ease your pain of separation, we saved a highlight for the very end: Jenkins integration!<br \/>\nStarting with a short introduction to Jenkins, in this entry we\u2019ll guide you through installation and configuration.<\/p>\n<p><!--more--><\/p>\n<p>We already introduced automation in an earlier blog entry with Gradle, so what\u2019s Jenkins now exactly?<br \/>\nBasically, it is a server-based automation engine for managing and realizing continuous development and integration. Similar to Gradle, Jenkins is in large parts written in Java and easily extensible by a multitude of plugins. Jenkins is free and open software, and as such is itself further developed and improved continuously. It supports integration with other build, testing and code versioning tools, in our case especially Gradle, JUnit and Github.<\/p>\n<p>Regarding programming languages, of course you can use Jenkins not only for Java, but also for many others, depending on which plugins are installed by the user.<\/p>\n<p>As a quick side note: An aspect of Jenkins which is extremely important in practice is its security concept. The security entry on the Jenkins website (https:\/\/jenkins.io\/security\/) offers ways to receive security notifications in mailing lists or as RSS feed and offers users a way of participating in improving security through the dedicated SECURITY project.<\/p>\n<p>However, first things first: How do you even install and configure Jenkins initially?<br \/>\nWe installed Jenkins locally on Windows 10 as follows:<\/p>\n<ol>\n<li>First, download the needed files from <a href=\"https:\/\/jenkins.io\/\">https:\/\/jenkins.io\/<\/a> (there\u2019s also lots of additional information and documentation on the website).<\/li>\n<li>With the shell, navigate to the location of the jenkins.war file and execute:<br \/>\n<strong>java -jar jenkins.war<\/strong><br \/>\nThis command should run the actual installation.<\/li>\n<li>As soon as Jenkins is running, use a browser and access localhost:8080<br \/>\nYou\u2019ll see the Jenkins login page (the password can be found in \/.jenkins\/secrets\/initialAdminPassword).<\/li>\n<li>Change the port used by Jenkins with:<br \/>\n<strong>java -jar jenkins.war &#8211;httpPort=9090<\/strong><\/li>\n<li>Selecting \u201cInstall suggested Plugins\u201d sets up the default environment.<br \/>\n\u201cJenkins&gt; New Element&gt;Pipeline Project\u201d allows you to create a new project including project name, description, etc.:<br \/>\n<a href=\"https:\/\/blog.mi.hdm-stuttgart.de\/wp-content\/uploads\/2017\/01\/Pipeline1.png\"><img loading=\"lazy\" decoding=\"async\" data-attachment-id=\"1759\" data-permalink=\"https:\/\/blog.mi.hdm-stuttgart.de\/index.php\/2017\/01\/12\/snakes-exploring-pipelines-a-system-engineering-and-management-project-5\/pipeline1\/\" data-orig-file=\"https:\/\/blog.mi.hdm-stuttgart.de\/wp-content\/uploads\/2017\/01\/Pipeline1.png\" data-orig-size=\"1920,1080\" data-comments-opened=\"1\" data-image-meta=\"{&quot;aperture&quot;:&quot;0&quot;,&quot;credit&quot;:&quot;&quot;,&quot;camera&quot;:&quot;&quot;,&quot;caption&quot;:&quot;&quot;,&quot;created_timestamp&quot;:&quot;0&quot;,&quot;copyright&quot;:&quot;&quot;,&quot;focal_length&quot;:&quot;0&quot;,&quot;iso&quot;:&quot;0&quot;,&quot;shutter_speed&quot;:&quot;0&quot;,&quot;title&quot;:&quot;&quot;,&quot;orientation&quot;:&quot;0&quot;}\" data-image-title=\"Pipeline1\" data-image-description=\"\" data-image-caption=\"\" data-large-file=\"https:\/\/blog.mi.hdm-stuttgart.de\/wp-content\/uploads\/2017\/01\/Pipeline1-1024x576.png\" class=\"alignnone size-large wp-image-1759\" src=\"https:\/\/blog.mi.hdm-stuttgart.de\/wp-content\/uploads\/2017\/01\/Pipeline1-1024x576.png\" alt=\"\" width=\"656\" height=\"369\" srcset=\"https:\/\/blog.mi.hdm-stuttgart.de\/wp-content\/uploads\/2017\/01\/Pipeline1-1024x576.png 1024w, https:\/\/blog.mi.hdm-stuttgart.de\/wp-content\/uploads\/2017\/01\/Pipeline1-300x169.png 300w, https:\/\/blog.mi.hdm-stuttgart.de\/wp-content\/uploads\/2017\/01\/Pipeline1-768x432.png 768w, https:\/\/blog.mi.hdm-stuttgart.de\/wp-content\/uploads\/2017\/01\/Pipeline1.png 1920w\" sizes=\"auto, (max-width: 656px) 100vw, 656px\" \/><\/a><a href=\"https:\/\/blog.mi.hdm-stuttgart.de\/wp-content\/uploads\/2017\/01\/Pipeline2.png\"><img loading=\"lazy\" decoding=\"async\" data-attachment-id=\"1760\" data-permalink=\"https:\/\/blog.mi.hdm-stuttgart.de\/index.php\/2017\/01\/12\/snakes-exploring-pipelines-a-system-engineering-and-management-project-5\/pipeline2\/\" data-orig-file=\"https:\/\/blog.mi.hdm-stuttgart.de\/wp-content\/uploads\/2017\/01\/Pipeline2.png\" data-orig-size=\"1920,1080\" data-comments-opened=\"1\" data-image-meta=\"{&quot;aperture&quot;:&quot;0&quot;,&quot;credit&quot;:&quot;&quot;,&quot;camera&quot;:&quot;&quot;,&quot;caption&quot;:&quot;&quot;,&quot;created_timestamp&quot;:&quot;0&quot;,&quot;copyright&quot;:&quot;&quot;,&quot;focal_length&quot;:&quot;0&quot;,&quot;iso&quot;:&quot;0&quot;,&quot;shutter_speed&quot;:&quot;0&quot;,&quot;title&quot;:&quot;&quot;,&quot;orientation&quot;:&quot;0&quot;}\" data-image-title=\"Pipeline2\" data-image-description=\"\" data-image-caption=\"\" data-large-file=\"https:\/\/blog.mi.hdm-stuttgart.de\/wp-content\/uploads\/2017\/01\/Pipeline2-1024x576.png\" class=\"alignnone size-large wp-image-1760\" src=\"https:\/\/blog.mi.hdm-stuttgart.de\/wp-content\/uploads\/2017\/01\/Pipeline2-1024x576.png\" alt=\"\" width=\"656\" height=\"369\" srcset=\"https:\/\/blog.mi.hdm-stuttgart.de\/wp-content\/uploads\/2017\/01\/Pipeline2-1024x576.png 1024w, https:\/\/blog.mi.hdm-stuttgart.de\/wp-content\/uploads\/2017\/01\/Pipeline2-300x169.png 300w, https:\/\/blog.mi.hdm-stuttgart.de\/wp-content\/uploads\/2017\/01\/Pipeline2-768x432.png 768w, https:\/\/blog.mi.hdm-stuttgart.de\/wp-content\/uploads\/2017\/01\/Pipeline2.png 1920w\" sizes=\"auto, (max-width: 656px) 100vw, 656px\" \/><\/a><\/li>\n<li>Remember to tick \u201cGithub Project\u201d during this step, if you want to use it. You have to specify the respective URLs, SSH keys or user credentials. (Alternatively to Github, you can also specify a local repository.)<\/li>\n<li>Specify the event when the build should be triggered.<\/li>\n<li>Create the Pipeline definition: <a href=\"https:\/\/blog.mi.hdm-stuttgart.de\/wp-content\/uploads\/2017\/01\/Pipeline3.png\"><img loading=\"lazy\" decoding=\"async\" data-attachment-id=\"1761\" data-permalink=\"https:\/\/blog.mi.hdm-stuttgart.de\/index.php\/2017\/01\/12\/snakes-exploring-pipelines-a-system-engineering-and-management-project-5\/pipeline3\/\" data-orig-file=\"https:\/\/blog.mi.hdm-stuttgart.de\/wp-content\/uploads\/2017\/01\/Pipeline3.png\" data-orig-size=\"1920,1080\" data-comments-opened=\"1\" data-image-meta=\"{&quot;aperture&quot;:&quot;0&quot;,&quot;credit&quot;:&quot;&quot;,&quot;camera&quot;:&quot;&quot;,&quot;caption&quot;:&quot;&quot;,&quot;created_timestamp&quot;:&quot;0&quot;,&quot;copyright&quot;:&quot;&quot;,&quot;focal_length&quot;:&quot;0&quot;,&quot;iso&quot;:&quot;0&quot;,&quot;shutter_speed&quot;:&quot;0&quot;,&quot;title&quot;:&quot;&quot;,&quot;orientation&quot;:&quot;0&quot;}\" data-image-title=\"Pipeline3\" data-image-description=\"\" data-image-caption=\"\" data-large-file=\"https:\/\/blog.mi.hdm-stuttgart.de\/wp-content\/uploads\/2017\/01\/Pipeline3-1024x576.png\" class=\"alignnone size-large wp-image-1761\" src=\"https:\/\/blog.mi.hdm-stuttgart.de\/wp-content\/uploads\/2017\/01\/Pipeline3-1024x576.png\" alt=\"\" width=\"656\" height=\"369\" srcset=\"https:\/\/blog.mi.hdm-stuttgart.de\/wp-content\/uploads\/2017\/01\/Pipeline3-1024x576.png 1024w, https:\/\/blog.mi.hdm-stuttgart.de\/wp-content\/uploads\/2017\/01\/Pipeline3-300x169.png 300w, https:\/\/blog.mi.hdm-stuttgart.de\/wp-content\/uploads\/2017\/01\/Pipeline3-768x432.png 768w, https:\/\/blog.mi.hdm-stuttgart.de\/wp-content\/uploads\/2017\/01\/Pipeline3.png 1920w\" sizes=\"auto, (max-width: 656px) 100vw, 656px\" \/><\/a><\/li>\n<li>Create a Jenkinsfile in the project folder to specify how to test and run the project:<br \/>\n<a href=\"https:\/\/blog.mi.hdm-stuttgart.de\/wp-content\/uploads\/2017\/01\/jenkins_code-1.png\"><img loading=\"lazy\" decoding=\"async\" data-attachment-id=\"1766\" data-permalink=\"https:\/\/blog.mi.hdm-stuttgart.de\/index.php\/2017\/01\/12\/snakes-exploring-pipelines-a-system-engineering-and-management-project-5\/jenkins_code-2\/\" data-orig-file=\"https:\/\/blog.mi.hdm-stuttgart.de\/wp-content\/uploads\/2017\/01\/jenkins_code-1.png\" data-orig-size=\"612,434\" data-comments-opened=\"1\" data-image-meta=\"{&quot;aperture&quot;:&quot;0&quot;,&quot;credit&quot;:&quot;&quot;,&quot;camera&quot;:&quot;&quot;,&quot;caption&quot;:&quot;&quot;,&quot;created_timestamp&quot;:&quot;0&quot;,&quot;copyright&quot;:&quot;&quot;,&quot;focal_length&quot;:&quot;0&quot;,&quot;iso&quot;:&quot;0&quot;,&quot;shutter_speed&quot;:&quot;0&quot;,&quot;title&quot;:&quot;&quot;,&quot;orientation&quot;:&quot;0&quot;}\" data-image-title=\"jenkins_code\" data-image-description=\"\" data-image-caption=\"\" data-large-file=\"https:\/\/blog.mi.hdm-stuttgart.de\/wp-content\/uploads\/2017\/01\/jenkins_code-1.png\" class=\"alignnone size-full wp-image-1766\" src=\"https:\/\/blog.mi.hdm-stuttgart.de\/wp-content\/uploads\/2017\/01\/jenkins_code-1.png\" alt=\"\" width=\"612\" height=\"434\" srcset=\"https:\/\/blog.mi.hdm-stuttgart.de\/wp-content\/uploads\/2017\/01\/jenkins_code-1.png 612w, https:\/\/blog.mi.hdm-stuttgart.de\/wp-content\/uploads\/2017\/01\/jenkins_code-1-300x213.png 300w\" sizes=\"auto, (max-width: 612px) 100vw, 612px\" \/><\/a><\/li>\n<li>After commiting and pushing the Jenkinsfile, the commands in it will run each time when selecting \u201cBuild now\u201d in the Jenkins user interface. The result of a successful (and some less successful) run can be seen here:<br \/>\n<a href=\"https:\/\/blog.mi.hdm-stuttgart.de\/wp-content\/uploads\/2017\/01\/pipeline7.png\"><img loading=\"lazy\" decoding=\"async\" data-attachment-id=\"1763\" data-permalink=\"https:\/\/blog.mi.hdm-stuttgart.de\/index.php\/2017\/01\/12\/snakes-exploring-pipelines-a-system-engineering-and-management-project-5\/pipeline7\/\" data-orig-file=\"https:\/\/blog.mi.hdm-stuttgart.de\/wp-content\/uploads\/2017\/01\/pipeline7.png\" data-orig-size=\"1920,1080\" data-comments-opened=\"1\" data-image-meta=\"{&quot;aperture&quot;:&quot;0&quot;,&quot;credit&quot;:&quot;&quot;,&quot;camera&quot;:&quot;&quot;,&quot;caption&quot;:&quot;&quot;,&quot;created_timestamp&quot;:&quot;0&quot;,&quot;copyright&quot;:&quot;&quot;,&quot;focal_length&quot;:&quot;0&quot;,&quot;iso&quot;:&quot;0&quot;,&quot;shutter_speed&quot;:&quot;0&quot;,&quot;title&quot;:&quot;&quot;,&quot;orientation&quot;:&quot;0&quot;}\" data-image-title=\"pipeline7\" data-image-description=\"\" data-image-caption=\"\" data-large-file=\"https:\/\/blog.mi.hdm-stuttgart.de\/wp-content\/uploads\/2017\/01\/pipeline7-1024x576.png\" class=\"alignnone size-large wp-image-1763\" src=\"https:\/\/blog.mi.hdm-stuttgart.de\/wp-content\/uploads\/2017\/01\/pipeline7-1024x576.png\" alt=\"\" width=\"656\" height=\"369\" srcset=\"https:\/\/blog.mi.hdm-stuttgart.de\/wp-content\/uploads\/2017\/01\/pipeline7-1024x576.png 1024w, https:\/\/blog.mi.hdm-stuttgart.de\/wp-content\/uploads\/2017\/01\/pipeline7-300x169.png 300w, https:\/\/blog.mi.hdm-stuttgart.de\/wp-content\/uploads\/2017\/01\/pipeline7-768x432.png 768w, https:\/\/blog.mi.hdm-stuttgart.de\/wp-content\/uploads\/2017\/01\/pipeline7.png 1920w\" sizes=\"auto, (max-width: 656px) 100vw, 656px\" \/><\/a><\/li>\n<li>The results of the unit tests can be viewed when clicking on the build. Install a plugin like Test Results Analyzer to view the results in nice colours.<\/li>\n<\/ol>\n<p>This concludes this blog entry and our series. On our journey, we\u2019ve dealt with a lot of tools and topics surrounding software development pipelines, from designing the an application over setting up our build and code versioning tools, applying pair programming and code guidelines, and setting up the environment for the holy grail of the development process: Continuous integration. In case you missed one entry, here\u2019s a complete list:<\/p>\n<p><a href=\"https:\/\/blog.mi.hdm-stuttgart.de\/index.php\/2016\/11\/26\/snakes-exploring-pipelines-a-system-engineering-and-management-project\/\">Part 0: Introduction<\/a><br \/>\n<a href=\"https:\/\/blog.mi.hdm-stuttgart.de\/index.php\/2016\/12\/08\/snakes-exploring-pipelines-a-system-engineering-and-management-project-2\/\">Part 1: Tool Setup<\/a><br \/>\n<a href=\"https:\/\/blog.mi.hdm-stuttgart.de\/index.php\/2016\/12\/09\/snakes-exploring-pipelines-a-system-engineering-and-management-project-3\/\">Part 2: Initial Coding<\/a><br \/>\n<a href=\"https:\/\/blog.mi.hdm-stuttgart.de\/index.php\/2016\/12\/22\/snakes-exploring-pipelines-a-system-engineering-and-management-project-4\/\">Part 3: Coding Guidelines<\/a><br \/>\nPart 4: Jenkins and Wrap Up (This one here)<\/p>\n<p>We hope that our blog series was informative for you, fun to read, and that you learned one thing or two about snakes.<\/p>\n<p>Happy (continuous) coding! \ud83d\ude42<\/p>\n<figure id=\"attachment_1765\" aria-describedby=\"caption-attachment-1765\" style=\"width: 640px\" class=\"wp-caption alignnone\"><a href=\"https:\/\/blog.mi.hdm-stuttgart.de\/wp-content\/uploads\/2017\/01\/goodbye_snake.jpg\"><img loading=\"lazy\" decoding=\"async\" data-attachment-id=\"1765\" data-permalink=\"https:\/\/blog.mi.hdm-stuttgart.de\/index.php\/2017\/01\/12\/snakes-exploring-pipelines-a-system-engineering-and-management-project-5\/goodbye_snake\/\" data-orig-file=\"https:\/\/blog.mi.hdm-stuttgart.de\/wp-content\/uploads\/2017\/01\/goodbye_snake.jpg\" data-orig-size=\"640,427\" data-comments-opened=\"1\" data-image-meta=\"{&quot;aperture&quot;:&quot;0&quot;,&quot;credit&quot;:&quot;Photographer:  David L Harkins&quot;,&quot;camera&quot;:&quot;&quot;,&quot;caption&quot;:&quot;&quot;,&quot;created_timestamp&quot;:&quot;0&quot;,&quot;copyright&quot;:&quot;Copyright:  David L Harkins&quot;,&quot;focal_length&quot;:&quot;0&quot;,&quot;iso&quot;:&quot;0&quot;,&quot;shutter_speed&quot;:&quot;0&quot;,&quot;title&quot;:&quot;&quot;,&quot;orientation&quot;:&quot;0&quot;}\" data-image-title=\"goodbye_snake\" data-image-description=\"\" data-image-caption=\"&lt;p&gt;Snake waving goodbye&lt;\/p&gt;\n\" data-large-file=\"https:\/\/blog.mi.hdm-stuttgart.de\/wp-content\/uploads\/2017\/01\/goodbye_snake.jpg\" class=\"size-full wp-image-1765\" src=\"https:\/\/blog.mi.hdm-stuttgart.de\/wp-content\/uploads\/2017\/01\/goodbye_snake.jpg\" alt=\"Source: https:\/\/c6.staticflickr.com\/5\/4055\/4528609957_f41a42424e_z.jpg\" width=\"640\" height=\"427\" srcset=\"https:\/\/blog.mi.hdm-stuttgart.de\/wp-content\/uploads\/2017\/01\/goodbye_snake.jpg 640w, https:\/\/blog.mi.hdm-stuttgart.de\/wp-content\/uploads\/2017\/01\/goodbye_snake-300x200.jpg 300w\" sizes=\"auto, (max-width: 640px) 100vw, 640px\" \/><\/a><figcaption id=\"caption-attachment-1765\" class=\"wp-caption-text\">Snake waving goodbye<\/figcaption><\/figure>\n","protected":false},"excerpt":{"rendered":"<p>Part 4: Jenkins and Wrap Up This series of blog entries describes a student project focused on developing an application by using methods like pair programming, test driven development and deployment pipelines. Our first blog entry for this year will at the same time be the final one for this project as well, but to [&hellip;]<\/p>\n","protected":false},"author":58,"featured_media":0,"comment_status":"open","ping_status":"closed","sticky":false,"template":"","format":"standard","meta":{"_jetpack_memberships_contains_paid_content":false,"footnotes":""},"categories":[1,22,651,2],"tags":[],"ppma_author":[698],"class_list":["post-1758","post","type-post","status-publish","format-standard","hentry","category-allgemein","category-student-projects","category-system-designs","category-system-engineering"],"aioseo_notices":[],"jetpack_featured_media_url":"","jetpack-related-posts":[{"id":1729,"url":"https:\/\/blog.mi.hdm-stuttgart.de\/index.php\/2016\/12\/08\/snakes-exploring-pipelines-a-system-engineering-and-management-project-2\/","url_meta":{"origin":1758,"position":0},"title":"Snakes exploring Pipelines &#8211; A \u201cSystem Engineering and Management\u201d Project","author":"Yann Loic Philippczyk","date":"8. December 2016","format":false,"excerpt":"Part 1: Tool Setup This series of blog entries describes a student project focused on developing an application by using methods like pair programming, test driven development and deployment pipelines. Welcome to the next part our project, on its way to become the Snake game with the very best underlying\u2026","rel":"","context":"In &quot;Allgemein&quot;","block_context":{"text":"Allgemein","link":"https:\/\/blog.mi.hdm-stuttgart.de\/index.php\/category\/allgemein\/"},"img":{"alt_text":"","src":"https:\/\/i0.wp.com\/blog.mi.hdm-stuttgart.de\/wp-content\/uploads\/2016\/12\/blue-krait.jpg?resize=350%2C200&ssl=1","width":350,"height":200,"srcset":"https:\/\/i0.wp.com\/blog.mi.hdm-stuttgart.de\/wp-content\/uploads\/2016\/12\/blue-krait.jpg?resize=350%2C200&ssl=1 1x, https:\/\/i0.wp.com\/blog.mi.hdm-stuttgart.de\/wp-content\/uploads\/2016\/12\/blue-krait.jpg?resize=525%2C300&ssl=1 1.5x"},"classes":[]},{"id":3329,"url":"https:\/\/blog.mi.hdm-stuttgart.de\/index.php\/2018\/03\/28\/android-sdk-and-emulator-in-docker-for-testing\/","url_meta":{"origin":1758,"position":1},"title":"Android SDK and emulator in Docker for testing","author":"Michael Laemmle","date":"28. March 2018","format":false,"excerpt":"Related articles:\u00a0\u25baTake Me Home - Project Overview\u00a0 \u25baCI\/CD infrastructure: Choosing and setting up a server with Jenkins as Docker image\u00a0 \u25baAutomated Unit- and GUI-Testing for Android in Jenkins\u00a0 \u25baTesting a MongoDB with NodeJS, Mocha and Mongoose During our Android development project, we had to cope with several technological and organizational\u2026","rel":"","context":"In &quot;Mobile Apps&quot;","block_context":{"text":"Mobile Apps","link":"https:\/\/blog.mi.hdm-stuttgart.de\/index.php\/category\/interactive-media\/mobile-apps\/"},"img":{"alt_text":"","src":"https:\/\/i0.wp.com\/blog.mi.hdm-stuttgart.de\/wp-content\/uploads\/2018\/03\/Pipeline.png?resize=350%2C200&ssl=1","width":350,"height":200,"srcset":"https:\/\/i0.wp.com\/blog.mi.hdm-stuttgart.de\/wp-content\/uploads\/2018\/03\/Pipeline.png?resize=350%2C200&ssl=1 1x, https:\/\/i0.wp.com\/blog.mi.hdm-stuttgart.de\/wp-content\/uploads\/2018\/03\/Pipeline.png?resize=525%2C300&ssl=1 1.5x, https:\/\/i0.wp.com\/blog.mi.hdm-stuttgart.de\/wp-content\/uploads\/2018\/03\/Pipeline.png?resize=700%2C400&ssl=1 2x, https:\/\/i0.wp.com\/blog.mi.hdm-stuttgart.de\/wp-content\/uploads\/2018\/03\/Pipeline.png?resize=1050%2C600&ssl=1 3x"},"classes":[]},{"id":1711,"url":"https:\/\/blog.mi.hdm-stuttgart.de\/index.php\/2016\/11\/26\/snakes-exploring-pipelines-a-system-engineering-and-management-project\/","url_meta":{"origin":1758,"position":2},"title":"Snakes exploring Pipelines &#8211; A \u201cSystem Engineering and Management\u201d Project","author":"Yann Loic Philippczyk","date":"26. November 2016","format":false,"excerpt":"Part 0: Introduction This series of blog entries describes a student project focused on developing an application by using methods like pair programming, test driven development and deployment pipelines. Once upon a time, which was about one and a half months ago, an illustrious group of three students found together,\u2026","rel":"","context":"In &quot;Allgemein&quot;","block_context":{"text":"Allgemein","link":"https:\/\/blog.mi.hdm-stuttgart.de\/index.php\/category\/allgemein\/"},"img":{"alt_text":"A python. (Because snakes. Not the language.) Source: https:\/\/rashmanly.files.wordpress.com\/2008\/10\/1439659.jpg","src":"https:\/\/i0.wp.com\/blog.mi.hdm-stuttgart.de\/wp-content\/uploads\/2016\/11\/0_1-300x300.jpg?resize=350%2C200&ssl=1","width":350,"height":200},"classes":[]},{"id":1751,"url":"https:\/\/blog.mi.hdm-stuttgart.de\/index.php\/2016\/12\/22\/snakes-exploring-pipelines-a-system-engineering-and-management-project-4\/","url_meta":{"origin":1758,"position":3},"title":"Snakes exploring Pipelines &#8211; A \u201cSystem Engineering and Management\u201d Project","author":"Yann Loic Philippczyk","date":"22. December 2016","format":false,"excerpt":"Part 3: Coding Guidelines This series of blog entries describes a student project focused on developing an application by using methods like pair programming, test driven development and deployment pipelines. An important part of any professional software development process (like ours :D ) are coding guidelines and methodologies, so we\u2019ll\u2026","rel":"","context":"In &quot;Allgemein&quot;","block_context":{"text":"Allgemein","link":"https:\/\/blog.mi.hdm-stuttgart.de\/index.php\/category\/allgemein\/"},"img":{"alt_text":"As a visualization of badly developed code: Spaghetti-snakes Source: http:\/\/lh5.ggpht.com\/-Nb0b-coQ1tU\/UsZSC0STOKI\/AAAAAAAAu2I\/F2ehNp977Ww\/narcisse-snake-pits-6%25255B2%25255D.jpg?imgmax=800","src":"https:\/\/i0.wp.com\/blog.mi.hdm-stuttgart.de\/wp-content\/uploads\/2016\/12\/spaghettiSnakes.jpg?resize=350%2C200&ssl=1","width":350,"height":200,"srcset":"https:\/\/i0.wp.com\/blog.mi.hdm-stuttgart.de\/wp-content\/uploads\/2016\/12\/spaghettiSnakes.jpg?resize=350%2C200&ssl=1 1x, https:\/\/i0.wp.com\/blog.mi.hdm-stuttgart.de\/wp-content\/uploads\/2016\/12\/spaghettiSnakes.jpg?resize=525%2C300&ssl=1 1.5x, https:\/\/i0.wp.com\/blog.mi.hdm-stuttgart.de\/wp-content\/uploads\/2016\/12\/spaghettiSnakes.jpg?resize=700%2C400&ssl=1 2x"},"classes":[]},{"id":79,"url":"https:\/\/blog.mi.hdm-stuttgart.de\/index.php\/2015\/12\/29\/sesame-deployment-street-continuous-integration-with-jenkins-tutorial-part-1\/","url_meta":{"origin":1758,"position":4},"title":"Jenkbird \u2013 Continuous Integration with Jenkins Tutorial \u2013 Part 1","author":"Marc Stauffer","date":"29. December 2015","format":false,"excerpt":"Bad days happen to everyone, but when one happens to you, just keep doing your best and never let a bad day make you feel bad about yourself.\u201d \u2014 Big Bird about\u00a0a day with deployment problems \"Continuous Integration\" (CI) and \"Continuous Delivery\" (CD) are topics every modern software developer should\u2026","rel":"","context":"In &quot;DevOps&quot;","block_context":{"text":"DevOps","link":"https:\/\/blog.mi.hdm-stuttgart.de\/index.php\/category\/scalable-systems\/devops\/"},"img":{"alt_text":"Jenkbird","src":"https:\/\/i0.wp.com\/blog.mi.hdm-stuttgart.de\/wp-content\/uploads\/2015\/12\/Yhfrwka16hgJOdDTrwFaVPWfBhzA72MWv9qwzj-tvdA-217x300.png?resize=350%2C200&ssl=1","width":350,"height":200},"classes":[]},{"id":3421,"url":"https:\/\/blog.mi.hdm-stuttgart.de\/index.php\/2018\/03\/28\/take-me-home-project-overview\/","url_meta":{"origin":1758,"position":5},"title":"Take Me Home &#8211; Project Overview","author":"cp054","date":"28. March 2018","format":false,"excerpt":"Related articles:\u00a0\u25baCI\/CD infrastructure: Choosing and setting up a server with Jenkins as Docker image\u00a0\u25baDockerizing Android SDK and Emulator for testing\u00a0 \u25baAutomated Unit- and GUI-Testing for Android in Jenkins\u00a0 \u25baTesting a MongoDB with NodeJS, Mocha and Mongoose During the winter term 2017\/2018, we created an app called Take Me Home. The\u2026","rel":"","context":"In &quot;Mobile Apps&quot;","block_context":{"text":"Mobile Apps","link":"https:\/\/blog.mi.hdm-stuttgart.de\/index.php\/category\/interactive-media\/mobile-apps\/"},"img":{"alt_text":"","src":"https:\/\/i0.wp.com\/blog.mi.hdm-stuttgart.de\/wp-content\/uploads\/2018\/03\/tmh_admin_usermanagement_bearbeitet.png?resize=350%2C200&ssl=1","width":350,"height":200,"srcset":"https:\/\/i0.wp.com\/blog.mi.hdm-stuttgart.de\/wp-content\/uploads\/2018\/03\/tmh_admin_usermanagement_bearbeitet.png?resize=350%2C200&ssl=1 1x, https:\/\/i0.wp.com\/blog.mi.hdm-stuttgart.de\/wp-content\/uploads\/2018\/03\/tmh_admin_usermanagement_bearbeitet.png?resize=525%2C300&ssl=1 1.5x, https:\/\/i0.wp.com\/blog.mi.hdm-stuttgart.de\/wp-content\/uploads\/2018\/03\/tmh_admin_usermanagement_bearbeitet.png?resize=700%2C400&ssl=1 2x, https:\/\/i0.wp.com\/blog.mi.hdm-stuttgart.de\/wp-content\/uploads\/2018\/03\/tmh_admin_usermanagement_bearbeitet.png?resize=1050%2C600&ssl=1 3x, https:\/\/i0.wp.com\/blog.mi.hdm-stuttgart.de\/wp-content\/uploads\/2018\/03\/tmh_admin_usermanagement_bearbeitet.png?resize=1400%2C800&ssl=1 4x"},"classes":[]}],"jetpack_sharing_enabled":true,"authors":[{"term_id":698,"user_id":58,"is_guest":0,"slug":"yp007","display_name":"Yann Loic Philippczyk","avatar_url":"https:\/\/secure.gravatar.com\/avatar\/1417bdd3183c4e56c15d9942de2b27a306ca0e2e6bbd14669933523fd781d806?s=96&d=mm&r=g","0":null,"1":"","2":"","3":"","4":"","5":"","6":"","7":"","8":""}],"_links":{"self":[{"href":"https:\/\/blog.mi.hdm-stuttgart.de\/index.php\/wp-json\/wp\/v2\/posts\/1758","targetHints":{"allow":["GET"]}}],"collection":[{"href":"https:\/\/blog.mi.hdm-stuttgart.de\/index.php\/wp-json\/wp\/v2\/posts"}],"about":[{"href":"https:\/\/blog.mi.hdm-stuttgart.de\/index.php\/wp-json\/wp\/v2\/types\/post"}],"author":[{"embeddable":true,"href":"https:\/\/blog.mi.hdm-stuttgart.de\/index.php\/wp-json\/wp\/v2\/users\/58"}],"replies":[{"embeddable":true,"href":"https:\/\/blog.mi.hdm-stuttgart.de\/index.php\/wp-json\/wp\/v2\/comments?post=1758"}],"version-history":[{"count":2,"href":"https:\/\/blog.mi.hdm-stuttgart.de\/index.php\/wp-json\/wp\/v2\/posts\/1758\/revisions"}],"predecessor-version":[{"id":1767,"href":"https:\/\/blog.mi.hdm-stuttgart.de\/index.php\/wp-json\/wp\/v2\/posts\/1758\/revisions\/1767"}],"wp:attachment":[{"href":"https:\/\/blog.mi.hdm-stuttgart.de\/index.php\/wp-json\/wp\/v2\/media?parent=1758"}],"wp:term":[{"taxonomy":"category","embeddable":true,"href":"https:\/\/blog.mi.hdm-stuttgart.de\/index.php\/wp-json\/wp\/v2\/categories?post=1758"},{"taxonomy":"post_tag","embeddable":true,"href":"https:\/\/blog.mi.hdm-stuttgart.de\/index.php\/wp-json\/wp\/v2\/tags?post=1758"},{"taxonomy":"author","embeddable":true,"href":"https:\/\/blog.mi.hdm-stuttgart.de\/index.php\/wp-json\/wp\/v2\/ppma_author?post=1758"}],"curies":[{"name":"wp","href":"https:\/\/api.w.org\/{rel}","templated":true}]}}