<!DOCTYPE html>
<html class='v2' dir='ltr' xmlns='http://www.w3.org/1999/xhtml' xmlns:b='http://www.google.com/2005/gml/b' xmlns:data='http://www.google.com/2005/gml/data' xmlns:expr='http://www.google.com/2005/gml/expr'>
<head>
<link href='https://www.blogger.com/static/v1/widgets/2437439463-css_bundle_v2.css' rel='stylesheet' type='text/css'/>
<meta content='width=1100' name='viewport'/>
<script src='http://ajax.googleapis.com/ajax/libs/jquery/2.0.0/jquery.min.js'></script>
<meta content='text/html; charset=UTF-8' http-equiv='Content-Type'/>
<meta content='blogger' name='generator'/>
<link href='http://www.letsmakebettersoftware.com/favicon.ico' rel='icon' type='image/x-icon'/>
<link href='http://www.letsmakebettersoftware.com/' rel='canonical'/>
<link rel="alternate" type="application/atom+xml" title="Let&#39;s make better software - Atom" href="http://www.letsmakebettersoftware.com/feeds/posts/default" />
<link rel="alternate" type="application/rss+xml" title="Let&#39;s make better software - RSS" href="http://www.letsmakebettersoftware.com/feeds/posts/default?alt=rss" />
<link rel="service.post" type="application/atom+xml" title="Let&#39;s make better software - Atom" href="https://www.blogger.com/feeds/5440489175204739003/posts/default" />
<link rel="me" href="https://www.blogger.com/profile/13795565839688197468" />
<link rel="openid.server" href="https://www.blogger.com/openid-server.g" />
<link rel="openid.delegate" href="http://www.letsmakebettersoftware.com/" />
<!--[if IE]><script type="text/javascript" src="https://www.blogger.com/static/v1/jsbin/3658603751-ieretrofit.js"></script>
<![endif]-->
<meta content='http://www.letsmakebettersoftware.com/' property='og:url'/>
<meta content='Let&#39;s make better software' property='og:title'/>
<meta content='Hi!

My name is Philipp. I started my career as a software developer in 1989 at the age of eight years on my beloved Commodore 64. My passion for great software is driving me ever since then.

On this blog, I want to share some of my thoughts on software development methods, strategies, patterns and anything else that comes to mind.

' property='og:description'/>
<!--[if IE]> <script> (function() { var html5 = ("abbr,article,aside,audio,canvas,datalist,details," + "figure,footer,header,hgroup,mark,menu,meter,nav,output," + "progress,section,time,video").split(','); for (var i = 0; i < html5.length; i++) { document.createElement(html5[i]); } try { document.execCommand('BackgroundImageCache', false, true); } catch(e) {} })(); </script> <![endif]-->
<title>Let's make better software</title>
<style id='page-skin-1' type='text/css'><!--
/*
-----------------------------------------------
Blogger Template Style
Name:     Simple
Designer: Blogger
URL:      www.blogger.com
----------------------------------------------- */
/* Variable definitions
====================
<Variable name="keycolor" description="Main Color" type="color" default="#66bbdd"/>
<Group description="Page Text" selector="body">
<Variable name="body.font" description="Font" type="font"
default="normal normal 12px Arial, Tahoma, Helvetica, FreeSans, sans-serif"/>
<Variable name="body.text.color" description="Text Color" type="color" default="#222222"/>
</Group>
<Group description="Backgrounds" selector=".body-fauxcolumns-outer">
<Variable name="body.background.color" description="Outer Background" type="color" default="#66bbdd"/>
<Variable name="content.background.color" description="Main Background" type="color" default="#ffffff"/>
<Variable name="header.background.color" description="Header Background" type="color" default="transparent"/>
</Group>
<Group description="Links" selector=".main-outer">
<Variable name="link.color" description="Link Color" type="color" default="#2288bb"/>
<Variable name="link.visited.color" description="Visited Color" type="color" default="#888888"/>
<Variable name="link.hover.color" description="Hover Color" type="color" default="#33aaff"/>
</Group>
<Group description="Blog Title" selector=".header h1">
<Variable name="header.font" description="Font" type="font"
default="normal normal 60px Arial, Tahoma, Helvetica, FreeSans, sans-serif"/>
<Variable name="header.text.color" description="Title Color" type="color" default="#3399bb" />
</Group>
<Group description="Blog Description" selector=".header .description">
<Variable name="description.text.color" description="Description Color" type="color"
default="#777777" />
</Group>
<Group description="Tabs Text" selector=".tabs-inner .widget li a">
<Variable name="tabs.font" description="Font" type="font"
default="normal normal 14px Arial, Tahoma, Helvetica, FreeSans, sans-serif"/>
<Variable name="tabs.text.color" description="Text Color" type="color" default="#999999"/>
<Variable name="tabs.selected.text.color" description="Selected Color" type="color" default="#000000"/>
</Group>
<Group description="Tabs Background" selector=".tabs-outer .PageList">
<Variable name="tabs.background.color" description="Background Color" type="color" default="#f5f5f5"/>
<Variable name="tabs.selected.background.color" description="Selected Color" type="color" default="#eeeeee"/>
</Group>
<Group description="Post Title" selector="h3.post-title, .comments h4">
<Variable name="post.title.font" description="Font" type="font"
default="normal normal 22px Arial, Tahoma, Helvetica, FreeSans, sans-serif"/>
</Group>
<Group description="Date Header" selector=".date-header">
<Variable name="date.header.color" description="Text Color" type="color"
default="#cccccc"/>
<Variable name="date.header.background.color" description="Background Color" type="color"
default="transparent"/>
<Variable name="date.header.font" description="Text Font" type="font"
default="normal bold 11px Arial, Tahoma, Helvetica, FreeSans, sans-serif"/>
<Variable name="date.header.padding" description="Date Header Padding" type="string" default="inherit"/>
<Variable name="date.header.letterspacing" description="Date Header Letter Spacing" type="string" default="inherit"/>
<Variable name="date.header.margin" description="Date Header Margin" type="string" default="inherit"/>
</Group>
<Group description="Post Footer" selector=".post-footer">
<Variable name="post.footer.text.color" description="Text Color" type="color" default="#666666"/>
<Variable name="post.footer.background.color" description="Background Color" type="color"
default="#f9f9f9"/>
<Variable name="post.footer.border.color" description="Shadow Color" type="color" default="#eeeeee"/>
</Group>
<Group description="Gadgets" selector="h2">
<Variable name="widget.title.font" description="Title Font" type="font"
default="normal bold 11px Arial, Tahoma, Helvetica, FreeSans, sans-serif"/>
<Variable name="widget.title.text.color" description="Title Color" type="color" default="#000000"/>
<Variable name="widget.alternate.text.color" description="Alternate Color" type="color" default="#999999"/>
</Group>
<Group description="Images" selector=".main-inner">
<Variable name="image.background.color" description="Background Color" type="color" default="#ffffff"/>
<Variable name="image.border.color" description="Border Color" type="color" default="#eeeeee"/>
<Variable name="image.text.color" description="Caption Text Color" type="color" default="#cccccc"/>
</Group>
<Group description="Accents" selector=".content-inner">
<Variable name="body.rule.color" description="Separator Line Color" type="color" default="#eeeeee"/>
<Variable name="tabs.border.color" description="Tabs Border Color" type="color" default="#404040"/>
</Group>
<Variable name="body.background" description="Body Background" type="background"
color="#292929" default="$(color) none repeat scroll top left"/>
<Variable name="body.background.override" description="Body Background Override" type="string" default=""/>
<Variable name="body.background.gradient.cap" description="Body Gradient Cap" type="url"
default="url(https://resources.blogblog.com/blogblog/data/1kt/simple/gradients_light.png)"/>
<Variable name="body.background.gradient.tile" description="Body Gradient Tile" type="url"
default="url(https://resources.blogblog.com/blogblog/data/1kt/simple/body_gradient_tile_light.png)"/>
<Variable name="content.background.color.selector" description="Content Background Color Selector" type="string" default=".content-inner"/>
<Variable name="content.padding" description="Content Padding" type="length" default="10px" min="0" max="100px"/>
<Variable name="content.padding.horizontal" description="Content Horizontal Padding" type="length" default="10px" min="0" max="100px"/>
<Variable name="content.shadow.spread" description="Content Shadow Spread" type="length" default="40px" min="0" max="100px"/>
<Variable name="content.shadow.spread.webkit" description="Content Shadow Spread (WebKit)" type="length" default="5px" min="0" max="100px"/>
<Variable name="content.shadow.spread.ie" description="Content Shadow Spread (IE)" type="length" default="10px" min="0" max="100px"/>
<Variable name="main.border.width" description="Main Border Width" type="length" default="0" min="0" max="10px"/>
<Variable name="header.background.gradient" description="Header Gradient" type="url" default="none"/>
<Variable name="header.shadow.offset.left" description="Header Shadow Offset Left" type="length" default="-1px" min="-50px" max="50px"/>
<Variable name="header.shadow.offset.top" description="Header Shadow Offset Top" type="length" default="-1px" min="-50px" max="50px"/>
<Variable name="header.shadow.spread" description="Header Shadow Spread" type="length" default="1px" min="0" max="100px"/>
<Variable name="header.padding" description="Header Padding" type="length" default="30px" min="0" max="100px"/>
<Variable name="header.border.size" description="Header Border Size" type="length" default="1px" min="0" max="10px"/>
<Variable name="header.bottom.border.size" description="Header Bottom Border Size" type="length" default="1px" min="0" max="10px"/>
<Variable name="header.border.horizontalsize" description="Header Horizontal Border Size" type="length" default="0" min="0" max="10px"/>
<Variable name="description.text.size" description="Description Text Size" type="string" default="140%"/>
<Variable name="tabs.margin.top" description="Tabs Margin Top" type="length" default="0" min="0" max="100px"/>
<Variable name="tabs.margin.side" description="Tabs Side Margin" type="length" default="30px" min="0" max="100px"/>
<Variable name="tabs.background.gradient" description="Tabs Background Gradient" type="url"
default="url(https://resources.blogblog.com/blogblog/data/1kt/simple/gradients_light.png)"/>
<Variable name="tabs.border.width" description="Tabs Border Width" type="length" default="1px" min="0" max="10px"/>
<Variable name="tabs.bevel.border.width" description="Tabs Bevel Border Width" type="length" default="1px" min="0" max="10px"/>
<Variable name="post.margin.bottom" description="Post Bottom Margin" type="length" default="25px" min="0" max="100px"/>
<Variable name="image.border.small.size" description="Image Border Small Size" type="length" default="2px" min="0" max="10px"/>
<Variable name="image.border.large.size" description="Image Border Large Size" type="length" default="5px" min="0" max="10px"/>
<Variable name="page.width.selector" description="Page Width Selector" type="string" default=".region-inner"/>
<Variable name="page.width" description="Page Width" type="string" default="auto"/>
<Variable name="main.section.margin" description="Main Section Margin" type="length" default="15px" min="0" max="100px"/>
<Variable name="main.padding" description="Main Padding" type="length" default="15px" min="0" max="100px"/>
<Variable name="main.padding.top" description="Main Padding Top" type="length" default="30px" min="0" max="100px"/>
<Variable name="main.padding.bottom" description="Main Padding Bottom" type="length" default="30px" min="0" max="100px"/>
<Variable name="paging.background"
color="#333333"
description="Background of blog paging area" type="background"
default="transparent none no-repeat scroll top center"/>
<Variable name="footer.bevel" description="Bevel border length of footer" type="length" default="0" min="0" max="10px"/>
<Variable name="mobile.background.overlay" description="Mobile Background Overlay" type="string"
default="transparent none repeat scroll top left"/>
<Variable name="mobile.background.size" description="Mobile Background Size" type="string" default="auto"/>
<Variable name="mobile.button.color" description="Mobile Button Color" type="color" default="#ffffff" />
<Variable name="startSide" description="Side where text starts in blog language" type="automatic" default="left"/>
<Variable name="endSide" description="Side where text ends in blog language" type="automatic" default="right"/>
*/
/* Content
----------------------------------------------- */
body {
font: normal normal 12px Arial, Tahoma, Helvetica, FreeSans, sans-serif;
color: #cccccc;
background: #292929 url(http://4.bp.blogspot.com/-XPE9suJN1WU/WZlXDRFP5QI/AAAAAAAAAJ8/jMf-QQSkroolTmYC8Fm52RJcZOAnKt4JgCK4BGAYYCw/s1600/lmbs_background_2.png) repeat scroll top left;
padding: 0 40px 40px 40px;
}
html body .region-inner {
min-width: 0;
max-width: 100%;
width: auto;
}
h2 {
font-size: 22px;
}
a:link {
text-decoration:none;
color: #00d3dd;
}
a:visited {
text-decoration:none;
color: #00cbcc;
}
a:hover {
text-decoration:underline;
color: #00cbcc;
}
.body-fauxcolumn-outer .fauxcolumn-inner {
background: transparent none repeat scroll top left;
_background-image: none;
}
.body-fauxcolumn-outer .cap-top {
position: absolute;
z-index: 1;
height: 400px;
width: 100%;
}
.body-fauxcolumn-outer .cap-top .cap-left {
width: 100%;
background: transparent none repeat-x scroll top left;
_background-image: none;
}
.content-outer {
-moz-box-shadow: 0 0 40px rgba(0, 0, 0, .15);
-webkit-box-shadow: 0 0 5px rgba(0, 0, 0, .15);
-goog-ms-box-shadow: 0 0 10px #333333;
box-shadow: 0 0 40px rgba(0, 0, 0, .15);
margin-bottom: 1px;
}
.content-inner {
padding: 10px 10px;
}
.content-inner {
background-color: #333333;
}
/* Header
----------------------------------------------- */
.header-outer {
background: rgba(0, 0, 0, 0) none repeat-x scroll 0 -400px;
_background-image: none;
}
.Header h1 {
font: normal normal 60px Arial, Tahoma, Helvetica, FreeSans, sans-serif;
color: #ffffff;
text-shadow: -1px -1px 1px rgba(0, 0, 0, .2);
}
.Header h1 a {
color: #ffffff;
}
.Header .description {
font-size: 140%;
color: #aaaaaa;
}
.header-inner .Header .titlewrapper {
padding: 22px 30px;
}
.header-inner .Header .descriptionwrapper {
padding: 0 30px;
}
/* Tabs
----------------------------------------------- */
.tabs-inner .section:first-child {
border-top: 1px solid #404040;
}
.tabs-inner .section:first-child ul {
margin-top: -1px;
border-top: 1px solid #404040;
border-left: 0 solid #404040;
border-right: 0 solid #404040;
}
.tabs-inner .widget ul {
background: #222222 none repeat-x scroll 0 -800px;
_background-image: none;
border-bottom: 1px solid #404040;
margin-top: 0;
margin-left: -30px;
margin-right: -30px;
}
.tabs-inner .widget li a {
display: inline-block;
padding: .6em 1em;
font: normal normal 14px Arial, Tahoma, Helvetica, FreeSans, sans-serif;
color: #999999;
border-left: 1px solid #333333;
border-right: 0 solid #404040;
}
.tabs-inner .widget li:first-child a {
border-left: none;
}
.tabs-inner .widget li.selected a, .tabs-inner .widget li a:hover {
color: #ffffff;
background-color: #000000;
text-decoration: none;
}
/* Columns
----------------------------------------------- */
.main-outer {
border-top: 0 solid #404040;
}
.fauxcolumn-left-outer .fauxcolumn-inner {
border-right: 1px solid #404040;
}
.fauxcolumn-right-outer .fauxcolumn-inner {
border-left: 1px solid #404040;
}
/* Headings
----------------------------------------------- */
div.widget > h2,
div.widget h2.title {
margin: 0 0 1em 0;
font: normal bold 11px Arial, Tahoma, Helvetica, FreeSans, sans-serif;
color: #ffffff;
}
/* Widgets
----------------------------------------------- */
.widget .zippy {
color: #999999;
text-shadow: 2px 2px 1px rgba(0, 0, 0, .1);
}
.widget .popular-posts ul {
list-style: none;
}
/* Posts
----------------------------------------------- */
h2.date-header {
font: normal bold 11px Arial, Tahoma, Helvetica, FreeSans, sans-serif;
}
.date-header span {
background-color: rgba(0, 0, 0, 0);
color: #cccccc;
padding: inherit;
letter-spacing: inherit;
margin: inherit;
}
.main-inner {
padding-top: 30px;
padding-bottom: 30px;
}
.main-inner .column-center-inner {
padding: 0 15px;
}
.main-inner .column-center-inner .section {
margin: 0 15px;
}
.post {
margin: 0 0 25px 0;
}
h3.post-title, .comments h4 {
font: normal normal 22px Arial, Tahoma, Helvetica, FreeSans, sans-serif;
margin: .75em 0 0;
}
.post-body {
font-size: 110%;
line-height: 1.4;
position: relative;
}
.post-body img, .post-body .tr-caption-container, .Profile img, .Image img,
.BlogList .item-thumbnail img {
padding: 0;
background: rgba(0, 0, 0, 0);
border: 1px solid rgba(0, 0, 0, 0);
-moz-box-shadow: 1px 1px 5px rgba(0, 0, 0, .1);
-webkit-box-shadow: 1px 1px 5px rgba(0, 0, 0, .1);
box-shadow: 1px 1px 5px rgba(0, 0, 0, .1);
}
.post-body img, .post-body .tr-caption-container {
padding: 1px;
}
.post-body .tr-caption-container {
color: #cccccc;
}
.post-body .tr-caption-container img {
padding: 0;
background: transparent;
border: none;
-moz-box-shadow: 0 0 0 rgba(0, 0, 0, .1);
-webkit-box-shadow: 0 0 0 rgba(0, 0, 0, .1);
box-shadow: 0 0 0 rgba(0, 0, 0, .1);
}
.post-header {
margin: 0 0 1.5em;
line-height: 1.6;
font-size: 90%;
}
.post-footer {
margin: 20px -2px 0;
padding: 5px 10px;
color: #888888;
background-color: #303030;
border-bottom: 1px solid #444444;
line-height: 1.6;
font-size: 90%;
}
#comments .comment-author {
padding-top: 1.5em;
border-top: 1px solid #404040;
background-position: 0 1.5em;
}
#comments .comment-author:first-child {
padding-top: 0;
border-top: none;
}
.avatar-image-container {
margin: .2em 0 0;
}
#comments .avatar-image-container img {
border: 1px solid rgba(0, 0, 0, 0);
}
/* Comments
----------------------------------------------- */
.comments .comments-content .icon.blog-author {
background-repeat: no-repeat;
background-image: url(data:image/png;base64,iVBORw0KGgoAAAANSUhEUgAAABIAAAASCAYAAABWzo5XAAAAAXNSR0IArs4c6QAAAAZiS0dEAP8A/wD/oL2nkwAAAAlwSFlzAAALEgAACxIB0t1+/AAAAAd0SU1FB9sLFwMeCjjhcOMAAAD+SURBVDjLtZSvTgNBEIe/WRRnm3U8RC1neQdsm1zSBIU9VVF1FkUguQQsD9ITmD7ECZIJSE4OZo9stoVjC/zc7ky+zH9hXwVwDpTAWWLrgS3QAe8AZgaAJI5zYAmc8r0G4AHYHQKVwII8PZrZFsBFkeRCABYiMh9BRUhnSkPTNCtVXYXURi1FpBDgArj8QU1eVXUzfnjv7yP7kwu1mYrkWlU33vs1QNu2qU8pwN0UpKoqokjWwCztrMuBhEhmh8bD5UDqur75asbcX0BGUB9/HAMB+r32hznJgXy2v0sGLBcyAJ1EK3LFcbo1s91JeLwAbwGYu7TP/3ZGfnXYPgAVNngtqatUNgAAAABJRU5ErkJggg==);
}
.comments .comments-content .loadmore a {
border-top: 1px solid #999999;
border-bottom: 1px solid #999999;
}
.comments .comment-thread.inline-thread {
background-color: #303030;
}
.comments .continue {
border-top: 2px solid #999999;
}
/* Accents
---------------------------------------------- */
.section-columns td.columns-cell {
border-left: 1px solid #404040;
}
.blog-pager {
background: transparent none no-repeat scroll top center;
}
.blog-pager-older-link, .home-link,
.blog-pager-newer-link {
background-color: #333333;
padding: 5px;
}
.footer-outer {
border-top: 0 dashed #bbbbbb;
}
/* Mobile
----------------------------------------------- */
body.mobile  {
background-size: auto;
}
.mobile .body-fauxcolumn-outer {
background: transparent none repeat scroll top left;
}
.mobile .body-fauxcolumn-outer .cap-top {
background-size: 100% auto;
}
.mobile .content-outer {
-webkit-box-shadow: 0 0 3px rgba(0, 0, 0, .15);
box-shadow: 0 0 3px rgba(0, 0, 0, .15);
}
.mobile .tabs-inner .widget ul {
margin-left: 0;
margin-right: 0;
}
.mobile .post {
margin: 0;
}
.mobile .main-inner .column-center-inner .section {
margin: 0;
}
.mobile .date-header span {
padding: 0.1em 10px;
margin: 0 -10px;
}
.mobile h3.post-title {
margin: 0;
}
.mobile .blog-pager {
background: transparent none no-repeat scroll top center;
}
.mobile .footer-outer {
border-top: none;
}
.mobile .main-inner, .mobile .footer-inner {
background-color: #333333;
}
.mobile-index-contents {
color: #cccccc;
}
.mobile-link-button {
background-color: #00d3dd;
}
.mobile-link-button a:link, .mobile-link-button a:visited {
color: #ffffff;
}
.mobile .tabs-inner .section:first-child {
border-top: none;
}
.mobile .tabs-inner .PageList .widget-content {
background-color: #000000;
color: #ffffff;
border-top: 1px solid #404040;
border-bottom: 1px solid #404040;
}
.mobile .tabs-inner .PageList .widget-content .pagelist-arrow {
border-left: 1px solid #404040;
}
#header-inner {
background-position: center !important;
width: 100% !important;
text-align: center;
}
#header-inner img {
margin: auto;
}
.post-body img, .post-body .tr-caption-container, .Profile img, .Image img,
.BlogList .item-thumbnail img {
padding: 0 !important;
border: none !important;
background: none !important;
-moz-box-shadow: 0px 0px 0px transparent !important;
-webkit-box-shadow: 0px 0px 0px transparent !important;
box-shadow: 0px 0px 0px transparent !important;
}
--></style>
<style id='template-skin-1' type='text/css'><!--
body {
min-width: 1200px;
}
.content-outer, .content-fauxcolumn-outer, .region-inner {
min-width: 1200px;
max-width: 1200px;
_width: 1200px;
}
.main-inner .columns {
padding-left: 0px;
padding-right: 360px;
}
.main-inner .fauxcolumn-center-outer {
left: 0px;
right: 360px;
/* IE6 does not respect left and right together */
_width: expression(this.parentNode.offsetWidth -
parseInt("0px") -
parseInt("360px") + 'px');
}
.main-inner .fauxcolumn-left-outer {
width: 0px;
}
.main-inner .fauxcolumn-right-outer {
width: 360px;
}
.main-inner .column-left-outer {
width: 0px;
right: 100%;
margin-left: -0px;
}
.main-inner .column-right-outer {
width: 360px;
margin-right: -360px;
}
#layout {
min-width: 0;
}
#layout .content-outer {
min-width: 0;
width: 800px;
}
#layout .region-inner {
min-width: 0;
width: auto;
}
body#layout div.add_widget {
padding: 8px;
}
body#layout div.add_widget a {
margin-left: 32px;
}
--></style>
<style>
    body {background-image:url(http\:\/\/4.bp.blogspot.com\/-XPE9suJN1WU\/WZlXDRFP5QI\/AAAAAAAAAJ8\/jMf-QQSkroolTmYC8Fm52RJcZOAnKt4JgCK4BGAYYCw\/s1600\/lmbs_background_2.png);}
    
@media (max-width: 200px) { body {background-image:url(http\:\/\/4.bp.blogspot.com\/-XPE9suJN1WU\/WZlXDRFP5QI\/AAAAAAAAAJ8\/jMf-QQSkroolTmYC8Fm52RJcZOAnKt4JgCK4BGAYYCw\/w200\/lmbs_background_2.png);}}
@media (max-width: 400px) and (min-width: 201px) { body {background-image:url(http\:\/\/4.bp.blogspot.com\/-XPE9suJN1WU\/WZlXDRFP5QI\/AAAAAAAAAJ8\/jMf-QQSkroolTmYC8Fm52RJcZOAnKt4JgCK4BGAYYCw\/w400\/lmbs_background_2.png);}}
@media (max-width: 800px) and (min-width: 401px) { body {background-image:url(http\:\/\/4.bp.blogspot.com\/-XPE9suJN1WU\/WZlXDRFP5QI\/AAAAAAAAAJ8\/jMf-QQSkroolTmYC8Fm52RJcZOAnKt4JgCK4BGAYYCw\/w800\/lmbs_background_2.png);}}
@media (max-width: 1200px) and (min-width: 801px) { body {background-image:url(http\:\/\/4.bp.blogspot.com\/-XPE9suJN1WU\/WZlXDRFP5QI\/AAAAAAAAAJ8\/jMf-QQSkroolTmYC8Fm52RJcZOAnKt4JgCK4BGAYYCw\/w1200\/lmbs_background_2.png);}}
/* Last tag covers anything over one higher than the previous max-size cap. */
@media (min-width: 1201px) { body {background-image:url(http\:\/\/4.bp.blogspot.com\/-XPE9suJN1WU\/WZlXDRFP5QI\/AAAAAAAAAJ8\/jMf-QQSkroolTmYC8Fm52RJcZOAnKt4JgCK4BGAYYCw\/w1600\/lmbs_background_2.png);}}
  </style>
<link href='https://www.blogger.com/dyn-css/authorization.css?targetBlogID=5440489175204739003&amp;zx=efaaa7ae-0352-468d-9084-f25c00816f62' media='none' onload='if(media!=&#39;all&#39;)media=&#39;all&#39;' rel='stylesheet'/><noscript><link href='https://www.blogger.com/dyn-css/authorization.css?targetBlogID=5440489175204739003&amp;zx=efaaa7ae-0352-468d-9084-f25c00816f62' rel='stylesheet'/></noscript>
</head>
<body class='loading'>
<div class='navbar no-items section' id='navbar' name='Navbar'>
</div>
<div itemscope='itemscope' itemtype='http://schema.org/Blog' style='display: none;'>
<meta content='Let&#39;s make better software' itemprop='name'/>
</div>
<div class='body-fauxcolumns'>
<div class='fauxcolumn-outer body-fauxcolumn-outer'>
<div class='cap-top'>
<div class='cap-left'></div>
<div class='cap-right'></div>
</div>
<div class='fauxborder-left'>
<div class='fauxborder-right'></div>
<div class='fauxcolumn-inner'>
</div>
</div>
<div class='cap-bottom'>
<div class='cap-left'></div>
<div class='cap-right'></div>
</div>
</div>
</div>
<div class='content'>
<div class='content-fauxcolumns'>
<div class='fauxcolumn-outer content-fauxcolumn-outer'>
<div class='cap-top'>
<div class='cap-left'></div>
<div class='cap-right'></div>
</div>
<div class='fauxborder-left'>
<div class='fauxborder-right'></div>
<div class='fauxcolumn-inner'>
</div>
</div>
<div class='cap-bottom'>
<div class='cap-left'></div>
<div class='cap-right'></div>
</div>
</div>
</div>
<div class='content-outer'>
<div class='content-cap-top cap-top'>
<div class='cap-left'></div>
<div class='cap-right'></div>
</div>
<div class='fauxborder-left content-fauxborder-left'>
<div class='fauxborder-right content-fauxborder-right'></div>
<div class='content-inner'>
<header>
<div class='header-outer'>
<div class='header-cap-top cap-top'>
<div class='cap-left'></div>
<div class='cap-right'></div>
</div>
<div class='fauxborder-left header-fauxborder-left'>
<div class='fauxborder-right header-fauxborder-right'></div>
<div class='region-inner header-inner'>
<div class='header section' id='header' name='Header'><div class='widget Header' data-version='1' id='Header1'>
<div id='header-inner'>
<a href='http://www.letsmakebettersoftware.com/' style='display: block'>
<img alt='Let&#39;s make better software' height='230px; ' id='Header1_headerimg' src='http://2.bp.blogspot.com/-UGstI1qXlLQ/WZh78n-5WcI/AAAAAAAAAJY/cgd2yslv1qQPHIfYWr5RRNWAcP9DoWZXQCK4BGAYYCw/s1600/lmbs_header_large3.png' style='display: block' width='860px; '/>
</a>
<div class='descriptionwrapper'>
<p class='description'><span>Hi!

My name is Philipp. I started my career as a software developer in 1989 at the age of eight years on my beloved Commodore 64. My passion for great software is driving me ever since then.

On this blog, I want to share some of my thoughts on software development methods, strategies, patterns and anything else that comes to mind.

</span></p>
</div>
</div>
</div></div>
</div>
</div>
<div class='header-cap-bottom cap-bottom'>
<div class='cap-left'></div>
<div class='cap-right'></div>
</div>
</div>
</header>
<div class='tabs-outer'>
<div class='tabs-cap-top cap-top'>
<div class='cap-left'></div>
<div class='cap-right'></div>
</div>
<div class='fauxborder-left tabs-fauxborder-left'>
<div class='fauxborder-right tabs-fauxborder-right'></div>
<div class='region-inner tabs-inner'>
<div class='tabs no-items section' id='crosscol' name='Cross-Column'></div>
<div class='tabs no-items section' id='crosscol-overflow' name='Cross-Column 2'></div>
</div>
</div>
<div class='tabs-cap-bottom cap-bottom'>
<div class='cap-left'></div>
<div class='cap-right'></div>
</div>
</div>
<div class='main-outer'>
<div class='main-cap-top cap-top'>
<div class='cap-left'></div>
<div class='cap-right'></div>
</div>
<div class='fauxborder-left main-fauxborder-left'>
<div class='fauxborder-right main-fauxborder-right'></div>
<div class='region-inner main-inner'>
<div class='columns fauxcolumns'>
<div class='fauxcolumn-outer fauxcolumn-center-outer'>
<div class='cap-top'>
<div class='cap-left'></div>
<div class='cap-right'></div>
</div>
<div class='fauxborder-left'>
<div class='fauxborder-right'></div>
<div class='fauxcolumn-inner'>
</div>
</div>
<div class='cap-bottom'>
<div class='cap-left'></div>
<div class='cap-right'></div>
</div>
</div>
<div class='fauxcolumn-outer fauxcolumn-left-outer'>
<div class='cap-top'>
<div class='cap-left'></div>
<div class='cap-right'></div>
</div>
<div class='fauxborder-left'>
<div class='fauxborder-right'></div>
<div class='fauxcolumn-inner'>
</div>
</div>
<div class='cap-bottom'>
<div class='cap-left'></div>
<div class='cap-right'></div>
</div>
</div>
<div class='fauxcolumn-outer fauxcolumn-right-outer'>
<div class='cap-top'>
<div class='cap-left'></div>
<div class='cap-right'></div>
</div>
<div class='fauxborder-left'>
<div class='fauxborder-right'></div>
<div class='fauxcolumn-inner'>
</div>
</div>
<div class='cap-bottom'>
<div class='cap-left'></div>
<div class='cap-right'></div>
</div>
</div>
<!-- corrects IE6 width calculation -->
<div class='columns-inner'>
<div class='column-center-outer'>
<div class='column-center-inner'>
<div class='main section' id='main' name='Main'><div class='widget Blog' data-version='1' id='Blog1'>
<div class='blog-posts hfeed'>

          <div class="date-outer">
        
<h2 class='date-header'><span>Friday, March 9, 2018</span></h2>

          <div class="date-posts">
        
<div class='post-outer'>
<div class='post hentry uncustomized-post-template' itemprop='blogPost' itemscope='itemscope' itemtype='http://schema.org/BlogPosting'>
<meta content='https://4.bp.blogspot.com/-wtEmrBFYNtk/WqLs1fggc6I/AAAAAAAAAOY/RK8e3eyWzSQ6kfbZy79s_6DkAv1Me6iXwCLcBGAs/s1600/lmbs_statusquoofblockchain.png' itemprop='image_url'/>
<meta content='5440489175204739003' itemprop='blogId'/>
<meta content='2558665143008089469' itemprop='postId'/>
<a name='2558665143008089469'></a>
<h3 class='post-title entry-title' itemprop='name'>
<a href='http://www.letsmakebettersoftware.com/2018/03/status-quo-of-blockchain.html'>Status Quo of #Blockchain</a>
</h3>
<div class='post-header'>
<div class='post-header-line-1'></div>
</div>
<div class='post-body entry-content' id='post-body-2558665143008089469' itemprop='description articleBody'>
<div style="text-align: justify;">
<span style="font-size: large;">Not even 10 years after an unknown person or group of people under the name Satoshi Nakamoto invented Bitcoin, the first cryptocurrency in the world, the technology underpinning Nakamoto's creation is everywhere, promising to change the world as we know it.&nbsp;</span></div>
<div style="text-align: justify;">
<span style="font-size: large;"><br /></span></div>
<div style="text-align: justify;">
<span style="font-size: large;">That technology is called blockchain, and Bitcoin uses this innovative ledger to record transactions that happen on its peer-to-peer, decentralized network. But financial record-keeping is not blockchain&#8217;s only forte. What makes blockchain special is its ability to ensure immutability without any trusted authority.</span></div>
<div style="text-align: justify;">
<span style="font-size: large;"><br /></span></div>
<div style="text-align: justify;">
<span style="font-size: large;">This key property of blockchain technology makes it suitable for a number of different applications, the most promising of which we explore in this article. But before we get to how blockchain technology could lead to the global disruption of established institutions and entire industries, we find it appropriate to take a closer look at blockchain's present state.</span></div>
<div style="text-align: justify;">
<span style="font-size: large;"><br /></span></div>
<div class="separator" style="clear: both; text-align: center;">
<a href="https://4.bp.blogspot.com/-wtEmrBFYNtk/WqLs1fggc6I/AAAAAAAAAOY/RK8e3eyWzSQ6kfbZy79s_6DkAv1Me6iXwCLcBGAs/s1600/lmbs_statusquoofblockchain.png" imageanchor="1" style="margin-left: 1em; margin-right: 1em;"><img border="0" data-original-height="596" data-original-width="601" src="https://4.bp.blogspot.com/-wtEmrBFYNtk/WqLs1fggc6I/AAAAAAAAAOY/RK8e3eyWzSQ6kfbZy79s_6DkAv1Me6iXwCLcBGAs/s1600/lmbs_statusquoofblockchain.png" /></a></div>
<div style="text-align: center;">
<span style="font-size: large;"><br /></span></div>
<div style="text-align: justify;">
<span style="font-size: large;"><br /></span></div>
<div style="text-align: justify;">
<span style="font-size: large;"><b>Blockchain has come a long way</b></span></div>
<div style="text-align: justify;">
<span style="font-size: large;"><br /></span></div>
<div style="text-align: justify;">
<span style="font-size: large;">Mike Gault, the CEO of Estonia's technology vendor <a href="https://www.theverge.com/2018/3/7/17091766/blockchain-bitcoin-ethereum-cryptocurrency-meaning" target="_blank">Guardtime</a>, defines blockchain as "an append-only data structure that contains data records that are cryptographically linked together." According to Gault's definition, "Data records are added to the data structure when multiple distributed parties come to a consensus based on pre-agreed rules." Gault has provided this definition in response to the rapidly growing number projects that are developing blockchain-based solutions that widely differ from the blockchain Satoshi Nakamoto created for his disruptive cryptocurrency.</span></div>
<div style="text-align: justify;">
<br /></div>
<div style="text-align: justify;">
<span style="font-size: large;">Bitcoin as well as <a href="https://www.ethereum.org/" target="_blank">Ethereum</a>, the most popular blockchain-based computing platform in the world, allow for the creation of the so-called Decentralized Applications, or DApps for short. At the time of writing this article, there are almost 1,100 DApps listed on the <a href="https://www.stateofthedapps.com/" target="_blank">State of the DApps website</a>. Confusingly enough, Bitcoin, Ethereum, and other altcoins, which are alternative cryptocurrencies launched after the success of Bitcoin, are also DApps because their backend code runs on a decentralized peer-to-peer network.</span></div>
<div style="text-align: justify;">
<span style="font-size: large;"><br /></span></div>
<div style="text-align: justify;">
<span style="font-size: large;">For example, <a href="https://www.blogger.com/"><span id="goog_1832774267"></span>Augur<span id="goog_1832774268"></span></a>, one of the most popular Ethereum-based DApps, is using a blockchain-based betting system and the knowledge of the masses to create a forecasting tool capable of accurately predicting the outcomes of real-world events.&nbsp;</span></div>
<div style="text-align: justify;">
<span style="font-size: large;"></span></div>
<div style="text-align: justify;">
<span style="font-size: large;">What Augur and many other DApps illustrate is just how incredibly far blockchain technology has come in less than a decade since it first gained traction. Today, there are several large blockchain enterprise alliances, including Enterprise Ethereum Alliance and its 250+ members, Hyperledger, and R3, and annual revenue for the enterprise blockchain market is expected to increase from approximately 2.5bn USD worldwide in 2016 to 19.9bn USD by 2025, with a CAGR of 26.2%, according to the <a href="https://media.coindesk.com/uploads/research/state-of-blockchain/2017/q4/sob2017q4-2018.pdf" target="_blank">State of Blockchain report from Coinbase</a>.&nbsp;</span></div>
<div style="text-align: justify;">
<span style="font-size: large;"><b><br /></b></span></div>
<div style="text-align: justify;">
<span style="font-size: large;"><b>Non-Crypto applications of Blockchain technology</b></span></div>
<div style="text-align: justify;">
<span style="font-size: large;"><br /></span></div>
<div style="text-align: justify;">
<span style="font-size: large;">While cryptocurrencies, and their wild price fluctuations, are still the main reason why blockchain technology makes headlines, non-crypto applications of blockchain technology make futurologists excited the most.&nbsp;</span></div>
<div style="text-align: justify;">
<span style="font-size: large;"><u><br /></u></span></div>
<div style="text-align: justify;">
<span style="font-size: large;"><u>Contract Negotiation&nbsp;</u></span></div>
<div style="text-align: justify;">
<span style="font-size: large;"><br /></span></div>
<div style="text-align: justify;">
<span style="font-size: large;">Blockchain technology allows for the execution of smart contracts, which are computer programs intended to digitally facilitate, verify, or enforce the negotiation or performance of a contract. Smart contracts were coined by computer scientist Nick Szabo before Satoshi Nakamoto created Bitcoin. Many experts expect smart contracts to replace traditional paper contracts, naming complete immutability and enhanced transparency as two biggest advantages of this nascent technology.</span></div>
<div style="text-align: justify;">
<span style="font-size: large;"><br /></span></div>
<div style="text-align: justify;">
<span style="font-size: large;">Because smart contracts are programmable and self-executing, they can be triggered automatically when a set of preconditions are met. For example, a smart contract between a customer and an e-commerce store could replace a third-party escrow service.</span></div>
<div style="text-align: justify;">
<span style="font-size: large;"><br /></span></div>
<div style="text-align: justify;">
<span style="font-size: large;"><u>Supply Chain Management&nbsp;</u></span></div>
<div style="text-align: justify;">
<span style="font-size: large;"><br /></span></div>
<div style="text-align: justify;">
<span style="font-size: large;">Blockchain could be a game-changer for supply chain management as traceability and transparency are among the most important foundations of logistics. "Blockchain offers a shared ledger that is updated and validated in real time with each network participant. It enables equal visibility of activities and reveals where an asset is at any point in time, who owns it and what condition it's in", <a href="https://www.ibm.com/blockchain/supply-chain/" target="_blank">IBM explains</a> some of the benefits of supply chain management with blockchain.</span></div>
<div style="text-align: justify;">
<span style="font-size: large;"><br /></span></div>
<div style="text-align: justify;">
<span style="font-size: large;">The pharmaceutical industry has been struggling to secure its supply chain and prevent fake drugs from entering the market for a long time, and it is now starting to see blockchain technology as a potential solution to its problems. <a href="http://www.pistoiaalliance.org/83-life-science-leaders-believe-blockchain-will-adopted-within-five-years-finds-survey-pistoia-alliance/" target="_blank">Pistoia Alliance</a> survey revealed that 83% of the leaders in life sciences think that blockchain will be adopted as a data housing solution in the next 5 years and 22% of life science companies are already using or experimenting with blockchain.</span></div>
<div style="text-align: justify;">
<span style="font-size: large;"><br /></span></div>
<div style="text-align: justify;">
<span style="font-size: large;"><u>Record Keeping&nbsp;</u></span></div>
<div style="text-align: justify;">
<span style="font-size: large;"><br /></span></div>
<div style="text-align: justify;">
<span style="font-size: large;">Because blockchain is essentially a distributed database, it can be used for all kinds of record keeping. In 2017 Dubai's land registrar has revealed it is developing a system that would seek to record all local real estate contracts on a blockchain, <a href="https://www.coindesk.com/dubai-land-department-launches-blockchain-real-estate-initiative/" target="_blank">according to Coindesk</a>. Dubai's aim is to unite all real estate and department services on a single blockchain-based platform and achieve this goal by the year 2020.</span></div>
<div style="text-align: justify;">
<span style="font-size: large;"><br /></span></div>
<div style="text-align: justify;">
<span style="font-size: large;">Dubai hopes that the move to blockchain will save the city money in the long run as an average person will move to a new location nearly 12 times in their lifetime, and each move is not legally possible without someone pulling information from the system and putting new information in. Blockchain would open Dubai's real estate market to investors around the world, giving them a way how to verify property data. It would also connect renters with landlords and property-related billers.</span></div>
<div style="text-align: justify;">
<span style="font-size: large;"><br /></span></div>
<div style="text-align: justify;">
<span style="font-size: large;">Another form of record-keeping to which blockchain technology can be applied is the management of digital identities, including passports, birth certificates, wedding certificates, personal IDs, and even online accounts.</span></div>
<div style="text-align: justify;">
<span style="font-size: large;"><br /></span></div>
<div style="text-align: justify;">
<span style="font-size: large;"><u>Cloud Storage</u></span></div>
<div style="text-align: justify;">
<span style="font-size: large;"><br /></span></div>
<div style="text-align: justify;">
<span style="font-size: large;">Right now, virtually all cloud storage services are centralized, which means that the users must place their trust in a single cloud storage provider. Blockchain could disrupt the existing cloud storage model and usher in an era of decentralized cloud storage services with enhanced security and guaranteed ownership of personal data.</span></div>
<div style="text-align: justify;">
<span style="font-size: large;"><br /></span></div>
<div style="text-align: justify;">
<span style="font-size: large;">One such cloud storage service, <a href="https://storj.io/" target="_blank">Storj</a>, is currently preparing for launch, promising 99.99999% availability, fully distributed infrastructure, end-to-end encryption, and extremely low prices per GB of stored data.</span></div>
<div style="text-align: justify;">
<span style="font-size: large;"><u><br /></u></span></div>
<div style="text-align: justify;">
<span style="font-size: large;"><u>Digital Voting</u></span></div>
<div style="text-align: justify;">
<span style="font-size: large;"><br /></span></div>
<div style="text-align: justify;">
<span style="font-size: large;">"Many states use voting machines that are over 10 years old that are not only antiquated and failing, they are also becoming increasingly expensive to maintain as parts are no longer manufactured. Election fraud undermines the very fabric of democracy" <a href="https://bravenewcoin.com/news/blockchain-based-voting-could-be-ready-for-2016-elections/" target="_blank">stated Blockchain Technologies Corp</a>, a company that wants to replace existing voting machines with blockchain-based voting systems.</span></div>
<div style="text-align: justify;">
<span style="font-size: large;"><br /></span></div>
<div style="text-align: justify;">
<span style="font-size: large;"></span></div>
<div style="text-align: justify;">
<span style="font-size: large;">Estonia has already implemented a unique <a href="https://e-estonia.com/solutions/e-governance/i-voting/" target="_blank">e-voting platform</a> that uses blockchain technology to guarantee flawless availability, transparency, and an unprecedented level of fraud protection. Many other countries around the world are currently considering implementing systems based on the one used by the government of Estonia.</span></div>
<div style="text-align: justify;">
<span style="font-size: large;"><br /></span></div>
<div style="text-align: justify;">
<span style="font-size: large;"><b>Potential roadblocks to the wider adoption of Blockchain</b></span></div>
<div style="text-align: justify;">
<span style="font-size: large;"><br /></span></div>
<div style="text-align: justify;">
<span style="font-size: large;">Blockchain technology will be able to fully realize its potential only if it overcomes the most serious roadblocks to its wider adoption.</span></div>
<div style="text-align: justify;">
<span style="font-size: large;"><br /></span></div>
<div style="text-align: justify;">
<span style="font-size: large;"><u>Regulations</u></span></div>
<div style="text-align: justify;">
<span style="font-size: large;"><br /></span></div>
<div style="text-align: justify;">
<span style="font-size: large;">The soon-to-be-implemented <a href="https://www.eugdpr.org/" target="_blank">General Data Protection Regulation (GDPR)</a> by which the European Parliament, the Council of the European Union, and the European Commission intend to harmonize data privacy laws across Europe, to protect and empower all EU citizens data privacy, and to reshape the way organizations across the region approach data privacy&nbsp; is one such roadblock.</span></div>
<div style="text-align: justify;">
<span style="font-size: large;"><br /></span></div>
<div style="text-align: justify;">
<span style="font-size: large;">The GDPR stands in the way of wider blockchain adoption for two main reasons: because of the fact that personal data is not to leave the EU, and because it demands that user's personal data is rectified or deleted under many circumstances.</span></div>
<div style="text-align: justify;">
<span style="font-size: large;"><br /></span></div>
<div style="text-align: justify;">
<span style="font-size: large;"><a href="https://iapp.org/news/a/blockchain-technology-is-on-a-collision-course-with-eu-privacy-law/" target="_blank">According to Jan Philipp Albrecht</a>, the member of the European Parliament who shepherded the regulation, the GDPR "is agnostic about which specific technology is used for the processing, but it introduces a mandatory obligation for data controllers to apply the principle of data protection by design. This means, for example, that the data subject&#8217;s rights can be easily exercised, including the right to deletion of data when it is no longer needed."</span></div>
<div style="text-align: justify;">
<span style="font-size: large;"><br /></span></div>
<div style="text-align: justify;">
<span style="font-size: large;">Considering that immutability is a key characteristic of blockchain technology, to say that it does not mix well with the GDPR would be an understatement. "Certain technologies will not be compatible with the GDPR" said Albrecht. "This does not mean that blockchain technology, in general, has to adapt to the GDPR, it just means that it probably cannot be used for the processing of personal data."</span></div>
<div style="text-align: justify;">
<span style="font-size: large;"><u><br /></u></span></div>
<div style="text-align: justify;">
<span style="font-size: large;"><u>Scalability</u></span></div>
<div style="text-align: justify;">
<span style="font-size: large;"><br /></span></div>
<div style="text-align: justify;">
<span style="font-size: large;">In its present form, blockchain technology is severely limited by its insufficient scalability. Visa is known to handle around 2,000 transactions per second on average and up to 4,000 transactions per second during high shopping periods. The total capacity of the entire Visa network is expected to be over 50,000 transactions per second.</span></div>
<div style="text-align: justify;">
<span style="font-size: large;"><br /></span></div>
<div style="text-align: justify;">
<span style="font-size: large;">PayPal handles considerably fewer transactions every second, over 100, but that is still a lot compared to the maximum number of transactions per second of Ethereum: only 15. With the current consensus rules, Bitcoin can only process around 7 transactions every second.</span></div>
<div style="text-align: justify;">
<span style="font-size: large;"><br /></span></div>
<div style="text-align: justify;">
<span style="font-size: large;">"The Ethereum community, key developers and researchers and others have always recognized scalability as perhaps the single most important key technical challenge that needs to be solved in order for blockchain applications to reach mass adoption" <a href="https://blog.ethereum.org/2018/01/02/ethereum-scalability-research-development-subsidy-programs/" target="_blank">writes Vitalik Buterin</a>, the mastermind behind Ethereum. "Blockchain scalability is difficult primarily because a typical blockchain design requires every node in the network to process every transaction, which limits the transaction processing capacity of the entire system to the capacity of a single node."</span></div>
<div style="text-align: justify;">
<span style="font-size: large;"><br /></span></div>
<div style="text-align: justify;">
<span style="font-size: large;"><b>Conclusion</b></span></div>
<div style="text-align: justify;">
<span style="font-size: large;"></span></div>
<div style="text-align: justify;">
<span style="font-size: large;"><br /></span></div>
<div style="text-align: justify;">
<span style="font-size: large;">Blockchain technology is evolving rapidly, and there have already been a number of practical applications, with considerably more&nbsp; currently being in various stages of development. If blockchain developers succeed in overcoming the most serious roadblocks to its wider adoption, blockchain could become one of the most transformative technologies of the 21st century - if not the most transformative.&nbsp;</span></div>
<div style="text-align: justify;">
<span style="font-size: large;"><br /></span></div>
<div style="text-align: justify;">
<span style="font-size: large;"><b>Sources</b></span></div>
<div style="text-align: justify;">
<span style="font-size: large;"><br /></span></div>
<div style="text-align: justify;">
<a href="https://www.theverge.com/2018/3/7/17091766/blockchain-bitcoin-ethereum-cryptocurrency-meaning">https://www.theverge.com/2018/3/7/17091766/blockchain-bitcoin-ethereum-cryptocurrency-meaning</a></div>
<div style="text-align: justify;">
<br /></div>
<div style="text-align: justify;">
<a href="https://www.ethereum.org/">https://www.ethereum.org/</a></div>
<div style="text-align: justify;">
<br /></div>
<div style="text-align: justify;">
<a href="https://www.stateofthedapps.com/">https://www.stateofthedapps.com/</a></div>
<div style="text-align: justify;">
<a href="https://www.blogger.com/goog_1832774320"><br /></a></div>
<div style="text-align: justify;">
<a href="http://www.augur.net/">http://www.augur.net/</a></div>
<div style="text-align: justify;">
<a href="https://www.blogger.com/goog_1832774322"><br /></a></div>
<div style="text-align: justify;">
<a href="https://media.coindesk.com/uploads/research/state-of-blockchain/2017/q4/sob2017q4-2018.pdf">https://media.coindesk.com/uploads/research/state-of-blockchain/2017/q4/sob2017q4-2018.pdf</a></div>
<div style="text-align: justify;">
<br /></div>
<div style="text-align: justify;">
<a href="https://www.ibm.com/blockchain/supply-chain/">https://www.ibm.com/blockchain/supply-chain/</a></div>
<div style="text-align: justify;">
<br /></div>
<div style="text-align: justify;">
<a href="http://www.pistoiaalliance.org/83-life-science-leaders-believe-blockchain-will-adopted-within-five-years-finds-survey-pistoia-alliance/">http://www.pistoiaalliance.org/83-life-science-leaders-believe-blockchain-will-adopted-within-five-years-finds-survey-pistoia-alliance/</a></div>
<div style="text-align: justify;">
<a href="https://www.blogger.com/goog_1832774328"><br /></a></div>
<div style="text-align: justify;">
<a href="https://www.coindesk.com/dubai-land-department-launches-blockchain-real-estate-initiative/">https://www.coindesk.com/dubai-land-department-launches-blockchain-real-estate-initiative/</a></div>
<div style="text-align: justify;">
<br /></div>
<div style="text-align: justify;">
<a href="https://storj.io/">https://storj.io/</a></div>
<div style="text-align: justify;">
<a href="https://www.blogger.com/goog_1832774332"><br /></a></div>
<div style="text-align: justify;">
<a href="https://bravenewcoin.com/news/blockchain-based-voting-could-be-ready-for-2016-elections/">https://bravenewcoin.com/news/blockchain-based-voting-could-be-ready-for-2016-elections/</a></div>
<div style="text-align: justify;">
<br /></div>
<div style="text-align: justify;">
<a href="https://e-estonia.com/solutions/e-governance/i-voting/">https://e-estonia.com/solutions/e-governance/i-voting/</a></div>
<div style="text-align: justify;">
<a href="https://www.blogger.com/goog_1832774336"><br /></a></div>
<div style="text-align: justify;">
<a href="https://www.eugdpr.org/">https://www.eugdpr.org/</a></div>
<div style="text-align: justify;">
<br /></div>
<div style="text-align: justify;">
<a href="https://iapp.org/news/a/blockchain-technology-is-on-a-collision-course-with-eu-privacy-law/">https://iapp.org/news/a/blockchain-technology-is-on-a-collision-course-with-eu-privacy-law/</a></div>
<div style="text-align: justify;">
<br /></div>
<div style="text-align: justify;">
<a href="https://blog.ethereum.org/2018/01/02/ethereum-scalability-research-development-subsidy-programs/">https://blog.ethereum.org/2018/01/02/ethereum-scalability-research-development-subsidy-programs/</a></div>
<div style='clear: both;'></div>
</div>
<div class='post-footer'>
<div class='post-footer-line post-footer-line-1'>
<span class='post-author vcard'>
Posted by
<span class='fn' itemprop='author' itemscope='itemscope' itemtype='http://schema.org/Person'>
<meta content='https://www.blogger.com/profile/13795565839688197468' itemprop='url'/>
<a class='g-profile' href='https://www.blogger.com/profile/13795565839688197468' rel='author' title='author profile'>
<span itemprop='name'>Philipp Guntermann</span>
</a>
</span>
</span>
<span class='post-timestamp'>
at
<meta content='http://www.letsmakebettersoftware.com/2018/03/status-quo-of-blockchain.html' itemprop='url'/>
<a class='timestamp-link' href='http://www.letsmakebettersoftware.com/2018/03/status-quo-of-blockchain.html' rel='bookmark' title='permanent link'><abbr class='published' itemprop='datePublished' title='2018-03-09T21:49:00+01:00'>9:49 PM</abbr></a>
</span>
<span class='reaction-buttons'>
</span>
<span class='post-comment-link'>
<a class='comment-link' href='http://www.letsmakebettersoftware.com/2018/03/status-quo-of-blockchain.html#comment-form' onclick=''>
No comments:
    </a>
</span>
<span class='post-backlinks post-comment-link'>
</span>
<span class='post-icons'>
<span class='item-control blog-admin pid-1221084727'>
<a href='https://www.blogger.com/post-edit.g?blogID=5440489175204739003&postID=2558665143008089469&from=pencil' title='Edit Post'>
<img alt='' class='icon-action' height='18' src='https://resources.blogblog.com/img/icon18_edit_allbkg.gif' width='18'/>
</a>
</span>
</span>
<div class='post-share-buttons goog-inline-block'>
<a class='goog-inline-block share-button sb-email' href='https://www.blogger.com/share-post.g?blogID=5440489175204739003&postID=2558665143008089469&target=email' target='_blank' title='Email This'><span class='share-button-link-text'>Email This</span></a><a class='goog-inline-block share-button sb-blog' href='https://www.blogger.com/share-post.g?blogID=5440489175204739003&postID=2558665143008089469&target=blog' onclick='window.open(this.href, "_blank", "height=270,width=475"); return false;' target='_blank' title='BlogThis!'><span class='share-button-link-text'>BlogThis!</span></a><a class='goog-inline-block share-button sb-twitter' href='https://www.blogger.com/share-post.g?blogID=5440489175204739003&postID=2558665143008089469&target=twitter' target='_blank' title='Share to Twitter'><span class='share-button-link-text'>Share to Twitter</span></a><a class='goog-inline-block share-button sb-facebook' href='https://www.blogger.com/share-post.g?blogID=5440489175204739003&postID=2558665143008089469&target=facebook' onclick='window.open(this.href, "_blank", "height=430,width=640"); return false;' target='_blank' title='Share to Facebook'><span class='share-button-link-text'>Share to Facebook</span></a><a class='goog-inline-block share-button sb-pinterest' href='https://www.blogger.com/share-post.g?blogID=5440489175204739003&postID=2558665143008089469&target=pinterest' target='_blank' title='Share to Pinterest'><span class='share-button-link-text'>Share to Pinterest</span></a><div class='goog-inline-block google-plus-share-container'><g:plusone source='blogger:blog:plusone' href='http://www.letsmakebettersoftware.com/2018/03/status-quo-of-blockchain.html' size='medium' width='300' annotation='inline'/></div>
</div>
</div>
<div class='post-footer-line post-footer-line-2'>
<span class='post-labels'>
</span>
</div>
<div class='post-footer-line post-footer-line-3'>
<span class='post-location'>
</span>
</div>
</div>
</div>
</div>

          </div></div>
        

          <div class="date-outer">
        
<h2 class='date-header'><span>Tuesday, February 13, 2018</span></h2>

          <div class="date-posts">
        
<div class='post-outer'>
<div class='post hentry uncustomized-post-template' itemprop='blogPost' itemscope='itemscope' itemtype='http://schema.org/BlogPosting'>
<meta content='https://2.bp.blogspot.com/-f3r6Tc9HpGU/WoKvyqJM0UI/AAAAAAAAAOI/PqDhMvCGdmgf21l5gnceMqzDOcnbKuAsACLcBGAs/s1600/lmbs_secretsteammanagement.png' itemprop='image_url'/>
<meta content='5440489175204739003' itemprop='blogId'/>
<meta content='6453250303305188491' itemprop='postId'/>
<a name='6453250303305188491'></a>
<h3 class='post-title entry-title' itemprop='name'>
<a href='http://www.letsmakebettersoftware.com/2018/02/secrets-to-successful-team-management.html'>Secrets to Successful Team Management</a>
</h3>
<div class='post-header'>
<div class='post-header-line-1'></div>
</div>
<div class='post-body entry-content' id='post-body-6453250303305188491' itemprop='description articleBody'>
<div style="text-align: justify;">
<span style="font-size: large;">Behind every strong company are strong teams. And behind every strong team is a capable team manager who directs the team's focus and knows how to create an environment that allows individual team members to perform at their peak potential.</span></div>
<div style="text-align: justify;">
<span style="font-size: large;"><br /></span></div>
<div style="text-align: justify;">
<span style="font-size: large;">The focus of this article are the numerous techniques used by successful team managers to help their team grow and overcome even the most difficult challenges. When applied correctly, the techniques and strategies described in this article can have a significant positive effect on a company&#8217;s bottom line, productivity, and culture.&nbsp;</span></div>
<div style="text-align: justify;">
<span style="font-size: large;"><br /></span></div>
<div class="separator" style="clear: both; text-align: center;">
<a href="https://2.bp.blogspot.com/-f3r6Tc9HpGU/WoKvyqJM0UI/AAAAAAAAAOI/PqDhMvCGdmgf21l5gnceMqzDOcnbKuAsACLcBGAs/s1600/lmbs_secretsteammanagement.png" imageanchor="1" style="margin-left: 1em; margin-right: 1em;"><img border="0" data-original-height="616" data-original-width="652" src="https://2.bp.blogspot.com/-f3r6Tc9HpGU/WoKvyqJM0UI/AAAAAAAAAOI/PqDhMvCGdmgf21l5gnceMqzDOcnbKuAsACLcBGAs/s1600/lmbs_secretsteammanagement.png" /></a></div>
<div style="text-align: center;">
<br /></div>
<div style="text-align: justify;">
<span style="font-size: large;"><b><br /></b></span></div>
<div style="text-align: justify;">
<span style="font-size: large;"><b>Start with the Right Mindset</b></span></div>
<div style="text-align: justify;">
<span style="font-size: large;"><br /></span></div>
<div style="text-align: justify;">
<span style="font-size: large;">Many team managers start on the wrong foot by approaching their team with a wrong mindset. Especially when managing software developers, team managers must realize and keep in mind that they are responsible for highly intelligent, talented individuals with an abundance of creativity and excellent problem-solving skills.&nbsp;</span></div>
<div style="text-align: justify;">
<span style="font-size: large;"><br /></span></div>
<div style="text-align: justify;">
<span style="font-size: large;">This fact is a common source of problems for inexperienced team managers, who tend to clash with opinionated team members over trifling issues. In contrast, experience team managers take full advantage of the aptitude of their team by maintaining an open mind and supporting the team&#8217;s technical decisions by not enforcing strict requirements.&nbsp;</span></div>
<div style="text-align: justify;">
<span style="font-size: large;"><br /></span></div>
<div style="text-align: justify;">
<span style="font-size: large;">As we will explain in the following chapters, the right mindset of a team manager is actually the mindset of a leader. Unlike a manager, whose primary quality is the ability to control or administer, leader empowers and inspires.&nbsp;</span></div>
<div style="text-align: justify;">
<span style="font-size: large;"><br /></span></div>
<div style="text-align: justify;">
<span style="font-size: large;"></span></div>
<div style="text-align: justify;">
<span style="font-size: large;">"A leader is at his best when people barely know he exists, when the work is done, the team will say: we did it ourselves. This is because the leader has empowered the team so much and they have become so competent that they are mini-leaders themselves, thus the leader is leading without actually leading them. This must be the highest form of leadership. Lead without leading",&nbsp;<a href="https://www.linkedin.com/pulse/sun-tzu-people-management-andy-ng/" target="_blank">paraphrases</a> the Chief Trainer Coach at Asia Coaching Training, Andy Ng, the ancient Chinese military strategist Sun Tzu.&nbsp;</span></div>
<div style="text-align: justify;">
<span style="font-size: large;"><br /></span></div>
<div style="text-align: justify;">
<span style="font-size: large;"><b>Provide a Strong Vision Statement</b></span></div>
<div style="text-align: justify;">
<span style="font-size: large;"><br /></span></div>
<div style="text-align: justify;">
<span style="font-size: large;">A strong vision statement is a critical component of any great strategic plan. Often confused with a mission statement, which explains why a company exists, a vision statement paints a picture of where a company is going. As such, a vision statement succinctly and clearly articulates an inspiring vision of a future which team members, as well as all stakeholders and even customers, can identify with at the emotional level.&nbsp;</span></div>
<div style="text-align: justify;">
<span style="font-size: large;"><br /></span></div>
<div style="text-align: justify;">
<span style="font-size: large;">A strong vision statement is like a powerful inspirational speech, except that it is typically just a few words long. Some of the most powerful vision statements ever conceived talk about a distant yet reachable future. They are also direct, descriptive, and often audacious. They do not talk about revenue projections, shareholders, nor competition. Instead, they envision a common benefit whose importance is immediately clear to everyone regardless of their affiliation with the company the statement represents.&nbsp;</span></div>
<div style="text-align: justify;">
<span style="font-size: large;"><br /></span></div>
<div style="text-align: justify;">
<span style="font-size: large;">Experienced and successful team managers understand the power of a strong vision statement to realize the full potential of their team, and they use it to their advantage. We can draw on years&#8217; worth of scientific research in the field of management to illustrate just how effective of a tool a vision statement can be. For example, <a href="https://www.tinypulse.com/2014-employee-engagement-organizational-culture-report" target="_blank">a 2014 report from TINYpulse</a> surveyed over 500 organizations worldwide and analyzed more than 200,000 anonymous employee responses to answer a simple question: what motivates employees to go the extra mile?&nbsp;</span></div>
<div style="text-align: justify;">
<span style="font-size: large;"><br /></span></div>
<div style="text-align: justify;">
<span style="font-size: large;">Perhaps surprisingly, the number one influence in encouraging employees to outperform expectations was camaraderie, the spirit of friendly good-fellowship associated with soldiers, who fight united to overcome seemingly insurmountable obstacles. Furthermore, nearly two-thirds of all employees felt discouraged by the lack of a strong company culture, which is to say by the lack of a strong vision that would motivate employees to strive for excellence.</span></div>
<div style="text-align: justify;">
<span style="font-size: large;"><br /></span></div>
<div style="text-align: justify;">
<span style="font-size: large;"></span></div>
<div style="text-align: justify;">
<span style="font-size: large;">A team manager must be trained to recognize that their team lacks a purpose and come up with a strong vision statement to provide it.&nbsp;</span></div>
<div style="text-align: justify;">
<span style="font-size: large;"><b><br /></b></span></div>
<div style="text-align: justify;">
<span style="font-size: large;"><b>Set Constraints</b></span></div>
<div style="text-align: justify;">
<span style="font-size: large;"><br /></span></div>
<div style="text-align: justify;">
<span style="font-size: large;">Once team members have a purpose, they need a plan. "This plan, designed by managers, should be set before the actual work begins. Managers should continuously encourage every developer to stick to the established plan",&nbsp;<a href="https://www.forbes.com/sites/forbestechcouncil/2017/05/15/eight-essential-software-developer-management-tips/#472ab368626f" target="_blank">writes</a> CEO &amp; President of UM Technologies and its partner companies Scott Stiner.</span></div>
<div style="text-align: justify;">
<span style="font-size: large;"><br /></span></div>
<div style="text-align: justify;">
<span style="font-size: large;">In software development, agile provides a proven and tested time-boxed approach based on iterative development, where requirements and solutions evolve through collaboration between self-organizing cross-functional teams, as described by the <a href="https://www.agilealliance.org/agile101/" target="_blank">Agile Alliance</a>. In other words, agile sets constraints as to what gets built in a given time frame and ensures that everyone focuses only on the plan ahead.&nbsp;</span></div>
<div style="text-align: justify;">
<span style="font-size: large;"><br /></span></div>
<div style="text-align: justify;">
<span style="font-size: large;">Again, the work of a team manager does not end after a plan has been designed- far from it. A team manager should act as a filter against outside noise. We say "filter" on purpose because a good team manager knows which information they should allow to reach the team and which they should block before it distracts everyone for no good reason.</span></div>
<div style="text-align: justify;">
<span style="font-size: large;"><br /></span></div>
<div style="text-align: justify;">
<span style="font-size: large;"></span></div>
<div style="text-align: justify;">
<span style="font-size: large;">A team manager's job is to allow their team to be as productive as possible. That means handling non-development work so that everyone else on the team does not have to worry about it. "For example, if managers are coders, they can assist in writing tests to make it easier for developers to continue with their assigned tasks", Stiner explains.&nbsp;</span></div>
<div style="text-align: justify;">
<span style="font-size: large;"><br /></span></div>
<div style="text-align: justify;">
<span style="font-size: large;"><b>Foster Healthy Relationships</b></span></div>
<div style="text-align: justify;">
<span style="font-size: large;"><br /></span></div>
<div style="text-align: justify;">
<span style="font-size: large;">Each team member should feel that the team manager has his or her back - not that the manager is on his or her back. "Most projects fail because of people, not technology. You are managing a team of people. Humans. Humans are weird, complex creatures", Peter Kelly <a href="https://medium.com/@peterkellyonline/what-makes-a-great-software-manager-33077e0167eb" target="_blank">provides a perspective</a> of a seasoned software engineer with over 15 years of experience under his belt. "Hiring, nurturing, coaching, maintaining and organizing a team of humans and managing that team to success on projects is the main job of a software manager."</span></div>
<div style="text-align: justify;">
<span style="font-size: large;"><br /></span></div>
<div style="text-align: justify;">
<span style="font-size: large;">All team managers will do themselves and their employees a huge favor if they build relationships based on transparency and trust rather than controlling and reporting. Active listening and proactive communication are two foundational prerequisites for building this kind of relationship. It is easy to fall into the trap of simply walking around the office and asking individual team members how they are doing, but such effort is futile if not supported by genuine desire to establish respectful bonds.</span></div>
<div style="text-align: justify;">
<span style="font-size: large;"><br /></span></div>
<div style="text-align: justify;">
<span style="font-size: large;">This brings us back to where we started: the importance of having the right mindset. It is impossible for any team manager to foster healthy relationships with team members unless the manager trusts the team members to do their jobs. As Ilja Preuß, a software developer at Disy Informationssysteme GmbH, <a href="https://www.cio.com/article/2435469/developer/managing-and-motivating-developers--tips-for-management-cluefulness.html" target="_blank">suggests</a>, "Find out what the developers like to do and find a way to let them do it so that it benefits the company. The most motivated people are those who do what they like doing."</span></div>
<div style="text-align: justify;">
<span style="font-size: large;"><br /></span></div>
<div style="text-align: justify;">
<span style="font-size: large;">When team members see that the team manager believes in them and goes above and beyond trying to remove every obstacle to allow them to focus on their work, they are much more likely to support the team manager's decisions when the going gets tough, which can be the difference between a team that sticks together and surmounts even the most difficult of challenges and a team that crumbles under the pressure of a deadline, unforeseen complications, or some last-minute change request.</span></div>
<div style="text-align: justify;">
<span style="font-size: large;"><br /></span></div>
<div style="text-align: justify;">
<span style="font-size: large;">In fact, <a href="https://www.prnewswire.com/news-releases/thanks-but-no-thanks-survey-reveals-strangest-forms-of-workplace-recognition-research-also-finds-two-in-three-employees-would-leave-their-job-if-they-didnt-feel-appreciated-300438300.html" target="_blank">a study</a> from Office Team examining the impact of appreciation, or lack thereof, in the workplace found that 66 percent of employees would "likely leave their job because they didn&#8217;t feel appreciated" and the number jumped to 76 percent among millennials, who are generally known for placing a higher value on healthy company relationships than previous generations.&nbsp;</span></div>
<div style="text-align: justify;">
<span style="font-size: large;"><br /></span></div>
<div style="text-align: justify;">
<span style="font-size: large;">The ability to show genuine appreciation and naturally communicate on a personal level is where the difference between average and exceptional team managers shows the most. Exceptional team managers have an innate understanding of the fact that team members who feel respected and valued work harder. They are not only able to praise and recognize a fruitful effort, but they also feel the need to do so because they understand that the recognition of efforts is one of the most important functions of a manager.&nbsp;</span></div>
<div style="text-align: justify;">
<span style="font-size: large;"><br /></span></div>
<div style="text-align: justify;">
<span style="font-size: large;"></span></div>
<div style="text-align: justify;">
<span style="font-size: large;">"Think of leadership like computer programming. Dedicate some time to the backend to create a strong team and set them up for success. Come launch time, just step back and admire as they thrive. As a leader, you will know you have successfully built a strong team when they work effortlessly without you. The icing on the cake? Although they don&#8217;t rely on you to function, they still want you there", Marketing Strategist Taunya Williams <a href="https://www.forbes.com/sites/forbescommunicationscouncil/2017/10/19/building-a-strong-team-the-secrets-of-a-successful-leader/2/#3a3d960818c4" target="_blank">summarizes</a> what the role of team manager should be about.&nbsp;</span></div>
<div style="text-align: justify;">
<span style="font-size: large;"><br /></span></div>
<div style="text-align: justify;">
<span style="font-size: large;"><b>Conclusion</b></span></div>
<div style="text-align: justify;">
<span style="font-size: large;"><br /></span></div>
<div style="text-align: justify;">
<span style="font-size: large;"></span></div>
<div style="text-align: justify;">
<span style="font-size: large;">The role of team manager requires a broad range of personal competencies, not all of which can be easily acquired from books or experience. The best team managers give their team members a sense of feeling that they are strongly supported, valued, and trusted. They motivate by creating a strong vision statement behind which everyone can rally, and they help their team maintain focus on what really matters by filtering out what does not matter. Perhaps above all, excellent team managers foster healthy relationships with individual team members and understand the value of making someone feel appreciated.&nbsp;</span></div>
<div style="text-align: justify;">
<span style="font-size: large;"><br /></span></div>
<div style="text-align: justify;">
<span style="font-size: large;"><b>Sources</b></span></div>
<div style="text-align: justify;">
<span style="font-size: large;"><br /></span></div>
<div style="text-align: justify;">
<a href="https://www.linkedin.com/pulse/sun-tzu-people-management-andy-ng/">https://www.linkedin.com/pulse/sun-tzu-people-management-andy-ng/</a></div>
<div style="text-align: justify;">
<a href="https://www.blogger.com/goog_1923876619"><br /></a></div>
<div style="text-align: justify;">
<a href="https://www.tinypulse.com/2014-employee-engagement-organizational-culture-report">https://www.tinypulse.com/2014-employee-engagement-organizational-culture-report</a></div>
<div style="text-align: justify;">
<a href="https://www.blogger.com/goog_1923876621"><br /></a></div>
<div style="text-align: justify;">
<a href="https://www.forbes.com/sites/forbestechcouncil/2017/05/15/eight-essential-software-developer-management-tips/#472ab368626f">https://www.forbes.com/sites/forbestechcouncil/2017/05/15/eight-essential-software-developer-management-tips/#472ab368626f</a></div>
<div style="text-align: justify;">
<br /></div>
<div style="text-align: justify;">
<a href="https://www.agilealliance.org/agile101/">https://www.agilealliance.org/agile101/</a></div>
<div style="text-align: justify;">
<a href="https://www.blogger.com/goog_1923876625"><br /></a></div>
<div style="text-align: justify;">
<a href="https://medium.com/@peterkellyonline/what-makes-a-great-software-manager-33077e0167eb">https://medium.com/@peterkellyonline/what-makes-a-great-software-manager-33077e0167eb</a></div>
<div style="text-align: justify;">
<br /></div>
<div style="text-align: justify;">
<a href="https://www.cio.com/article/2435469/developer/managing-and-motivating-developers--tips-for-management-cluefulness.html">https://www.cio.com/article/2435469/developer/managing-and-motivating-developers--tips-for-management-cluefulness.html</a></div>
<div style="text-align: justify;">
<br /></div>
<div style="text-align: justify;">
<a href="https://www.prnewswire.com/news-releases/thanks-but-no-thanks-survey-reveals-strangest-forms-of-workplace-recognition-research-also-finds-two-in-three-employees-would-leave-their-job-if-they-didnt-feel-appreciated-300438300.html">https://www.prnewswire.com/news-releases/thanks-but-no-thanks-survey-reveals-strangest-forms-of-workplace-recognition-research-also-finds-two-in-three-employees-would-leave-their-job-if-they-didnt-feel-appreciated-300438300.html</a></div>
<div style="text-align: justify;">
<a href="https://www.blogger.com/goog_1923876631"><br /></a></div>
<div style="text-align: justify;">
<a href="https://www.forbes.com/sites/forbescommunicationscouncil/2017/10/19/building-a-strong-team-the-secrets-of-a-successful-leader/2/#3a3d960818c4">https://www.forbes.com/sites/forbescommunicationscouncil/2017/10/19/building-a-strong-team-the-secrets-of-a-successful-leader/2/#3a3d960818c4</a></div>
<div style="text-align: justify;">
<br /></div>
<div style='clear: both;'></div>
</div>
<div class='post-footer'>
<div class='post-footer-line post-footer-line-1'>
<span class='post-author vcard'>
Posted by
<span class='fn' itemprop='author' itemscope='itemscope' itemtype='http://schema.org/Person'>
<meta content='https://www.blogger.com/profile/13795565839688197468' itemprop='url'/>
<a class='g-profile' href='https://www.blogger.com/profile/13795565839688197468' rel='author' title='author profile'>
<span itemprop='name'>Philipp Guntermann</span>
</a>
</span>
</span>
<span class='post-timestamp'>
at
<meta content='http://www.letsmakebettersoftware.com/2018/02/secrets-to-successful-team-management.html' itemprop='url'/>
<a class='timestamp-link' href='http://www.letsmakebettersoftware.com/2018/02/secrets-to-successful-team-management.html' rel='bookmark' title='permanent link'><abbr class='published' itemprop='datePublished' title='2018-02-13T10:38:00+01:00'>10:38 AM</abbr></a>
</span>
<span class='reaction-buttons'>
</span>
<span class='post-comment-link'>
<a class='comment-link' href='http://www.letsmakebettersoftware.com/2018/02/secrets-to-successful-team-management.html#comment-form' onclick=''>
No comments:
    </a>
</span>
<span class='post-backlinks post-comment-link'>
</span>
<span class='post-icons'>
<span class='item-control blog-admin pid-1221084727'>
<a href='https://www.blogger.com/post-edit.g?blogID=5440489175204739003&postID=6453250303305188491&from=pencil' title='Edit Post'>
<img alt='' class='icon-action' height='18' src='https://resources.blogblog.com/img/icon18_edit_allbkg.gif' width='18'/>
</a>
</span>
</span>
<div class='post-share-buttons goog-inline-block'>
<a class='goog-inline-block share-button sb-email' href='https://www.blogger.com/share-post.g?blogID=5440489175204739003&postID=6453250303305188491&target=email' target='_blank' title='Email This'><span class='share-button-link-text'>Email This</span></a><a class='goog-inline-block share-button sb-blog' href='https://www.blogger.com/share-post.g?blogID=5440489175204739003&postID=6453250303305188491&target=blog' onclick='window.open(this.href, "_blank", "height=270,width=475"); return false;' target='_blank' title='BlogThis!'><span class='share-button-link-text'>BlogThis!</span></a><a class='goog-inline-block share-button sb-twitter' href='https://www.blogger.com/share-post.g?blogID=5440489175204739003&postID=6453250303305188491&target=twitter' target='_blank' title='Share to Twitter'><span class='share-button-link-text'>Share to Twitter</span></a><a class='goog-inline-block share-button sb-facebook' href='https://www.blogger.com/share-post.g?blogID=5440489175204739003&postID=6453250303305188491&target=facebook' onclick='window.open(this.href, "_blank", "height=430,width=640"); return false;' target='_blank' title='Share to Facebook'><span class='share-button-link-text'>Share to Facebook</span></a><a class='goog-inline-block share-button sb-pinterest' href='https://www.blogger.com/share-post.g?blogID=5440489175204739003&postID=6453250303305188491&target=pinterest' target='_blank' title='Share to Pinterest'><span class='share-button-link-text'>Share to Pinterest</span></a><div class='goog-inline-block google-plus-share-container'><g:plusone source='blogger:blog:plusone' href='http://www.letsmakebettersoftware.com/2018/02/secrets-to-successful-team-management.html' size='medium' width='300' annotation='inline'/></div>
</div>
</div>
<div class='post-footer-line post-footer-line-2'>
<span class='post-labels'>
</span>
</div>
<div class='post-footer-line post-footer-line-3'>
<span class='post-location'>
</span>
</div>
</div>
</div>
</div>

          </div></div>
        

          <div class="date-outer">
        
<h2 class='date-header'><span>Saturday, January 20, 2018</span></h2>

          <div class="date-posts">
        
<div class='post-outer'>
<div class='post hentry uncustomized-post-template' itemprop='blogPost' itemscope='itemscope' itemtype='http://schema.org/BlogPosting'>
<meta content='https://4.bp.blogspot.com/-b2xaXjmzNV4/WmMSN9QEOrI/AAAAAAAAAN4/Kmjj3oz3dXEA_C2nGzargg86as4xgLPFgCLcBGAs/s1600/lmbs_devopsinnovation.png' itemprop='image_url'/>
<meta content='5440489175204739003' itemprop='blogId'/>
<meta content='8249837063089180679' itemprop='postId'/>
<a name='8249837063089180679'></a>
<h3 class='post-title entry-title' itemprop='name'>
<a href='http://www.letsmakebettersoftware.com/2018/01/how-can-devops-contribute-to-digital.html'>How can DevOps contribute to Digital Transformation and Innovation?</a>
</h3>
<div class='post-header'>
<div class='post-header-line-1'></div>
</div>
<div class='post-body entry-content' id='post-body-8249837063089180679' itemprop='description articleBody'>
<div style="text-align: justify;">
<span style="font-size: large;">When we talk about Digital Transformation, we soon think of innovation, technology, e-commerce, social networks, mobility, among others, as well as transforming something that was physical into digital, such as banking services, which were previously offered through physical banking agencies and are now available through internet banking, bringing all the convenience to the end user with high availability and without restriction of time or space.</span></div>
<div style="text-align: justify;">
<span style="font-size: large;"><br /></span></div>
<div style="text-align: justify;">
<span style="font-size: large;">However, for a company to transform digitally and innovate, we must develop and make available new services and products that generate value for the business and that allow the user a rewarding experience in the use of these services or products. It is necessary to go beyond simply providing an e-commerce or an app on Google Play and the App Store. A cultural change is essential.</span></div>
<div style="text-align: justify;">
<span style="font-size: large;"><br /></span></div>
<div style="text-align: justify;">
<span style="font-size: large;">In this article we will discuss the importance of DevOps to help companies in the digital transformation and innovation. Agility in deliveries is essential in this transformation process. But before we go there, we will take a look some basic concepts that are behind DevOps.</span></div>
<div style="text-align: justify;">
<span style="font-size: large;"><br /></span></div>
<div class="separator" style="clear: both; text-align: center;">
<a href="https://4.bp.blogspot.com/-b2xaXjmzNV4/WmMSN9QEOrI/AAAAAAAAAN4/Kmjj3oz3dXEA_C2nGzargg86as4xgLPFgCLcBGAs/s1600/lmbs_devopsinnovation.png" imageanchor="1" style="margin-left: 1em; margin-right: 1em;"><img border="0" data-original-height="683" data-original-width="708" src="https://4.bp.blogspot.com/-b2xaXjmzNV4/WmMSN9QEOrI/AAAAAAAAAN4/Kmjj3oz3dXEA_C2nGzargg86as4xgLPFgCLcBGAs/s1600/lmbs_devopsinnovation.png" /></a></div>
<div style="text-align: center;">
<span style="font-size: large;"><br /></span></div>
<div style="text-align: justify;">
<span style="font-size: large;"><br /></span></div>
<div style="text-align: justify;">
<span style="font-size: large;"><b>What exactly is DevOps?</b></span></div>
<div style="text-align: justify;">
<span style="font-size: large;"><br /></span></div>
<div style="text-align: justify;">
<span style="font-size: large;">DevOps is the result of a join between Development and Operations. According to the precepts of this term, those responsible for creating or improving software should act in an integrated manner with the professionals who maintain the applications on a daily basis and also with the IT infrastructure that supports those systems. DevOps proposes, therefore, the union between creation and maintenance of IT solutions in order to create a process of continuous improvement.</span></div>
<div style="text-align: justify;">
<span style="font-size: large;"><br /></span></div>
<div style="text-align: justify;">
<span style="font-size: large;">In a way, this concept opposes the traditional way of development, which is the delivery of large program releases after a long development process. In this scenario, it was the job of technicians to simply deploy software according to the needs of the customer and keep it working. The software only advanced when a new version was developed and released.</span></div>
<div style="text-align: justify;">
<span style="font-size: large;"><br /></span></div>
<div style="text-align: justify;">
<span style="font-size: large;">In DevOps, Development teams and IT infrastructure managers work in constant communication to improve services over very short periods of time. In this way, errors are promptly analyzed and corrected and improvements can be incorporated into the solution much quicker than before.&nbsp;</span></div>
<div style="text-align: justify;">
<span style="font-size: large;"><br /></span></div>
<div style="text-align: justify;">
<span style="font-size: large;"><b>Benefits of Using DevOps for Businesses</b></span></div>
<div style="text-align: justify;">
<span style="font-size: large;"><br /></span></div>
<div style="text-align: justify;">
<span style="font-size: large;">For how projects are conducted in companies, DevOps brings benefits of time optimization and effort by proposing smaller development cycles, collaborative work, and breaking paradigms between the areas involved. In addition, it always aims to generate revenue and avoid&nbsp;unnecessary&nbsp;</span><span style="font-size: large;">costs.</span></div>
<div style="text-align: justify;">
<br /></div>
<div style="text-align: justify;">
<span style="font-size: large;">Working with DevOps also brings benefits such as integration with trends such as Cloud Computing (including hybrid clouds), PaaS, SaaS and IaaS, which together reduce operating costs considerably and make&nbsp;</span><span style="font-size: large;">maintenance</span><span style="font-size: large;">&nbsp;much easier.&nbsp;</span><span style="font-size: large;">The development is completely focused on the effective challenges of the client, implementing and delivering solutions&nbsp; almost immediately.</span></div>
<div style="text-align: justify;">
<span style="font-size: large;"><br /></span></div>
<div style="text-align: justify;">
<span style="font-size: large;">Automation tools and dashboards help more easily track metrics and results, provide means of automated deployment processes and quality assurance tasks.</span></div>
<div style="text-align: justify;">
<span style="font-size: large;"><br /></span></div>
<div style="text-align: justify;">
<span style="font-size: large;">DevOps&nbsp;</span><span style="font-size: large;">facilitates teamwork and communication across previously strongly seperated departments of the organization, aiding your team building efforts and reducing silos.</span><span style="font-size: large;">&nbsp;It manages to raise the quality of collaborative work and helps teams become more receptive to cultural change and see value in this measure.</span></div>
<div style="text-align: justify;">
<br /></div>
<div style="text-align: justify;">
<span style="font-size: large;"></span></div>
<div style="text-align: justify;">
<span style="font-size: large;">All this helps the company to meet processes and demands with greater excellence, supported by the use of automation tools and results. In the end, always focusing on a promising cultural change to positively transform the way the company does business.</span></div>
<div style="text-align: justify;">
<span style="font-size: large;"><br /></span></div>
<div style="text-align: justify;">
<span style="font-size: large;"><b>How to make DevOps work?</b></span></div>
<div style="text-align: justify;">
<span style="font-size: large;"><br /></span></div>
<div style="text-align: justify;">
<span style="font-size: large;">Making DevOps work effectively in IT requires some profound changes. First, it is necessary to integrate areas that, until recently, were considered as very distant: development and operations. To put these professionals side by side, one must work on aligning processes, policies and protocols, ensuring that integration is organic. It is also necessary to invest in resource automation and standardization of responses, ensuring that solutions follow an agile and predictable flow, bringing concrete results.</span></div>
<div style="text-align: justify;">
<span style="font-size: large;"><br /></span></div>
<div style="text-align: justify;">
<span style="font-size: large;"></span></div>
<div style="text-align: justify;">
<span style="font-size: large;">The agility resulting from automation and process standardization is reflected in the reduction of repetitive tasks by IT professionals - both Development and Infrastructure. With this, the employees are released to work in more creative activities, with greater potential for innovation.</span></div>
<div style="text-align: justify;">
<span style="font-size: large;"><br /></span></div>
<div style="text-align: justify;">
<span style="font-size: large;"><b>DevOps, Innovation and Digital Transformation</b></span></div>
<div style="text-align: justify;">
<span style="font-size: large;"><b><br /></b></span></div>
<div style="text-align: justify;">
<span style="font-size: large;">Have you noticed that DevOps will help development teams and operations deliver software in a more agile and less bureaucratic way?</span></div>
<div style="text-align: justify;">
<span style="font-size: large;"><br /></span></div>
<div style="text-align: justify;">
<span style="font-size: large;">Now going back to the main topic of the article, how will this aid in the process of innovation and digital transformation?</span></div>
<div style="text-align: justify;">
<span style="font-size: large;"><br /></span></div>
<div style="text-align: justify;">
<span style="font-size: large;">It is not enough for the company to digitize its front office and keep its back office bureaucratic and slow in responding to market needs and/or poor after-sales service or the lack of skill and speed in solving problems that are demanded by the business, users and customers.</span></div>
<div style="text-align: justify;">
<span style="font-size: large;"><br /></span></div>
<div style="text-align: justify;">
<span style="font-size: large;">The focus should be on the clients and how to meet their needs, solve their problems effectively, efficiently, simply and innovatively. This takes into account the entire lifecycle of the service or product, that is, from its design to the user experience. It is essential that companies work to establish a trust bond among their customers: to really know how to listen to it and respond to its problems with quality and safety.</span></div>
<div style="text-align: justify;">
<span style="font-size: large;"><br /></span></div>
<div style="text-align: justify;">
<span style="font-size: large;">The processes that involve DevOps can contribute to the generation of innovation and also to the digital transformation in companies.&nbsp;</span><span style="font-size: large;">This is because, at the same time, it focuses on process automation that touches the software development lifecycle, contributing to the digitization of previously manual activities such as validation of software code quality, testing, and software releases, this model also increases the level of quality and security of the applications.</span></div>
<div style="text-align: justify;">
<span style="font-size: large;"><br /></span></div>
<div style="text-align: justify;">
<span style="font-size: large;">With the implementation of DevOps, agile development practices such as Scrum become natural because they focus on software deliveries with fast cycles. In addition, through the operation team, proactive monitoring of the applications that are made available to users is performed.</span></div>
<div style="text-align: justify;">
<span style="font-size: large;"><br /></span></div>
<div style="text-align: justify;">
<span style="font-size: large;"><b>Does the concept of DevOps apply only to IT?</b></span></div>
<div style="text-align: justify;">
<span style="font-size: large;"><b><br /></b></span></div>
<div style="text-align: justify;">
<span style="font-size: large;">As DevOps has emerged in the Information Technology environment, it is already a reality in this area today. However, its basic principles can also be broadened, reaching different areas of the organization. The important thing is that the goal is to streamline processes.</span></div>
<div style="text-align: justify;">
<span style="font-size: large;"><br /></span></div>
<div style="text-align: justify;">
<span style="font-size: large;"></span></div>
<div style="text-align: justify;">
<span style="font-size: large;">After all, integration can be the key word to make the marketing, sales and after-sales sectors more attuned, ensuring improvements throughout the whole client engagement. Likewise, logistics and the financial and tax sectors can reduce their costs by investing in updating their own internal procedures.</span></div>
<div style="text-align: justify;">
<span style="font-size: large;"><br /></span></div>
<div style="text-align: justify;">
<span style="font-size: large;"><b>Conclusion</b></span></div>
<div style="text-align: justify;">
<span style="font-size: large;"><br /></span></div>
<div style="text-align: justify;">
<span style="font-size: large;"></span></div>
<div style="text-align: justify;">
<span style="font-size: large;">With the practices that involve DevOps, it is possible to have agility, either in the time to market or to respond quickly to problems identified by the user experience, continuously improving a product or service. Furthermore, coupled with Big Data technologies, it is possible to extract useful information which can bring a huge competitive advantage over competitors as well as evolve into predictive analytics. In addition to a cloud infrastructure, it is possible to be prepared for demand peaks in a safe and high level of efficiency for the availability of these services to users. If your company is looking for innovation allied with efficiency, focusing on the user experience, you need to start to embrace the concepts of DevOps today.</span></div>
<div style="text-align: justify;">
<br /></div>
<div style="text-align: justify;">
<br /></div>
<div style='clear: both;'></div>
</div>
<div class='post-footer'>
<div class='post-footer-line post-footer-line-1'>
<span class='post-author vcard'>
Posted by
<span class='fn' itemprop='author' itemscope='itemscope' itemtype='http://schema.org/Person'>
<meta content='https://www.blogger.com/profile/13795565839688197468' itemprop='url'/>
<a class='g-profile' href='https://www.blogger.com/profile/13795565839688197468' rel='author' title='author profile'>
<span itemprop='name'>Philipp Guntermann</span>
</a>
</span>
</span>
<span class='post-timestamp'>
at
<meta content='http://www.letsmakebettersoftware.com/2018/01/how-can-devops-contribute-to-digital.html' itemprop='url'/>
<a class='timestamp-link' href='http://www.letsmakebettersoftware.com/2018/01/how-can-devops-contribute-to-digital.html' rel='bookmark' title='permanent link'><abbr class='published' itemprop='datePublished' title='2018-01-20T11:42:00+01:00'>11:42 AM</abbr></a>
</span>
<span class='reaction-buttons'>
</span>
<span class='post-comment-link'>
<a class='comment-link' href='http://www.letsmakebettersoftware.com/2018/01/how-can-devops-contribute-to-digital.html#comment-form' onclick=''>
No comments:
    </a>
</span>
<span class='post-backlinks post-comment-link'>
</span>
<span class='post-icons'>
<span class='item-control blog-admin pid-1221084727'>
<a href='https://www.blogger.com/post-edit.g?blogID=5440489175204739003&postID=8249837063089180679&from=pencil' title='Edit Post'>
<img alt='' class='icon-action' height='18' src='https://resources.blogblog.com/img/icon18_edit_allbkg.gif' width='18'/>
</a>
</span>
</span>
<div class='post-share-buttons goog-inline-block'>
<a class='goog-inline-block share-button sb-email' href='https://www.blogger.com/share-post.g?blogID=5440489175204739003&postID=8249837063089180679&target=email' target='_blank' title='Email This'><span class='share-button-link-text'>Email This</span></a><a class='goog-inline-block share-button sb-blog' href='https://www.blogger.com/share-post.g?blogID=5440489175204739003&postID=8249837063089180679&target=blog' onclick='window.open(this.href, "_blank", "height=270,width=475"); return false;' target='_blank' title='BlogThis!'><span class='share-button-link-text'>BlogThis!</span></a><a class='goog-inline-block share-button sb-twitter' href='https://www.blogger.com/share-post.g?blogID=5440489175204739003&postID=8249837063089180679&target=twitter' target='_blank' title='Share to Twitter'><span class='share-button-link-text'>Share to Twitter</span></a><a class='goog-inline-block share-button sb-facebook' href='https://www.blogger.com/share-post.g?blogID=5440489175204739003&postID=8249837063089180679&target=facebook' onclick='window.open(this.href, "_blank", "height=430,width=640"); return false;' target='_blank' title='Share to Facebook'><span class='share-button-link-text'>Share to Facebook</span></a><a class='goog-inline-block share-button sb-pinterest' href='https://www.blogger.com/share-post.g?blogID=5440489175204739003&postID=8249837063089180679&target=pinterest' target='_blank' title='Share to Pinterest'><span class='share-button-link-text'>Share to Pinterest</span></a><div class='goog-inline-block google-plus-share-container'><g:plusone source='blogger:blog:plusone' href='http://www.letsmakebettersoftware.com/2018/01/how-can-devops-contribute-to-digital.html' size='medium' width='300' annotation='inline'/></div>
</div>
</div>
<div class='post-footer-line post-footer-line-2'>
<span class='post-labels'>
</span>
</div>
<div class='post-footer-line post-footer-line-3'>
<span class='post-location'>
</span>
</div>
</div>
</div>
</div>

          </div></div>
        

          <div class="date-outer">
        
<h2 class='date-header'><span>Friday, January 5, 2018</span></h2>

          <div class="date-posts">
        
<div class='post-outer'>
<div class='post hentry uncustomized-post-template' itemprop='blogPost' itemscope='itemscope' itemtype='http://schema.org/BlogPosting'>
<meta content='https://3.bp.blogspot.com/-1kfATqc-pDA/Wk_fXeol1uI/AAAAAAAAANo/twbo1-49CqoMV2Kl0cZb1MfKj-U5cH7yACLcBGAs/s1600/lmbs_backlogprioritization.png' itemprop='image_url'/>
<meta content='5440489175204739003' itemprop='blogId'/>
<meta content='816921047364598045' itemprop='postId'/>
<a name='816921047364598045'></a>
<h3 class='post-title entry-title' itemprop='name'>
<a href='http://www.letsmakebettersoftware.com/2018/01/tips-that-will-assist-you-in-backlog.html'>Tips that will assist you in backlog prioritization</a>
</h3>
<div class='post-header'>
<div class='post-header-line-1'></div>
</div>
<div class='post-body entry-content' id='post-body-816921047364598045' itemprop='description articleBody'>
<div style="text-align: justify;">
<span style="font-size: large;">The Product Backlog is the Scrum artifact that represents what must be developed in the project, that is, it contains all the work that needs to be completed.&nbsp;</span></div>
<div style="text-align: justify;">
<span style="font-size: large;"><br /></span></div>
<div style="text-align: justify;">
<span style="font-size: large;">We also know, in an agile project, a change in course is to be expected, so the initial set of functionalities to meet the product requirements can vary in priority as time passes, and with this, maintaining the Product Backlog prioritized and updated is of paramount importance to the success of the project.&nbsp;</span></div>
<div style="text-align: justify;">
<span style="font-size: large;"><br /></span></div>
<div style="text-align: justify;">
<span style="font-size: large;">In this article I will list some tips to help you prioritize the Product Backlog.</span></div>
<div style="text-align: justify;">
<span style="font-size: large;"><br /></span></div>
<div class="separator" style="clear: both; text-align: center;">
<a href="https://3.bp.blogspot.com/-1kfATqc-pDA/Wk_fXeol1uI/AAAAAAAAANo/twbo1-49CqoMV2Kl0cZb1MfKj-U5cH7yACLcBGAs/s1600/lmbs_backlogprioritization.png" imageanchor="1" style="margin-left: 1em; margin-right: 1em;"><img border="0" data-original-height="732" data-original-width="730" src="https://3.bp.blogspot.com/-1kfATqc-pDA/Wk_fXeol1uI/AAAAAAAAANo/twbo1-49CqoMV2Kl0cZb1MfKj-U5cH7yACLcBGAs/s1600/lmbs_backlogprioritization.png" /></a></div>
<div style="text-align: center;">
<span style="font-size: large;"><br /></span></div>
<div style="text-align: justify;">
<span style="font-size: large;"><br /></span></div>
<div style="text-align: justify;">
<span style="font-size: large;"><b>Keep Product Backlog Updated</b></span></div>
<div style="text-align: justify;">
<span style="font-size: large;"><br /></span></div>
<div style="text-align: justify;">
<span style="font-size: large;">Stories that are no longer in line with the product view should be discarded from the backlog. The smaller the set of stories that have to be prioritized, the simpler the task will be. As difficult as it is to "detach" from a thoughtful and well written requirement, keeping it in the backlog after it has been identified as obsolete will only set you back.</span></div>
<div style="text-align: justify;">
<span style="font-size: large;"><br /></span></div>
<div style="text-align: justify;">
<span style="font-size: large;"><b>Give importance to Definition of Ready (DoR)</b></span></div>
<div style="text-align: justify;">
<span style="font-size: large;"><br /></span></div>
<div style="text-align: justify;">
<span style="font-size: large;">The definition of ready for user stories is another factor that can greatly aid in the prioritization of the Product Backlog. Without it, the development team may not know how to correctly estimate a story, passing a false sense of story size to the PO, resulting in prioritizing decisions based on unreliable information.</span></div>
<div style="text-align: justify;">
<span style="font-size: large;"><br /></span></div>
<div style="text-align: justify;">
<span style="font-size: large;"><b>What is the knowledge, uncertainty and risk about a story?</b></span></div>
<div style="text-align: justify;">
<span style="font-size: large;"><br /></span></div>
<div style="text-align: justify;">
<span style="font-size: large;">As these factors directly influence the success of the product, stories with a low degree of knowledge and a high degree of uncertainty and risk should have a high priority, since the sooner they are developed, the better the path to follow can be perceived, otherwise not having the time to develop the story and reap the rewards of the development of it.</span></div>
<div style="text-align: justify;">
<span style="font-size: large;"><b><br /></b></span></div>
<div style="text-align: justify;">
<span style="font-size: large;"><b>What is the story's influence on the next release?</b></span></div>
<div style="text-align: justify;">
<span style="font-size: large;"><br /></span></div>
<div style="text-align: justify;">
<span style="font-size: large;">Stories that enable faster product launching should also be at the top of the Product Backlog. For example, in an invoice generation software, the generation of the note itself is much more important than the registration of the products, so it must have a higher priority.</span></div>
<div style="text-align: justify;">
<span style="font-size: large;"><br /></span></div>
<div style="text-align: justify;">
<span style="font-size: large;"><b>Attention to the size of the stories</b></span></div>
<div style="text-align: justify;">
<span style="font-size: large;"><br /></span></div>
<div style="text-align: justify;">
<span style="font-size: large;">Remember, the story should be small enough to be independent and add value to the software and to the client. Seek a uniformity in the size of the stories. Try to keep short stories on top of the backlog and find bigger ones as you progress through it. Avoid having the team estimate very large stories that are at greater risk of presenting surprises in their development and which have estimates that are more susceptible to errors.</span></div>
<div style="text-align: justify;">
<span style="font-size: large;"><b><br /></b></span></div>
<div style="text-align: justify;">
<span style="font-size: large;"><b>Attention to dependency between histories</b></span></div>
<div style="text-align: justify;">
<span style="font-size: large;"><br /></span></div>
<div style="text-align: justify;">
<span style="font-size: large;">Despite the definition that stories must be independent, we often can not avoid the dependency between stories. In this case the best option is to make this dependence visible, with a note, a different color, anything that draws attention to it. If story A depends on story B, it does not add value for the business to make A prior to B and this should be visible to all involved in the Project.</span></div>
<div style="text-align: justify;">
<span style="font-size: large;"><b><br /></b></span></div>
<div style="text-align: justify;">
<span style="font-size: large;"><b>Listen to all stakeholders</b></span></div>
<div style="text-align: justify;">
<span style="font-size: large;"><br /></span></div>
<div style="text-align: justify;">
<span style="font-size: large;">The Product Backlog priority decision is a responsibility of the Product Owner, however, he or she must listen to all stakeholders in the Project and assist in their decision making process. This is important because the product being developed is not only developed for the PO, but to everyone involved in the Project, mainly stakeholders and customers.</span></div>
<div style="text-align: justify;">
<span style="font-size: large;"><br /></span></div>
<div style="text-align: justify;">
<span style="font-size: large;"><b>Use Prioritization Techniques</b></span></div>
<div style="text-align: justify;">
<span style="font-size: large;"><br /></span></div>
<div style="text-align: justify;">
<span style="font-size: large;">The use of specific techniques can be very useful when there is doubt in the priority of a small set of stories. Use prioritization techniques as your ally to help resolve these small conflicts.</span></div>
<div style="text-align: justify;">
<span style="font-size: large;"><br /></span></div>
<div style="text-align: justify;">
<span style="font-size: large;"><b>Consider prioritization by themes</b></span></div>
<div style="text-align: justify;">
<span style="font-size: large;"><br /></span></div>
<div style="text-align: justify;">
<span style="font-size: large;">Dependency between stories is often unavoidable. In this way, grouping dependent stories into a theme and prioritizing the theme can also help you. Prioritization can be divided into two steps, first prioritizing the themes and then sequencing the stories within each theme, thus avoiding stories of the same theme be scattered throughout the Product Backlog.</span></div>
<div style="text-align: justify;">
<span style="font-size: large;"><br /></span></div>
<div style="text-align: justify;">
<span style="font-size: large;"><b>Stay current</b></span></div>
<div style="text-align: justify;">
<span style="font-size: large;"><br /></span></div>
<div style="text-align: justify;">
</div>
<div style="text-align: justify;">
<span style="font-size: large;">As always, never stop studying and updating. Every day new techniques appear, and, being open-minded to absorb new knowledge is always important to help us improve our work.</span></div>
<div style='clear: both;'></div>
</div>
<div class='post-footer'>
<div class='post-footer-line post-footer-line-1'>
<span class='post-author vcard'>
Posted by
<span class='fn' itemprop='author' itemscope='itemscope' itemtype='http://schema.org/Person'>
<meta content='https://www.blogger.com/profile/13795565839688197468' itemprop='url'/>
<a class='g-profile' href='https://www.blogger.com/profile/13795565839688197468' rel='author' title='author profile'>
<span itemprop='name'>Philipp Guntermann</span>
</a>
</span>
</span>
<span class='post-timestamp'>
at
<meta content='http://www.letsmakebettersoftware.com/2018/01/tips-that-will-assist-you-in-backlog.html' itemprop='url'/>
<a class='timestamp-link' href='http://www.letsmakebettersoftware.com/2018/01/tips-that-will-assist-you-in-backlog.html' rel='bookmark' title='permanent link'><abbr class='published' itemprop='datePublished' title='2018-01-05T21:27:00+01:00'>9:27 PM</abbr></a>
</span>
<span class='reaction-buttons'>
</span>
<span class='post-comment-link'>
<a class='comment-link' href='http://www.letsmakebettersoftware.com/2018/01/tips-that-will-assist-you-in-backlog.html#comment-form' onclick=''>
No comments:
    </a>
</span>
<span class='post-backlinks post-comment-link'>
</span>
<span class='post-icons'>
<span class='item-control blog-admin pid-1221084727'>
<a href='https://www.blogger.com/post-edit.g?blogID=5440489175204739003&postID=816921047364598045&from=pencil' title='Edit Post'>
<img alt='' class='icon-action' height='18' src='https://resources.blogblog.com/img/icon18_edit_allbkg.gif' width='18'/>
</a>
</span>
</span>
<div class='post-share-buttons goog-inline-block'>
<a class='goog-inline-block share-button sb-email' href='https://www.blogger.com/share-post.g?blogID=5440489175204739003&postID=816921047364598045&target=email' target='_blank' title='Email This'><span class='share-button-link-text'>Email This</span></a><a class='goog-inline-block share-button sb-blog' href='https://www.blogger.com/share-post.g?blogID=5440489175204739003&postID=816921047364598045&target=blog' onclick='window.open(this.href, "_blank", "height=270,width=475"); return false;' target='_blank' title='BlogThis!'><span class='share-button-link-text'>BlogThis!</span></a><a class='goog-inline-block share-button sb-twitter' href='https://www.blogger.com/share-post.g?blogID=5440489175204739003&postID=816921047364598045&target=twitter' target='_blank' title='Share to Twitter'><span class='share-button-link-text'>Share to Twitter</span></a><a class='goog-inline-block share-button sb-facebook' href='https://www.blogger.com/share-post.g?blogID=5440489175204739003&postID=816921047364598045&target=facebook' onclick='window.open(this.href, "_blank", "height=430,width=640"); return false;' target='_blank' title='Share to Facebook'><span class='share-button-link-text'>Share to Facebook</span></a><a class='goog-inline-block share-button sb-pinterest' href='https://www.blogger.com/share-post.g?blogID=5440489175204739003&postID=816921047364598045&target=pinterest' target='_blank' title='Share to Pinterest'><span class='share-button-link-text'>Share to Pinterest</span></a><div class='goog-inline-block google-plus-share-container'><g:plusone source='blogger:blog:plusone' href='http://www.letsmakebettersoftware.com/2018/01/tips-that-will-assist-you-in-backlog.html' size='medium' width='300' annotation='inline'/></div>
</div>
</div>
<div class='post-footer-line post-footer-line-2'>
<span class='post-labels'>
</span>
</div>
<div class='post-footer-line post-footer-line-3'>
<span class='post-location'>
</span>
</div>
</div>
</div>
</div>

          </div></div>
        

          <div class="date-outer">
        
<h2 class='date-header'><span>Monday, December 18, 2017</span></h2>

          <div class="date-posts">
        
<div class='post-outer'>
<div class='post hentry uncustomized-post-template' itemprop='blogPost' itemscope='itemscope' itemtype='http://schema.org/BlogPosting'>
<meta content='https://3.bp.blogspot.com/-ul07uORFjds/WjeY3CPQ6_I/AAAAAAAAANY/0z-UoNy33O01-UcWtXvfawKw7ji61rSYgCLcBGAs/s1600/lmbs_agileretrospective2.png' itemprop='image_url'/>
<meta content='5440489175204739003' itemprop='blogId'/>
<meta content='1905030361444689249' itemprop='postId'/>
<a name='1905030361444689249'></a>
<h3 class='post-title entry-title' itemprop='name'>
<a href='http://www.letsmakebettersoftware.com/2017/12/techniques-for-efficient-agile.html'>Techniques for an efficient agile retrospective</a>
</h3>
<div class='post-header'>
<div class='post-header-line-1'></div>
</div>
<div class='post-body entry-content' id='post-body-1905030361444689249' itemprop='description articleBody'>
<div style="text-align: justify;">
<span style="font-size: large;">Inspect and adapt processes is a practice known for a long time and, even today, used by many companies to ensure continuous improvement. It is common, at the end of traditional projects, for the team to meet, together with management, to capture lessons learned in order to benefit future projects.</span></div>
<div style="text-align: justify;">
<span style="font-size: large;"><br /></span></div>
<div style="text-align: justify;">
<span style="font-size: large;">Although this approach is valid, it often happens that projects are totally different and teams are formed by other people. That is, the context is very different and you can not use the same path of success. In addition, the vast majority of projects usually take months or even years to complete.</span></div>
<div style="text-align: justify;">
<span style="font-size: large;"><br /></span></div>
<div style="text-align: justify;">
<span style="font-size: large;">These facts indicate that problems encountered over the course of the project will be raised and discussed only at the end, that is, when the project is over and nothing more can be done.</span></div>
<div style="text-align: justify;">
<span style="font-size: large;"><br /></span></div>
<div style="text-align: justify;">
<span style="font-size: large;">Often, people no longer remember the troubles that happened during the earlier development period. Others remember, but do not want to upset their colleagues or the management and end up repressing the information.</span></div>
<div style="text-align: justify;">
<span style="font-size: large;"><br /></span></div>
<div style="text-align: justify;">
<span style="font-size: large;">Agile methods often work on short cycles, delivering incremental parts of the product and not just at the end of the project. Retrospectives were adapted to occur at the end of each of these cycles. This is why it is so important because it is possible to reflect over short periods of time and not only when the project is over.</span></div>
<div style="text-align: justify;">
<span style="font-size: large;"><br /></span></div>
<div class="separator" style="clear: both; text-align: center;">
</div>
<div class="separator" style="clear: both; text-align: center;">
<a href="https://3.bp.blogspot.com/-ul07uORFjds/WjeY3CPQ6_I/AAAAAAAAANY/0z-UoNy33O01-UcWtXvfawKw7ji61rSYgCLcBGAs/s1600/lmbs_agileretrospective2.png" imageanchor="1" style="margin-left: 1em; margin-right: 1em;"><img border="0" data-original-height="687" data-original-width="720" src="https://3.bp.blogspot.com/-ul07uORFjds/WjeY3CPQ6_I/AAAAAAAAANY/0z-UoNy33O01-UcWtXvfawKw7ji61rSYgCLcBGAs/s1600/lmbs_agileretrospective2.png" /></a></div>
<div style="text-align: center;">
<span style="font-size: large;"><br /></span></div>
<div style="text-align: justify;">
<br /></div>
<div style="text-align: justify;">
<span style="font-size: large;"><b>Conducting Retrospectives</b></span></div>
<div style="text-align: justify;">
<span style="font-size: large;"><br /></span></div>
<div style="text-align: justify;">
<span style="font-size: large;">Basically, in a retrospective the team stops and analyzes their way of working. There are several ways of conducting retrospectives, the most common of which is the discussion of the following three points:</span></div>
<div style="text-align: justify;">
<span style="font-size: large;"><br /></span></div>
<div style="text-align: justify;">
</div>
<ul>
<li><span style="font-size: large;"><b>What went well in the sprint?</b> This question helps team members recognize and share the good points, that is, good practices that they should continue to apply in the next sprints.</span></li>
</ul>
<ul>
<li><span style="font-size: large;"><b>What did not go well in the sprint? </b>Here members are encouraged to look at difficult challenges they faced and obstacles they encountered.</span></li>
</ul>
<ul>
<li><span style="font-size: large;"><b>What actions can we take so that problems do not recur?</b> This question allows ideas to be raised for improvement actions in order not to go through the same problem.</span></li>
</ul>
<br />
<div style="text-align: justify;">
<span style="font-size: large;">Reflecting on days or weeks of work brings a lot of benefits to the project and to the people who work on it.</span></div>
<div style="text-align: justify;">
<span style="font-size: large;"><br /></span></div>
<div style="text-align: justify;">
<span style="font-size: large;">Perhaps, the biggest advantage of doing this reflection in short periods of time, is that the memory is still fresh. If something was bothering anyone, he or she probably still remembers it well. As the project is still in progress, this discomfort can be reported and resolved for the continuation of the project.</span></div>
<div style="text-align: justify;">
<span style="font-size: large;"><br /></span></div>
<div style="text-align: justify;">
<span style="font-size: large;">The same is true for good practices used by team members. If it is considered beneficial to the project, it can be adopted by the entire team to improve the progress of the project.</span></div>
<div style="text-align: justify;">
<span style="font-size: large;"><br /></span></div>
<div style="text-align: justify;">
<span style="font-size: large;">Another important factor in hindsight in agile projects is that after the problems and obstacles have been raised, action plans are drawn up for them, by the team itself.&nbsp;This means that the team analyzes what happened, defines the actions and then performs on them themselv. Since it was the team that defined the actions, the commitment is much greater than if they were imposed by management.</span></div>
<div style="text-align: justify;">
<span style="font-size: large;"><br /></span></div>
<div style="text-align: justify;">
<span style="font-size: large;">By being a staff-only meeting, people tend to feel safer and more comfortable talking freely about their frustrations. In addition, retrospectives tend to discuss problems without raising guilt or making accusations.&nbsp;</span><span style="font-size: large;">For this reason, it is important to focus on resolving these barriers and dividing responsibilities among team members so that changes will actually happen.</span></div>
<div style="text-align: justify;">
<span style="font-size: large;"><br /></span></div>
<div style="text-align: justify;">
<span style="font-size: large;">A key point is the learning obtained in retrospectives. The learning culture germinates the moment a team realizes its deficiencies and begins to take regular steps towards improvement.&nbsp;</span><span style="font-size: large;">Implementing improvement practices is necessary so that team members do not repeat the same mistakes in the future. They evolve as individuals and contribute as better team players.</span></div>
<div style="text-align: justify;">
<span style="font-size: large;"><br /></span></div>
<div style="text-align: justify;">
<span style="font-size: large;">It is also very valuable to capture the positive aspects, that is, all that was good. Recognize hard work, identify and share successful practices so that they continue to be applied by the team.</span></div>
<div style="text-align: justify;">
<span style="font-size: large;"><br /></span></div>
<div style="text-align: justify;">
<span style="font-size: large;">Continuing practice of retrospectives results in finding more efficient ways of working and delivering better value to customers. With every retrospective the team grows and improves their efficiency.&nbsp;</span></div>
<div style="text-align: justify;">
<span style="font-size: large;"><br /></span></div>
<div style="text-align: justify;">
<span style="font-size: large;"></span></div>
<div style="text-align: justify;">
<span style="font-size: large;">It is worth mentioning that there are many teams that ignore retrospectives in order not to waste time. However, ignoring the Retrospective meeting causes the feedback to not be shared between the team, leaving no chance for improvements that the team could work on.</span></div>
<div style="text-align: justify;">
<span style="font-size: large;"><br /></span></div>
<div style="text-align: justify;">
<span style="font-size: large;"><div>
<b>How to structure an efficient retrospective</b></div>
<div>
<br /></div>
<div>
<b>First meeting point</b></div>
<div>
<b><br /></b></div>
<div>
Each team member notes on post-its the strengths and weaknesses of a sprint.</div>
<div>
<br /></div>
<div>
Different colors can be used to differentiate positive points from negative points.</div>
<div>
<br /></div>
<div>
The Scrum Master is responsible for giving a time limit so that the team is focused on the objective of individually evaluating what it considered good and what it considered bad in the sprint in evaluation. 10 minutes is a good time to keep the team focused on this first stage of the meeting. Of course we devalue the time required in function of the total time that was stipulated for the retrospective.</div>
<div>
<br /></div>
<div>
<b>Second meeting point</b></div>
<div>
<br /></div>
<div>
Each team member presents the positive points he or she has raised and the team discusses them.</div>
<div>
<br /></div>
<div>
After all the positive points have been presented, all of the team's negative points are presented one by one and the team evaluates them and tries to come up with a solution for each one.</div>
<div>
<br /></div>
<div>
The Scrum Master supports the team to focus on the main objective of the meeting: Raise solutions for improvements.</div>
<div>
<b><br /></b></div>
<div>
<b>The importance of providing solutions to problems</b></div>
<div>
<b><br /></b></div>
<div>
It is no use for the team to discuss the whole meeting about&nbsp; problems of a sprint and to end it without any proposed solution to them. The problems will remain. The Scrum Master should lead the team so that at the end of the meeting there are concrete solutions to what will be done to improve each negative point.&nbsp;</div>
<div>
<br /></div>
<div>
Of course realizing that the team is not mature yet the Scrum Master can propose ideas for the team to work on, discuss and improve them according to what the team judges best for the improvement of their work.</div>
<div>
<br /></div>
</span></div>
<div style="text-align: justify;">
<span style="font-size: large;"><div>
<b>Conclusion</b></div>
<div>
<br /></div>
<div>
If you were to remember just one thing from this blog article, it should be that restropective meetings are important to grow your team and improve their efficiency in their current and future projects. The second most important point is that your retrospectives should have a clear structure and be directed towards identifying and discussing actionable ideas for improvement.</div>
</span></div>
<div style="text-align: justify;">
<br /></div>
<div style='clear: both;'></div>
</div>
<div class='post-footer'>
<div class='post-footer-line post-footer-line-1'>
<span class='post-author vcard'>
Posted by
<span class='fn' itemprop='author' itemscope='itemscope' itemtype='http://schema.org/Person'>
<meta content='https://www.blogger.com/profile/13795565839688197468' itemprop='url'/>
<a class='g-profile' href='https://www.blogger.com/profile/13795565839688197468' rel='author' title='author profile'>
<span itemprop='name'>Philipp Guntermann</span>
</a>
</span>
</span>
<span class='post-timestamp'>
at
<meta content='http://www.letsmakebettersoftware.com/2017/12/techniques-for-efficient-agile.html' itemprop='url'/>
<a class='timestamp-link' href='http://www.letsmakebettersoftware.com/2017/12/techniques-for-efficient-agile.html' rel='bookmark' title='permanent link'><abbr class='published' itemprop='datePublished' title='2017-12-18T11:44:00+01:00'>11:44 AM</abbr></a>
</span>
<span class='reaction-buttons'>
</span>
<span class='post-comment-link'>
<a class='comment-link' href='http://www.letsmakebettersoftware.com/2017/12/techniques-for-efficient-agile.html#comment-form' onclick=''>
No comments:
    </a>
</span>
<span class='post-backlinks post-comment-link'>
</span>
<span class='post-icons'>
<span class='item-control blog-admin pid-1221084727'>
<a href='https://www.blogger.com/post-edit.g?blogID=5440489175204739003&postID=1905030361444689249&from=pencil' title='Edit Post'>
<img alt='' class='icon-action' height='18' src='https://resources.blogblog.com/img/icon18_edit_allbkg.gif' width='18'/>
</a>
</span>
</span>
<div class='post-share-buttons goog-inline-block'>
<a class='goog-inline-block share-button sb-email' href='https://www.blogger.com/share-post.g?blogID=5440489175204739003&postID=1905030361444689249&target=email' target='_blank' title='Email This'><span class='share-button-link-text'>Email This</span></a><a class='goog-inline-block share-button sb-blog' href='https://www.blogger.com/share-post.g?blogID=5440489175204739003&postID=1905030361444689249&target=blog' onclick='window.open(this.href, "_blank", "height=270,width=475"); return false;' target='_blank' title='BlogThis!'><span class='share-button-link-text'>BlogThis!</span></a><a class='goog-inline-block share-button sb-twitter' href='https://www.blogger.com/share-post.g?blogID=5440489175204739003&postID=1905030361444689249&target=twitter' target='_blank' title='Share to Twitter'><span class='share-button-link-text'>Share to Twitter</span></a><a class='goog-inline-block share-button sb-facebook' href='https://www.blogger.com/share-post.g?blogID=5440489175204739003&postID=1905030361444689249&target=facebook' onclick='window.open(this.href, "_blank", "height=430,width=640"); return false;' target='_blank' title='Share to Facebook'><span class='share-button-link-text'>Share to Facebook</span></a><a class='goog-inline-block share-button sb-pinterest' href='https://www.blogger.com/share-post.g?blogID=5440489175204739003&postID=1905030361444689249&target=pinterest' target='_blank' title='Share to Pinterest'><span class='share-button-link-text'>Share to Pinterest</span></a><div class='goog-inline-block google-plus-share-container'><g:plusone source='blogger:blog:plusone' href='http://www.letsmakebettersoftware.com/2017/12/techniques-for-efficient-agile.html' size='medium' width='300' annotation='inline'/></div>
</div>
</div>
<div class='post-footer-line post-footer-line-2'>
<span class='post-labels'>
</span>
</div>
<div class='post-footer-line post-footer-line-3'>
<span class='post-location'>
</span>
</div>
</div>
</div>
</div>

          </div></div>
        

          <div class="date-outer">
        
<h2 class='date-header'><span>Sunday, December 10, 2017</span></h2>

          <div class="date-posts">
        
<div class='post-outer'>
<div class='post hentry uncustomized-post-template' itemprop='blogPost' itemscope='itemscope' itemtype='http://schema.org/BlogPosting'>
<meta content='https://4.bp.blogspot.com/-yot7LOb3WgA/WjKo94f7-kI/AAAAAAAAANE/xVCglbXoSMMBqS6ZsF0dtm_K_ALfIaaFgCLcBGAs/s1600/lmbs_uxandagile3.png' itemprop='image_url'/>
<meta content='5440489175204739003' itemprop='blogId'/>
<meta content='4827669503866853859' itemprop='postId'/>
<a name='4827669503866853859'></a>
<h3 class='post-title entry-title' itemprop='name'>
<a href='http://www.letsmakebettersoftware.com/2017/12/how-to-integrate-ux-with-agile-methods.html'>How to integrate UX with Agile Methods</a>
</h3>
<div class='post-header'>
<div class='post-header-line-1'></div>
</div>
<div class='post-body entry-content' id='post-body-4827669503866853859' itemprop='description articleBody'>
<div style="text-align: justify;">
<span style="font-size: large;">Agile Methods are common in software development and the use of these methods has been practiced in many companies and teams for several years.&nbsp;</span><span style="font-size: large;">However, it is often difficult to fit the design of UX (User Experience) into this type of work methodology.&nbsp;</span></div>
<div style="text-align: justify;">
<span style="font-size: large;"><br /></span></div>
<div style="text-align: justify;">
<span style="font-size: large;">At what time does the design come in? At the beginning? At the end? In the middle?&nbsp;</span></div>
<div style="text-align: justify;">
<span style="font-size: large;"><br /></span></div>
<div style="text-align: justify;">
<span style="font-size: large;">In this article we will take a look at some of concepts and best practices that can help agile teams to improve the user experience in their projects.</span></div>
<div style="text-align: justify;">
<span style="font-size: large;"><br /></span>
<br />
<div class="separator" style="clear: both; text-align: center;">
<a href="https://4.bp.blogspot.com/-yot7LOb3WgA/WjKo94f7-kI/AAAAAAAAANE/xVCglbXoSMMBqS6ZsF0dtm_K_ALfIaaFgCLcBGAs/s1600/lmbs_uxandagile3.png" imageanchor="1" style="margin-left: 1em; margin-right: 1em;"><img border="0" data-original-height="742" data-original-width="696" src="https://4.bp.blogspot.com/-yot7LOb3WgA/WjKo94f7-kI/AAAAAAAAANE/xVCglbXoSMMBqS6ZsF0dtm_K_ALfIaaFgCLcBGAs/s1600/lmbs_uxandagile3.png" /></a></div>
<div class="separator" style="clear: both; text-align: center;">
</div>
<div style="text-align: center;">
<span style="font-size: large;"><br /></span></div>
</div>
<div class="separator" style="clear: both; text-align: center;">
</div>
<div style="text-align: center;">
<span style="font-size: large;"><br /></span></div>
<div style="text-align: justify;">
<span style="font-size: large;"><b>Agile vs. UX</b></span></div>
<div style="text-align: justify;">
<span style="font-size: large;"><br /></span></div>
<div style="text-align: justify;">
<span style="font-size: large;">These two approaches use different ways of allocating resources in a project. On the one hand, through short iterations, agile methods focus efforts to deliver small sets of software functionality to customers as quickly as possible. On the other hand, the User Experience approach advocates spending efforts on researching and analyzing user behavior before development begins. Using Agile Methods, the product is often launched quickly, without the UX process being completed or at least being started.</span></div>
<div style="text-align: justify;">
<span style="font-size: large;"><br /></span></div>
<div style="text-align: justify;">
</div>
<div style="text-align: justify;">
<span style="font-size: large;">In Agile Methods the development versions are periodically delivered to customers. Feedback from these clients influences the current implementation cycle and directs the planning of future cycles. The customer is not a person outside the product team, who buys or uses the product, it interferes with the product team's decision making.</span></div>
<div style="text-align: justify;">
<span style="font-size: large;"><br /></span></div>
<div style="text-align: justify;">
<span style="font-size: large;">While these feedbacks are precious for the development team, they are often limited by the scope of the current development sprint. Furthermore, in order to really gather a good understanding of the user experience, it is often necessary to observe the behavior of the user while he or she is using and interacting with the application.&nbsp;</span></div>
<div style="text-align: justify;">
<span style="font-size: large;"><br /></span></div>
<div style="text-align: justify;">
<span style="font-size: large;">Undoubtedly there are several ways to integrate UX and agile methodologies and the right thing is to choose the way that best suits your situation and availability of resources.</span></div>
<div style="text-align: justify;">
<span style="font-size: large;"><br /></span></div>
<div style="text-align: justify;">
<span style="font-size: large;">While it is important to have UX experts, people who know the basics about information architecture, interaction design, visual design and all themes related to the user experience, UX should be a concern of all people on the team. There is no reason for the PO and team members not to worry about the issue and leave everything in the hands of a specialist.&nbsp;</span></div>
<div style="text-align: justify;">
<span style="font-size: large;"><br /></span></div>
<div style="text-align: justify;">
<span style="font-size: large;"></span></div>
<div style="text-align: justify;">
<span style="font-size: large;">All members of the agile team should know the basics of UX.</span></div>
<div style="text-align: justify;">
<span style="font-size: large;"><br /></span></div>
<div style="text-align: justify;">
<br /></div>
<div style="text-align: justify;">
<span style="font-size: large;"><b>Practices to integrate UX and Agile Methods</b></span></div>
<div style="text-align: justify;">
<span style="font-size: large;"><br /></span></div>
<div style="text-align: justify;">
<span style="font-size: large;">The best practice for incorporating UX with Agile Methods is to build a regular cadence of engagement with the user. The purpose is to engage users to investigate their experience in using the product, to investigate their behavior and sequence of activities when using the software. For this, it is recommended to incorporate usability tests in all stages of the development process in order to improve the UX of the software as well as to promote a closer proximity between the product, the brand and the user.</span></div>
<div style="text-align: justify;">
<span style="font-size: large;"><br /></span></div>
<div style="text-align: justify;">
<span style="font-size: large;">Here are some suggestions for user participation that can help to improve the user experience:</span></div>
<div style="text-align: justify;">
<span style="font-size: large;"><br /></span></div>
<div style="text-align: justify;">
</div>
<ul>
<li><span style="font-size: large;"><b>Research:</b> <br />User Experience research activities and requirements gathering depend on whether what is going to be developed is a new functionality or an improvement on an existing one. For a completely new functionality, users are interviewed to investigate their needs and understand the domain, context, and limitations of the user regarding the new tool. For the improvement of an existing one, it is recommended a usability test with the functionality in question to identify the good parts that should be maintained or emphasized and the bad parts that cause problems to the users.</span></li>
</ul>
<ul>
<li><span style="font-size: large;"><b>Usability tests with prototypes:</b> <br />Defined the scope of the iteration it is recommended to make a low fidelity prototype and test it with internal users who are real users of the software and who will perform operations level tasks. It is interesting to have at least two different solutions for the test. The feedback you collect helps validate the concept.</span></li>
</ul>
<ul>
<li><span style="font-size: large;"><b>Usability tests with MVP (Minimum Viable Product):</b> <br />Once the solution is defined an MVP is developed to be tested with external users. Observing users interacting with the system and performing key tasks allows you to evaluate the hierarchy of information and your experience with the interface. Feedback is real, and you can apply it directly to improve the experience.</span></li>
</ul>
<br />
<div style="text-align: justify;">
<span style="font-size: large;"><br /></span></div>
<div style="text-align: justify;">
<span style="font-size: large;"></span></div>
<div style="text-align: justify;">
<span style="font-size: large;">The need for constant testing is the main reason for faster and cheaper analyzes. This method has a huge impact on collaboration among those involved in a project because it deepens the understanding of the users in the product development process in the team, and this is a very powerful approach. However, the difficulty in performing these tests is known. In order for the team to achieve a higher level of credibility, it is necessary to educate all members about usability practices.</span></div>
<div style="text-align: justify;">
<br /></div>
<div style="text-align: justify;">
<br /></div>
<div style="text-align: justify;">
<span style="font-size: large;"><b>Agile practices that can be incorporated into UX</b></span></div>
<div style="text-align: justify;">
<span style="font-size: large;"><br /></span></div>
<div style="text-align: justify;">
<span style="font-size: large;">As we have seen, agile methods and UX design, despite having different concepts, can be integrated to generate a final result that brings more efficiency and satisfaction to the client.</span></div>
<div style="text-align: justify;">
<br /></div>
<div style="text-align: justify;">
<span style="font-size: large;">Plan the entire product for 6 months and then release. It gives us the possibility of the product being outdated even before its launch. This is one of the reasons agile methods are being incorporated by so many companies and other disciplines like UX.</span></div>
<div style="text-align: justify;">
<span style="font-size: large;"><br /></span></div>
<div style="text-align: justify;">
<span style="font-size: large;">In UX the application of techniques like Kanban has become very popular very fast with the help of agile concepts. Today we have many UX professionals creating their own kanbans to solve problems in a collaborative, fast and effective way. Most kanbans aim to bring the product user closer to the team responsible for product development.</span></div>
<div style="text-align: justify;">
<span style="font-size: large;"><br /></span></div>
<div style="text-align: justify;">
<span style="font-size: large;">Following this precept, below are some characteristics of the agility to assist in the tasks of UX design:</span></div>
<div style="text-align: justify;">
<span style="font-size: large;"><br /></span></div>
<div style="text-align: justify;">
</div>
<ul>
<li><span style="font-size: large;"><b>Anticipate the design as soon as possible: </b><br />A common situation for the design team is that they need to receive more input from the client or the research team before they begin to design the screens. But this attitude goes completely against the "agile" philosophy. Make some deductions, work with some assumptions, fork out a few paths - but anticipate the design as soon as possible. When the inputs come in, you make adaptations to design and incorporate new features. But almost always the skeleton of the functionality you are designing will not change, whatever input it may be.</span></li>
</ul>
<ul>
<li><span style="font-size: large;"><b>Accept changes and uncertainties: </b><br />If you are always the first to complain when the client asks you to change something or send something important at the time, agile methods may not be for you. Accept that your designs are changeable and use this to your advantage. Gradually you will realize that these changes are making your product more robust and more consistent. Be an optimist, above all else.</span></li>
</ul>
<ul>
<li><span style="font-size: large;"><b>Get out of your desk more often: </b><br />In such projects many decisions are made in informal conversations. Be out of your desk with more frequency. When a decision is made without everyone's present, help to communicate it clearly to all, and more importantly, communicate to the Product Owner. Being aware of what is being spoken around you can prevent miscommunication problems from happening. Do not be&nbsp; afraid to get in the middle of someone's conversation when you feel like you should be a part of it.</span></li>
</ul>
<ul>
<li><span style="font-size: large;"><b>Keep a shared library: </b><br />Establish constant meetings with the team to align in detail how each element of the screen should work. When you come to some conclusion, update your documentation so that everything is standardized - or else communicate the new standard to everyone. Keep a library of UI patterns somewhere easily accessible, so that the next screens that are drawn already contain these formats and avoid duplicity of styles.</span></li>
</ul>
<ul>
<li><span style="font-size: large;"><b>Meet often but shorter: </b><br />One of the great advantages of agile methods (such as Scrum) is the daily meeting. In addition to this initial meeting, plan your day in advance and schedule other meetings with each of the areas - but always in that 15-minute format with no delays. Often the initial impression is that in a few days there will be nothing to talk about in these meetings, but when the project progresses and new unforseen issues arise this impression gets quickly disproved. Make sure to stay on focus. Don't let your project status meeting digress into some discussion about the implementation details. Schedule seperate meetings instead.&nbsp;</span></li>
</ul>
<ul>
<li><span style="font-size: large;"><b>Align quality expectations: </b><br />It is common that at the beginning of the project, when people do not know each other, misalignments exist regarding the expected quality of the final product. That is why it is important to make these quality goals clear.</span></li>
</ul>
<br />
<div style="text-align: justify;">
<span style="font-size: large;"></span></div>
<div style="text-align: justify;">
<br /></div>
<div style="text-align: justify;">
<span style="font-size: large;"></span><br />
<div>
<span style="font-size: large;"><b>Lean UX: An agile alternative for traditional UX</b></span></div>
<span style="font-size: large;">
</span>
<div>
<span style="font-size: large;"><br /></span></div>
<span style="font-size: large;">
<div>
Traditionally, User Experience Design and its variables of Interaction Design, User Interface Design, Information Architecture, among others, are work based on deliverables. These deliverables are structures that define stages of a UX project, such as: Wireframes, Sitemaps, Flows, among others.</div>
<div>
<br /></div>
<div>
Lean UX came exactly to focus the daily update of all these deliverables to spend that time more deeply on the user experience and its variables within the project.</div>
<div>
<br /></div>
<div>
Have a prototype to validate internally and test externally. The key here is to gather feedback from everyone, as it is much easier to make meaningful and low-cost changes when the product is still at an early development stage. That's why Lean UX is so well-suited for creating an MVP.</div>
<div>
<br /></div>
</span></div>
<div style="text-align: justify;">
<span style="font-size: large;"><b>Conclusion</b></span></div>
<div style="text-align: justify;">
<span style="font-size: large;"><br /></span></div>
<div style="text-align: justify;">
<span style="font-size: large;">User experience plays an important role in the perceived quality of your application. Use this to your advantage by incorporating UX design early in your development and project planning, regardless of the methodology used - be it agile or traditional.</span></div>
<div style='clear: both;'></div>
</div>
<div class='post-footer'>
<div class='post-footer-line post-footer-line-1'>
<span class='post-author vcard'>
Posted by
<span class='fn' itemprop='author' itemscope='itemscope' itemtype='http://schema.org/Person'>
<meta content='https://www.blogger.com/profile/13795565839688197468' itemprop='url'/>
<a class='g-profile' href='https://www.blogger.com/profile/13795565839688197468' rel='author' title='author profile'>
<span itemprop='name'>Philipp Guntermann</span>
</a>
</span>
</span>
<span class='post-timestamp'>
at
<meta content='http://www.letsmakebettersoftware.com/2017/12/how-to-integrate-ux-with-agile-methods.html' itemprop='url'/>
<a class='timestamp-link' href='http://www.letsmakebettersoftware.com/2017/12/how-to-integrate-ux-with-agile-methods.html' rel='bookmark' title='permanent link'><abbr class='published' itemprop='datePublished' title='2017-12-10T10:41:00+01:00'>10:41 AM</abbr></a>
</span>
<span class='reaction-buttons'>
</span>
<span class='post-comment-link'>
<a class='comment-link' href='http://www.letsmakebettersoftware.com/2017/12/how-to-integrate-ux-with-agile-methods.html#comment-form' onclick=''>
No comments:
    </a>
</span>
<span class='post-backlinks post-comment-link'>
</span>
<span class='post-icons'>
<span class='item-control blog-admin pid-1221084727'>
<a href='https://www.blogger.com/post-edit.g?blogID=5440489175204739003&postID=4827669503866853859&from=pencil' title='Edit Post'>
<img alt='' class='icon-action' height='18' src='https://resources.blogblog.com/img/icon18_edit_allbkg.gif' width='18'/>
</a>
</span>
</span>
<div class='post-share-buttons goog-inline-block'>
<a class='goog-inline-block share-button sb-email' href='https://www.blogger.com/share-post.g?blogID=5440489175204739003&postID=4827669503866853859&target=email' target='_blank' title='Email This'><span class='share-button-link-text'>Email This</span></a><a class='goog-inline-block share-button sb-blog' href='https://www.blogger.com/share-post.g?blogID=5440489175204739003&postID=4827669503866853859&target=blog' onclick='window.open(this.href, "_blank", "height=270,width=475"); return false;' target='_blank' title='BlogThis!'><span class='share-button-link-text'>BlogThis!</span></a><a class='goog-inline-block share-button sb-twitter' href='https://www.blogger.com/share-post.g?blogID=5440489175204739003&postID=4827669503866853859&target=twitter' target='_blank' title='Share to Twitter'><span class='share-button-link-text'>Share to Twitter</span></a><a class='goog-inline-block share-button sb-facebook' href='https://www.blogger.com/share-post.g?blogID=5440489175204739003&postID=4827669503866853859&target=facebook' onclick='window.open(this.href, "_blank", "height=430,width=640"); return false;' target='_blank' title='Share to Facebook'><span class='share-button-link-text'>Share to Facebook</span></a><a class='goog-inline-block share-button sb-pinterest' href='https://www.blogger.com/share-post.g?blogID=5440489175204739003&postID=4827669503866853859&target=pinterest' target='_blank' title='Share to Pinterest'><span class='share-button-link-text'>Share to Pinterest</span></a><div class='goog-inline-block google-plus-share-container'><g:plusone source='blogger:blog:plusone' href='http://www.letsmakebettersoftware.com/2017/12/how-to-integrate-ux-with-agile-methods.html' size='medium' width='300' annotation='inline'/></div>
</div>
</div>
<div class='post-footer-line post-footer-line-2'>
<span class='post-labels'>
</span>
</div>
<div class='post-footer-line post-footer-line-3'>
<span class='post-location'>
</span>
</div>
</div>
</div>
</div>

          </div></div>
        

          <div class="date-outer">
        
<h2 class='date-header'><span>Saturday, December 2, 2017</span></h2>

          <div class="date-posts">
        
<div class='post-outer'>
<div class='post hentry uncustomized-post-template' itemprop='blogPost' itemscope='itemscope' itemtype='http://schema.org/BlogPosting'>
<meta content='https://2.bp.blogspot.com/-5jgNobVbg2o/WiJiKZYRunI/AAAAAAAAAMc/pw6Bl6Hx95cOkWAd-vIQKEpiXBXX5hNqwCLcBGAs/s1600/lmbs_gamification.png' itemprop='image_url'/>
<meta content='5440489175204739003' itemprop='blogId'/>
<meta content='7588941376115754584' itemprop='postId'/>
<a name='7588941376115754584'></a>
<h3 class='post-title entry-title' itemprop='name'>
<a href='http://www.letsmakebettersoftware.com/2017/12/gamification-in-context-of-software.html'>Gamification in the context of software development</a>
</h3>
<div class='post-header'>
<div class='post-header-line-1'></div>
</div>
<div class='post-body entry-content' id='post-body-7588941376115754584' itemprop='description articleBody'>
<div style="text-align: justify;">
<span style="font-size: large;">Software development is a prolonged and demanding activity that requires not only a deep cognitive engagement but also creativity. Software developers, who repeatedly solve challenging problems and acquire new skills to do so, can lose their intrinsic motivation over time, which inevitably leads to the progressive degradation of the quality of their work.&nbsp;</span></div>
<div style="text-align: justify;">
<span style="font-size: large;"><br /></span></div>
<div style="text-align: justify;">
<span style="font-size: large;">In the recent years, researchers and software development companies alike have started to explore the ways in which gamification could be applied in the context of software development to provide positive reinforcement and a sense of accomplishment to software developers.&nbsp;</span></div>
<div style="text-align: justify;">
<span style="font-size: large;"><br /></span></div>
<div class="separator" style="clear: both; text-align: center;">
<a href="https://2.bp.blogspot.com/-5jgNobVbg2o/WiJiKZYRunI/AAAAAAAAAMc/pw6Bl6Hx95cOkWAd-vIQKEpiXBXX5hNqwCLcBGAs/s1600/lmbs_gamification.png" imageanchor="1" style="margin-left: 1em; margin-right: 1em;"><img border="0" data-original-height="765" data-original-width="707" src="https://2.bp.blogspot.com/-5jgNobVbg2o/WiJiKZYRunI/AAAAAAAAAMc/pw6Bl6Hx95cOkWAd-vIQKEpiXBXX5hNqwCLcBGAs/s1600/lmbs_gamification.png" /></a></div>
<div style="text-align: center;">
<span style="font-size: large;"><br /></span></div>
<div style="text-align: justify;">
<span style="font-size: large;"><b><br /></b></span></div>
<div style="text-align: justify;">
<span style="font-size: large;"><b>What Is Gamification?&nbsp;</b></span></div>
<div style="text-align: justify;">
<span style="font-size: large;"><br /></span></div>
<div style="text-align: justify;">
<span style="font-size: large;">In their influential book "<a href="https://wdp.wharton.upenn.edu/book/for-the-win/" target="_blank">For the Win: How Game Thinking Can Revolutionize Your Business</a>"&nbsp;Kevin Werbach and Dan Hunter define gamification as the use of game elements and game design techniques in non-game contexts.&nbsp;</span></div>
<div style="text-align: justify;">
<span style="font-size: large;"><br /></span></div>
<div style="text-align: justify;">
<span style="font-size: large;">The concept of gamification is sometimes confused with game theory, which is the study of mathematical models of conflict and cooperation between intelligent, rational decision-makers. Whereas game theory is concerned with the human desire to maximize gains and minimize losses, gamification is all about "turning something not a game into a game" as <a href="https://dl.acm.org/citation.cfm?id=1196681" target="_blank">Richard Bartle, the inventor of the first MUD (Multi-User Dungeon) game, defined gamification</a>.</span></div>
<div style="text-align: justify;">
<span style="font-size: large;"><br /></span></div>
<div style="text-align: justify;">
<span style="font-size: large;"><b>What Is a Game?</b></span></div>
<div style="text-align: justify;">
<span style="font-size: large;"><br /></span></div>
<div style="text-align: justify;">
<span style="font-size: large;">To understand how to turn something that is not a game into a game, we need to first understand what are the core defining characteristics of all games.</span></div>
<div style="text-align: justify;">
<span style="font-size: large;"><br /></span></div>
<div style="text-align: justify;">
<span style="font-size: large;">According to Jane McGonigal, the author of "<a href="https://hci.stanford.edu/courses/cs047n/readings/Reality_is_Broken.pdf" target="_blank">Reality is Broken: Why Games Make Us Better and How They Can Change the World</a>"&nbsp;all games have the following defining characteristics:&nbsp;</span></div>
<div style="text-align: justify;">
<span style="font-size: large;"><br /></span></div>
<div style="text-align: justify;">
</div>
<ul>
<li><span style="font-size: large;"><b>Goal:&nbsp;</b>The goal of a game gives players something to strive for and motivates them to play the game as it was intended to be played. Without a goal, players would have to explore how the game can be interacted with, which, while entertaining, would be unproductive in the context of software development.&nbsp;</span></li>
</ul>
<ul>
<li><span style="font-size: large;"><b>Rules:&nbsp;</b>As counter-intuitive as it may sound, rules boost creativity by providing direction. In a famous experiment, Haught-Tromp and colleagues recruited 64 undergraduates and asked them to write a series of rhymes. One half of the participants were given eight specific nouns, while the other half could use any nouns. "Participants generated more creative rhymes when they had to work with the externally imposed constraint of a given noun", <a href="http://bigthink.com/philip-perry/why-imposing-restrictions-can-actually-boost-creativity" target="_blank">wrote</a> the judges who evaluated the rhymes.&nbsp;</span></li>
</ul>
<ul>
<li><span style="font-size: large;"><b>Feedback system:</b> The feedback system serves two purposes: first, it provides positive encouragement when players successfully reach the goal of the game; second, it informs players how much they need to improve in order to successfully reach the goal of the game in case they fail to do so.&nbsp;</span></li>
</ul>
<ul>
<li><span style="font-size: large;"><b>Voluntary participation: </b>Kene Boun My and Benoît Chalvignac have <a href="http://www.sciencedirect.com/science/article/pii/S0167487010000693" target="_blank">studied</a> the effect of voluntary participation in the context of a collective-good experiment and discovered that voluntary participation could induce a recovery of cooperation levels when the payoff yielded by the exit option is high enough, so that the usually observed decay of average contribution levels can be counteracted. Without voluntary participation, games stop being games and turn into tasks, and tasks don&#8217;t have the same positive effect when it comes to overcoming unnecessary obstacles as games.</span></li>
</ul>
<br />
<div style="text-align: justify;">
<span style="font-size: large;"></span></div>
<div style="text-align: justify;">
<span style="font-size: large;"><br /></span></div>
<div style="text-align: justify;">
<span style="font-size: large;"><b>Examples of Gamification</b></span></div>
<div style="text-align: justify;">
<span style="font-size: large;"><br /></span></div>
<div style="text-align: justify;">
<span style="font-size: large;">Perhaps the best-known example of gamification in practice, one that most software developers are already familiar with, is the popular question-and-answer site for developers <a href="https://stackoverflow.com/" target="_blank">Stack Overflow</a>, which describes itself as the largest, most trusted online community for developers to learn, share their programming knowledge, and build their careers.</span></div>
<div style="text-align: justify;">
<span style="font-size: large;"><br /></span></div>
<div style="text-align: justify;">
<span style="font-size: large;">On Stack Overflow, users can receive reward points and badges for answering the questions of other users or spreading links to questions and answers via social media websites. According to Stack Overflow&#8217;s <a href="https://stackoverflow.com/help/whats-reputation" target="_blank">help center</a>, a person is awarded 10 reputation points for receiving an upvote on an answer given to a question and 5 reputation points for receiving an upvote on a submitted question.</span></div>
<div style="text-align: justify;">
<span style="font-size: large;"><br /></span></div>
<div style="text-align: justify;">
<span style="font-size: large;">Another particularly relevant example of gamification is <a href="https://channel9.msdn.com/achievements/visualstudio" target="_blank">Visual Studio Achievements</a>. This extension for Visual Studio allows software developers to earn achievements for performing various coding feats or exploring some of the less-known features of Visual Studio.</span></div>
<div style="text-align: justify;">
<br /></div>
<div style="text-align: justify;">
<span style="font-size: large;"><b>Gamifying Software Development&nbsp;</b></span></div>
<div style="text-align: justify;">
<span style="font-size: large;"><b><br /></b></span></div>
<div style="text-align: justify;">
<span style="font-size: large;">"Gamification, if applied to software development, may provide several advantages. First, because of its rewarding mechanisms, it may motivate developers to learn new technologies and increase their productivity (e.g., the Visual Studio Achievements). Second, it may improve the quality of their work if adopted to encourage best practices (e.g., testing, code conventions, etc.). From a management perspective, it may be used as input to give economic incentives and to support the evaluation of employees as well as of teams", <a href="https://dl.acm.org/citation.cfm?id=2491411.2494589" target="_blank">claim researchers Daniel J. Dubois and Giordano Tamburrelli</a>.</span></div>
<div style="text-align: justify;">
<span style="font-size: large;"><br /></span></div>
<div style="text-align: justify;">
<span style="font-size: large;">According to <a href="http://www.pewinternet.org/2012/05/18/the-future-of-gamification/" target="_blank">Pew Research Center</a>, 53 percent of technology stakeholders said that the use of gamification would be widespread by 2020, and the other 42 percent predicted that gamification would play an important role, but would not be as widespread.</span></div>
<div style="text-align: justify;">
<span style="font-size: large;">Clearly, gamification has its place in software development, and there are already several gamification frameworks for software development, some using <a href="http://ceur-ws.org/Vol-1367/paper-02.pdf" target="_blank">cognitive principles</a>, while others are focusing on <a href="http://www.enterprise-gamification.com/attachments/article/233/Improving%20Software%20Quality%20with%20Gamification%20-%20Full%20Paper.pdf" target="_blank">improving the quality of the software development lifecycle</a>.</span></div>
<div style="text-align: justify;">
<span style="font-size: large;"><br /></span></div>
<div style="text-align: justify;">
<span style="font-size: large;">Most gamification frameworks and real-world implementations use the PLB Triad. "Points, Badges, and Leaderboards are &#8230; widely used in gamification systems, because they appear to work moderately well as extrinsic motivators", <a href="http://www.inf.usi.ch/phd/dalsat/download/publications/saner2017.pdf" target="_blank">state the researchers from the University of Lugano, Switzerland</a>.&nbsp;</span></div>
<div style="text-align: justify;">
<span style="font-size: large;"><br /></span></div>
<div style="text-align: justify;">
<span style="font-size: large;">To introduce gamification systems, such as the PLB Triad, on a real or virtual system, it&#8217;s necessary to understand where to derive value from to encourage a certain behavior, and it's also necessary to design sufficiently interesting activities and avoid tension with other motivational structures.&nbsp;</span></div>
<div style="text-align: justify;">
<span style="font-size: large;"><br /></span></div>
<div style="text-align: justify;">
<span style="font-size: large;">The Swiss researchers argue that because adopting a gamification system means modifying the behavior of people and influencing their routine, the adoption might actually backfire. "As such, it represents a delicate matter that may negatively impact well-functioning parts of the system. Put simply: Adding a reward to a boring task may help to motivate the user, but will not turn it into an engaging activity."</span></div>
<div style="text-align: justify;">
<span style="font-size: large;"><br /></span></div>
<div style="text-align: justify;">
<span style="font-size: large;"><b>Conclusion</b></span></div>
<div style="text-align: justify;">
<span style="font-size: large;"><br /></span></div>
<div style="text-align: justify;">
<span style="font-size: large;"></span></div>
<div style="text-align: justify;">
<span style="font-size: large;">While gamification may be the future of certain types of software development, a great deal of caution should be exercised when implementing game-design elements and game principles to improve productivity, learning, and motivation of software developers. There are many individual and contextual differences that need to be accounted for to design a functional gamification system, and large-scale, successful implementations of gamification principles are still fairly scarce.&nbsp;</span></div>
<div style="text-align: justify;">
<span style="font-size: large;"><br /></span></div>
<div style="text-align: justify;">
<span style="font-size: large;">Gamification frameworks intended for the context of software development can serve as an excellent starting point and help&nbsp; companies avoid many potentially costly mistakes.</span></div>
<div style="text-align: justify;">
<span style="font-size: large;"><br /></span></div>
<div style="text-align: justify;">
<span style="font-size: large;"><b>Sources</b></span></div>
<div style="text-align: justify;">
<br /></div>
<div style="text-align: justify;">
<a href="https://wdp.wharton.upenn.edu/book/for-the-win/">https://wdp.wharton.upenn.edu/book/for-the-win/</a></div>
<div style="text-align: justify;">
<a href="https://www.blogger.com/goog_2111785812"><br /></a></div>
<div style="text-align: justify;">
<a href="https://dl.acm.org/citation.cfm?id=1196681">https://dl.acm.org/citation.cfm?id=1196681</a></div>
<div style="text-align: justify;">
<br /></div>
<div style="text-align: justify;">
<a href="https://hci.stanford.edu/courses/cs047n/readings/Reality_is_Broken.pdf">https://hci.stanford.edu/courses/cs047n/readings/Reality_is_Broken.pdf</a></div>
<div style="text-align: justify;">
<br /></div>
<div style="text-align: justify;">
<a href="http://bigthink.com/philip-perry/why-imposing-restrictions-can-actually-boost-creativity">http://bigthink.com/philip-perry/why-imposing-restrictions-can-actually-boost-creativity</a></div>
<div style="text-align: justify;">
<br /></div>
<div style="text-align: justify;">
<a href="http://www.sciencedirect.com/science/article/pii/S0167487010000693">http://www.sciencedirect.com/science/article/pii/S0167487010000693</a></div>
<div style="text-align: justify;">
<a href="https://www.blogger.com/goog_2111785820"><br /></a></div>
<div style="text-align: justify;">
<a href="https://stackoverflow.com/help/whats-reputation">https://stackoverflow.com/help/whats-reputation</a></div>
<div style="text-align: justify;">
<a href="https://www.blogger.com/goog_2111785822"><br /></a></div>
<div style="text-align: justify;">
<a href="https://channel9.msdn.com/achievements/visualstudio">https://channel9.msdn.com/achievements/visualstudio</a></div>
<div style="text-align: justify;">
<br /></div>
<div style="text-align: justify;">
<a href="https://dl.acm.org/citation.cfm?id=2491411.2494589">https://dl.acm.org/citation.cfm?id=2491411.2494589</a></div>
<div style="text-align: justify;">
<br /></div>
<div style="text-align: justify;">
<a href="http://www.pewinternet.org/2012/05/18/the-future-of-gamification/">http://www.pewinternet.org/2012/05/18/the-future-of-gamification/</a></div>
<div style="text-align: justify;">
<br /></div>
<div style="text-align: justify;">
<a href="http://ceur-ws.org/Vol-1367/paper-02.pdf">http://ceur-ws.org/Vol-1367/paper-02.pdf</a></div>
<div style="text-align: justify;">
<a href="http://www.enterprise-gamification.com/attachments/article/233/Improving%20Software%20Quality%20with%20Gamification%20-%20Full%20Paper.pdf" target="_blank"><br /></a></div>
<div style="text-align: justify;">
<a href="http://www.enterprise-gamification.com/attachments/article/233/Improving%20Software%20Quality%20with%20Gamification%20-%20Full%20Paper.pdf" target="_blank">http://www.enterprise-gamification.com/attachments/article/233/Improving Software Quality with Gamification - Full Paper.pdf</a></div>
<div style="text-align: justify;">
<a href="https://www.blogger.com/goog_2111785837"><br /></a></div>
<div style="text-align: justify;">
<a href="http://www.inf.usi.ch/phd/dalsat/download/publications/saner2017.pdf">http://www.inf.usi.ch/phd/dalsat/download/publications/saner2017.pdf</a></div>
<div style='clear: both;'></div>
</div>
<div class='post-footer'>
<div class='post-footer-line post-footer-line-1'>
<span class='post-author vcard'>
Posted by
<span class='fn' itemprop='author' itemscope='itemscope' itemtype='http://schema.org/Person'>
<meta content='https://www.blogger.com/profile/13795565839688197468' itemprop='url'/>
<a class='g-profile' href='https://www.blogger.com/profile/13795565839688197468' rel='author' title='author profile'>
<span itemprop='name'>Philipp Guntermann</span>
</a>
</span>
</span>
<span class='post-timestamp'>
at
<meta content='http://www.letsmakebettersoftware.com/2017/12/gamification-in-context-of-software.html' itemprop='url'/>
<a class='timestamp-link' href='http://www.letsmakebettersoftware.com/2017/12/gamification-in-context-of-software.html' rel='bookmark' title='permanent link'><abbr class='published' itemprop='datePublished' title='2017-12-02T09:39:00+01:00'>9:39 AM</abbr></a>
</span>
<span class='reaction-buttons'>
</span>
<span class='post-comment-link'>
<a class='comment-link' href='http://www.letsmakebettersoftware.com/2017/12/gamification-in-context-of-software.html#comment-form' onclick=''>
2 comments:
    </a>
</span>
<span class='post-backlinks post-comment-link'>
</span>
<span class='post-icons'>
<span class='item-control blog-admin pid-1221084727'>
<a href='https://www.blogger.com/post-edit.g?blogID=5440489175204739003&postID=7588941376115754584&from=pencil' title='Edit Post'>
<img alt='' class='icon-action' height='18' src='https://resources.blogblog.com/img/icon18_edit_allbkg.gif' width='18'/>
</a>
</span>
</span>
<div class='post-share-buttons goog-inline-block'>
<a class='goog-inline-block share-button sb-email' href='https://www.blogger.com/share-post.g?blogID=5440489175204739003&postID=7588941376115754584&target=email' target='_blank' title='Email This'><span class='share-button-link-text'>Email This</span></a><a class='goog-inline-block share-button sb-blog' href='https://www.blogger.com/share-post.g?blogID=5440489175204739003&postID=7588941376115754584&target=blog' onclick='window.open(this.href, "_blank", "height=270,width=475"); return false;' target='_blank' title='BlogThis!'><span class='share-button-link-text'>BlogThis!</span></a><a class='goog-inline-block share-button sb-twitter' href='https://www.blogger.com/share-post.g?blogID=5440489175204739003&postID=7588941376115754584&target=twitter' target='_blank' title='Share to Twitter'><span class='share-button-link-text'>Share to Twitter</span></a><a class='goog-inline-block share-button sb-facebook' href='https://www.blogger.com/share-post.g?blogID=5440489175204739003&postID=7588941376115754584&target=facebook' onclick='window.open(this.href, "_blank", "height=430,width=640"); return false;' target='_blank' title='Share to Facebook'><span class='share-button-link-text'>Share to Facebook</span></a><a class='goog-inline-block share-button sb-pinterest' href='https://www.blogger.com/share-post.g?blogID=5440489175204739003&postID=7588941376115754584&target=pinterest' target='_blank' title='Share to Pinterest'><span class='share-button-link-text'>Share to Pinterest</span></a><div class='goog-inline-block google-plus-share-container'><g:plusone source='blogger:blog:plusone' href='http://www.letsmakebettersoftware.com/2017/12/gamification-in-context-of-software.html' size='medium' width='300' annotation='inline'/></div>
</div>
</div>
<div class='post-footer-line post-footer-line-2'>
<span class='post-labels'>
</span>
</div>
<div class='post-footer-line post-footer-line-3'>
<span class='post-location'>
</span>
</div>
</div>
</div>
</div>

        </div></div>
      
</div>
<div class='blog-pager' id='blog-pager'>
<span id='blog-pager-older-link'>
<a class='blog-pager-older-link' href='http://www.letsmakebettersoftware.com/search?updated-max=2017-12-02T09:39:00%2B01:00&max-results=7' id='Blog1_blog-pager-older-link' title='Older Posts'>Older Posts</a>
</span>
<a class='home-link' href='http://www.letsmakebettersoftware.com/'>Home</a>
</div>
<div class='clear'></div>
<div class='blog-feeds'>
<div class='feed-links'>
Subscribe to:
<a class='feed-link' href='http://www.letsmakebettersoftware.com/feeds/posts/default' target='_blank' type='application/atom+xml'>Posts (Atom)</a>
</div>
</div>
<script type='text/javascript'>
    window.___gcfg = { 'lang': 'en' };
  </script>
</div></div>
</div>
</div>
<div class='column-left-outer'>
<div class='column-left-inner'>
<aside>
</aside>
</div>
</div>
<div class='column-right-outer'>
<div class='column-right-inner'>
<aside>
<div class='sidebar section' id='sidebar-right-1'><div class='widget Image' data-version='1' id='Image1'>
<div class='widget-content'>
<img alt='' height='465' id='Image1_img' src='http://3.bp.blogspot.com/-t0Rs_1YkP5I/WZgIGArgssI/AAAAAAAAAGs/3QcHt5lLmQMjCpZZhb6FdhsZIqfU3PvhQCK4BGAYYCw/s1600/blogger_profile.png' width='310'/>
<br/>
</div>
<div class='clear'></div>
<span class='widget-item-control'>
<span class='item-control blog-admin'>
<a class='quickedit' href='//www.blogger.com/rearrange?blogID=5440489175204739003&widgetType=Image&widgetId=Image1&action=editWidget&sectionId=sidebar-right-1' onclick='return _WidgetManager._PopupConfig(document.getElementById("Image1"));' target='configImage1' title='Edit'>
<img alt='' height='18' src='https://resources.blogblog.com/img/icon18_wrench_allbkg.png' width='18'/>
</a>
</span>
</span>
<div class='clear'></div>
</div><div class='widget Profile' data-version='1' id='Profile1'>
<h2>Authors</h2>
<div class='widget-content'>
<ul>
<li><a class='profile-name-link g-profile' href='https://plus.google.com/110901017535387854965' style='background-image: url(//www.google.com/images/icons/ui/gprofile_button-16.png);'>Emmanuel Ngwane</a></li>
<li><a class='profile-name-link g-profile' href='https://www.blogger.com/profile/13795565839688197468' style='background-image: url(//www.blogger.com/img/logo-16.png);'>Philipp Guntermann</a></li>
</ul>
<div class='clear'></div>
<span class='widget-item-control'>
<span class='item-control blog-admin'>
<a class='quickedit' href='//www.blogger.com/rearrange?blogID=5440489175204739003&widgetType=Profile&widgetId=Profile1&action=editWidget&sectionId=sidebar-right-1' onclick='return _WidgetManager._PopupConfig(document.getElementById("Profile1"));' target='configProfile1' title='Edit'>
<img alt='' height='18' src='https://resources.blogblog.com/img/icon18_wrench_allbkg.png' width='18'/>
</a>
</span>
</span>
<div class='clear'></div>
</div>
</div><div class='widget Text' data-version='1' id='Text2'>
<h2 class='title'>My other profiles</h2>
<div class='widget-content'>
<a href="https://www.linkedin.com/in/philipp-guntermann-645672147/">View my LinkedIn Profile</a><br /><br /><a href="https://www.xing.com/profile/Philipp_Guntermann">View my XING Profile</a>
</div>
<div class='clear'></div>
<span class='widget-item-control'>
<span class='item-control blog-admin'>
<a class='quickedit' href='//www.blogger.com/rearrange?blogID=5440489175204739003&widgetType=Text&widgetId=Text2&action=editWidget&sectionId=sidebar-right-1' onclick='return _WidgetManager._PopupConfig(document.getElementById("Text2"));' target='configText2' title='Edit'>
<img alt='' height='18' src='https://resources.blogblog.com/img/icon18_wrench_allbkg.png' width='18'/>
</a>
</span>
</span>
<div class='clear'></div>
</div><div class='widget BlogArchive' data-version='1' id='BlogArchive1'>
<h2>Blog-Archiv</h2>
<div class='widget-content'>
<div id='ArchiveList'>
<div id='BlogArchive1_ArchiveList'>
<ul class='hierarchy'>
<li class='archivedate expanded'>
<a class='toggle' href='javascript:void(0)'>
<span class='zippy toggle-open'>

        &#9660;&#160;
      
</span>
</a>
<a class='post-count-link' href='http://www.letsmakebettersoftware.com/2018/'>
2018
</a>
<span class='post-count' dir='ltr'>(4)</span>
<ul class='hierarchy'>
<li class='archivedate expanded'>
<a class='toggle' href='javascript:void(0)'>
<span class='zippy toggle-open'>

        &#9660;&#160;
      
</span>
</a>
<a class='post-count-link' href='http://www.letsmakebettersoftware.com/2018/03/'>
March
</a>
<span class='post-count' dir='ltr'>(1)</span>
<ul class='posts'>
<li><a href='http://www.letsmakebettersoftware.com/2018/03/status-quo-of-blockchain.html'>Status Quo of #Blockchain</a></li>
</ul>
</li>
</ul>
<ul class='hierarchy'>
<li class='archivedate collapsed'>
<a class='toggle' href='javascript:void(0)'>
<span class='zippy'>

        &#9658;&#160;
      
</span>
</a>
<a class='post-count-link' href='http://www.letsmakebettersoftware.com/2018/02/'>
February
</a>
<span class='post-count' dir='ltr'>(1)</span>
</li>
</ul>
<ul class='hierarchy'>
<li class='archivedate collapsed'>
<a class='toggle' href='javascript:void(0)'>
<span class='zippy'>

        &#9658;&#160;
      
</span>
</a>
<a class='post-count-link' href='http://www.letsmakebettersoftware.com/2018/01/'>
January
</a>
<span class='post-count' dir='ltr'>(2)</span>
</li>
</ul>
</li>
</ul>
<ul class='hierarchy'>
<li class='archivedate collapsed'>
<a class='toggle' href='javascript:void(0)'>
<span class='zippy'>

        &#9658;&#160;
      
</span>
</a>
<a class='post-count-link' href='http://www.letsmakebettersoftware.com/2017/'>
2017
</a>
<span class='post-count' dir='ltr'>(17)</span>
<ul class='hierarchy'>
<li class='archivedate collapsed'>
<a class='toggle' href='javascript:void(0)'>
<span class='zippy'>

        &#9658;&#160;
      
</span>
</a>
<a class='post-count-link' href='http://www.letsmakebettersoftware.com/2017/12/'>
December
</a>
<span class='post-count' dir='ltr'>(3)</span>
</li>
</ul>
<ul class='hierarchy'>
<li class='archivedate collapsed'>
<a class='toggle' href='javascript:void(0)'>
<span class='zippy'>

        &#9658;&#160;
      
</span>
</a>
<a class='post-count-link' href='http://www.letsmakebettersoftware.com/2017/11/'>
November
</a>
<span class='post-count' dir='ltr'>(3)</span>
</li>
</ul>
<ul class='hierarchy'>
<li class='archivedate collapsed'>
<a class='toggle' href='javascript:void(0)'>
<span class='zippy'>

        &#9658;&#160;
      
</span>
</a>
<a class='post-count-link' href='http://www.letsmakebettersoftware.com/2017/10/'>
October
</a>
<span class='post-count' dir='ltr'>(2)</span>
</li>
</ul>
<ul class='hierarchy'>
<li class='archivedate collapsed'>
<a class='toggle' href='javascript:void(0)'>
<span class='zippy'>

        &#9658;&#160;
      
</span>
</a>
<a class='post-count-link' href='http://www.letsmakebettersoftware.com/2017/09/'>
September
</a>
<span class='post-count' dir='ltr'>(4)</span>
</li>
</ul>
<ul class='hierarchy'>
<li class='archivedate collapsed'>
<a class='toggle' href='javascript:void(0)'>
<span class='zippy'>

        &#9658;&#160;
      
</span>
</a>
<a class='post-count-link' href='http://www.letsmakebettersoftware.com/2017/08/'>
August
</a>
<span class='post-count' dir='ltr'>(5)</span>
</li>
</ul>
</li>
</ul>
</div>
</div>
<div class='clear'></div>
<span class='widget-item-control'>
<span class='item-control blog-admin'>
<a class='quickedit' href='//www.blogger.com/rearrange?blogID=5440489175204739003&widgetType=BlogArchive&widgetId=BlogArchive1&action=editWidget&sectionId=sidebar-right-1' onclick='return _WidgetManager._PopupConfig(document.getElementById("BlogArchive1"));' target='configBlogArchive1' title='Edit'>
<img alt='' height='18' src='https://resources.blogblog.com/img/icon18_wrench_allbkg.png' width='18'/>
</a>
</span>
</span>
<div class='clear'></div>
</div>
</div><div class='widget Text' data-version='1' id='Text1'>
<h2 class='title'>Legal stuff</h2>
<div class='widget-content'>
<a href="https://letsmakebettersoftware.blogspot.de/2017/07/impress.html">Impressum</a><br /><br /><a href="http://www.letsmakebettersoftware.com/2017/08/datenschutzerklahrung.html">Datenschutzerklährung</a>
</div>
<div class='clear'></div>
<span class='widget-item-control'>
<span class='item-control blog-admin'>
<a class='quickedit' href='//www.blogger.com/rearrange?blogID=5440489175204739003&widgetType=Text&widgetId=Text1&action=editWidget&sectionId=sidebar-right-1' onclick='return _WidgetManager._PopupConfig(document.getElementById("Text1"));' target='configText1' title='Edit'>
<img alt='' height='18' src='https://resources.blogblog.com/img/icon18_wrench_allbkg.png' width='18'/>
</a>
</span>
</span>
<div class='clear'></div>
</div><div class='widget HTML' data-version='1' id='HTML1'>
<div class='widget-content'>
<!--Back to Top Button-->
<script>
jQuery(document).ready(function() {
var offset = 280;
var duration = 800;
jQuery(window).scroll(function() {
if (jQuery(this).scrollTop() > offset) {
jQuery('.back-to-top').fadeIn(duration);
} else {
jQuery('.back-to-top').fadeOut(duration);
}
});
jQuery('.back-to-top').click(function(event) {
event.preventDefault();
jQuery('html, body').animate({scrollTop: 0}, duration);
return false;
})
});
</script>
<style>
div#page {
margin-left: auto;
margin-right: auto;
padding: 20px;
}
.back-to-top {
position: fixed;
bottom: 20px;
right: 30px;
text-decoration: none;
color: #000000;
padding: 1em;
display: none;
}
.back-to-top:hover {
text-decoration: none;
}
</style>
<a href="#" class="back-to-top"><img src="https://1.bp.blogspot.com/-zpq4MgqNfkA/WZmWFEeAznI/AAAAAAAAAKM/zohmHjC5HFkOmXgZdvcAQCos1YP1NkPiwCLcBGAs/s1600/File16_03.png" alt="Back to Top" / /></a>
<!--Back to Top Button-->
</div>
<div class='clear'></div>
<span class='widget-item-control'>
<span class='item-control blog-admin'>
<a class='quickedit' href='//www.blogger.com/rearrange?blogID=5440489175204739003&widgetType=HTML&widgetId=HTML1&action=editWidget&sectionId=sidebar-right-1' onclick='return _WidgetManager._PopupConfig(document.getElementById("HTML1"));' target='configHTML1' title='Edit'>
<img alt='' height='18' src='https://resources.blogblog.com/img/icon18_wrench_allbkg.png' width='18'/>
</a>
</span>
</span>
<div class='clear'></div>
</div></div>
</aside>
</div>
</div>
</div>
<div style='clear: both'></div>
<!-- columns -->
</div>
<!-- main -->
</div>
</div>
<div class='main-cap-bottom cap-bottom'>
<div class='cap-left'></div>
<div class='cap-right'></div>
</div>
</div>
<footer>
<div class='footer-outer'>
<div class='footer-cap-top cap-top'>
<div class='cap-left'></div>
<div class='cap-right'></div>
</div>
<div class='fauxborder-left footer-fauxborder-left'>
<div class='fauxborder-right footer-fauxborder-right'></div>
<div class='region-inner footer-inner'>
<div class='foot no-items section' id='footer-1'></div>
<!-- outside of the include in order to lock Attribution widget -->
<div class='foot section' id='footer-3' name='Footer'><div class='widget Attribution' data-version='1' id='Attribution1'>
<div class='widget-content' style='text-align: center;'>
Powered by <a href='https://www.blogger.com' target='_blank'>Blogger</a>.
</div>
<div class='clear'></div>
<span class='widget-item-control'>
<span class='item-control blog-admin'>
<a class='quickedit' href='//www.blogger.com/rearrange?blogID=5440489175204739003&widgetType=Attribution&widgetId=Attribution1&action=editWidget&sectionId=footer-3' onclick='return _WidgetManager._PopupConfig(document.getElementById("Attribution1"));' target='configAttribution1' title='Edit'>
<img alt='' height='18' src='https://resources.blogblog.com/img/icon18_wrench_allbkg.png' width='18'/>
</a>
</span>
</span>
<div class='clear'></div>
</div></div>
</div>
</div>
<div class='footer-cap-bottom cap-bottom'>
<div class='cap-left'></div>
<div class='cap-right'></div>
</div>
</div>
</footer>
<!-- content -->
</div>
</div>
<div class='content-cap-bottom cap-bottom'>
<div class='cap-left'></div>
<div class='cap-right'></div>
</div>
</div>
</div>
<script type='text/javascript'>
    window.setTimeout(function() {
        document.body.className = document.body.className.replace('loading', '');
      }, 10);
  </script>
<script src='https://apis.google.com/js/plusone.js' type='text/javascript'></script>

<script type="text/javascript" src="https://www.blogger.com/static/v1/widgets/1845596459-widgets.js"></script>
<script type='text/javascript'>
window['__wavt'] = 'AOuZoY79hM35u7qW35VzPETk1cZEeXVSeg:1524577862395';_WidgetManager._Init('//www.blogger.com/rearrange?blogID\x3d5440489175204739003','//www.letsmakebettersoftware.com/','5440489175204739003');
_WidgetManager._SetDataContext([{'name': 'blog', 'data': {'blogId': '5440489175204739003', 'title': 'Let\x27s make better software', 'url': 'http://www.letsmakebettersoftware.com/', 'canonicalUrl': 'http://www.letsmakebettersoftware.com/', 'homepageUrl': 'http://www.letsmakebettersoftware.com/', 'searchUrl': 'http://www.letsmakebettersoftware.com/search', 'canonicalHomepageUrl': 'http://www.letsmakebettersoftware.com/', 'blogspotFaviconUrl': 'http://www.letsmakebettersoftware.com/favicon.ico', 'bloggerUrl': 'https://www.blogger.com', 'hasCustomDomain': true, 'httpsEnabled': false, 'enabledCommentProfileImages': true, 'gPlusViewType': 'FILTERED_POSTMOD', 'adultContent': false, 'analyticsAccountNumber': '', 'encoding': 'UTF-8', 'locale': 'en', 'localeUnderscoreDelimited': 'en', 'languageDirection': 'ltr', 'isPrivate': false, 'isMobile': false, 'isMobileRequest': false, 'mobileClass': '', 'isPrivateBlog': false, 'feedLinks': '\x3clink rel\x3d\x22alternate\x22 type\x3d\x22application/atom+xml\x22 title\x3d\x22Let\x26#39;s make better software - Atom\x22 href\x3d\x22http://www.letsmakebettersoftware.com/feeds/posts/default\x22 /\x3e\n\x3clink rel\x3d\x22alternate\x22 type\x3d\x22application/rss+xml\x22 title\x3d\x22Let\x26#39;s make better software - RSS\x22 href\x3d\x22http://www.letsmakebettersoftware.com/feeds/posts/default?alt\x3drss\x22 /\x3e\n\x3clink rel\x3d\x22service.post\x22 type\x3d\x22application/atom+xml\x22 title\x3d\x22Let\x26#39;s make better software - Atom\x22 href\x3d\x22https://www.blogger.com/feeds/5440489175204739003/posts/default\x22 /\x3e\n', 'meTag': '\x3clink rel\x3d\x22me\x22 href\x3d\x22https://www.blogger.com/profile/13795565839688197468\x22 /\x3e\n', 'openIdOpTag': '\x3clink rel\x3d\x22openid.server\x22 href\x3d\x22https://www.blogger.com/openid-server.g\x22 /\x3e\n\x3clink rel\x3d\x22openid.delegate\x22 href\x3d\x22http://www.letsmakebettersoftware.com/\x22 /\x3e\n', 'adsenseHostId': 'ca-host-pub-1556223355139109', 'adsenseHasAds': false, 'ieCssRetrofitLinks': '\x3c!--[if IE]\x3e\x3cscript type\x3d\x22text/javascript\x22 src\x3d\x22https://www.blogger.com/static/v1/jsbin/3658603751-ieretrofit.js\x22\x3e\x3c/script\x3e\n\x3c![endif]--\x3e', 'view': '', 'dynamicViewsCommentsSrc': '//www.blogblog.com/dynamicviews/4224c15c4e7c9321/js/comments.js', 'dynamicViewsScriptSrc': '//www.blogblog.com/dynamicviews/f3b7c696aa574948', 'plusOneApiSrc': 'https://apis.google.com/js/plusone.js', 'sharing': {'platforms': [{'name': 'Get link', 'key': 'link', 'shareMessage': 'Get link', 'target': ''}, {'name': 'Facebook', 'key': 'facebook', 'shareMessage': 'Share to Facebook', 'target': 'facebook'}, {'name': 'BlogThis!', 'key': 'blogThis', 'shareMessage': 'BlogThis!', 'target': 'blog'}, {'name': 'Twitter', 'key': 'twitter', 'shareMessage': 'Share to Twitter', 'target': 'twitter'}, {'name': 'Pinterest', 'key': 'pinterest', 'shareMessage': 'Share to Pinterest', 'target': 'pinterest'}, {'name': 'Google+', 'key': 'googlePlus', 'shareMessage': 'Share to Google+', 'target': 'googleplus'}, {'name': 'Email', 'key': 'email', 'shareMessage': 'Email', 'target': 'email'}], 'googlePlusShareButtonWidth': 300, 'googlePlusBootstrap': '\x3cscript type\x3d\x22text/javascript\x22\x3ewindow.___gcfg \x3d {\x27lang\x27: \x27en\x27};\x3c/script\x3e'}, 'hasCustomJumpLinkMessage': false, 'jumpLinkMessage': 'Read more', 'pageType': 'index', 'pageName': '', 'pageTitle': 'Let\x27s make better software'}}, {'name': 'features', 'data': {'lazy_images': 'false', 'sharing_get_link_dialog': 'true', 'sharing_native': 'false'}}, {'name': 'messages', 'data': {'edit': 'Edit', 'linkCopiedToClipboard': 'Link copied to clipboard!', 'ok': 'Ok', 'postLink': 'Post Link'}}, {'name': 'template', 'data': {'name': 'custom', 'localizedName': 'Custom', 'isResponsive': false, 'isAlternateRendering': false, 'isCustom': true}}, {'name': 'view', 'data': {'classic': {'name': 'classic', 'url': '?view\x3dclassic'}, 'flipcard': {'name': 'flipcard', 'url': '?view\x3dflipcard'}, 'magazine': {'name': 'magazine', 'url': '?view\x3dmagazine'}, 'mosaic': {'name': 'mosaic', 'url': '?view\x3dmosaic'}, 'sidebar': {'name': 'sidebar', 'url': '?view\x3dsidebar'}, 'snapshot': {'name': 'snapshot', 'url': '?view\x3dsnapshot'}, 'timeslide': {'name': 'timeslide', 'url': '?view\x3dtimeslide'}, 'isMobile': false, 'title': 'Let\x27s make better software', 'description': 'Hi!\n\nMy name is Philipp. I started my career as a software developer in 1989 at the age of eight years on my beloved Commodore 64. My passion for great software is driving me ever since then.\n\nOn this blog, I want to share some of my thoughts on software development methods, strategies, patterns and anything else that comes to mind.\n\n', 'url': 'http://www.letsmakebettersoftware.com/', 'type': 'feed', 'isSingleItem': false, 'isMultipleItems': true, 'isError': false, 'isPage': false, 'isPost': false, 'isHomepage': true, 'isArchive': false, 'isLabelSearch': false}}]);
_WidgetManager._RegisterWidget('_HeaderView', new _WidgetInfo('Header1', 'header', null, document.getElementById('Header1'), {}, 'displayModeFull'));
_WidgetManager._RegisterWidget('_BlogView', new _WidgetInfo('Blog1', 'main', null, document.getElementById('Blog1'), {'cmtInteractionsEnabled': false, 'useNgc': false, 'lightboxEnabled': true, 'lightboxModuleUrl': 'https://www.blogger.com/static/v1/jsbin/1931698988-lbx.js', 'lightboxCssUrl': 'https://www.blogger.com/static/v1/v-css/368954415-lightbox_bundle.css'}, 'displayModeFull'));
_WidgetManager._RegisterWidget('_ImageView', new _WidgetInfo('Image1', 'sidebar-right-1', null, document.getElementById('Image1'), {'resize': false}, 'displayModeFull'));
_WidgetManager._RegisterWidget('_ProfileView', new _WidgetInfo('Profile1', 'sidebar-right-1', null, document.getElementById('Profile1'), {}, 'displayModeFull'));
_WidgetManager._RegisterWidget('_TextView', new _WidgetInfo('Text2', 'sidebar-right-1', null, document.getElementById('Text2'), {}, 'displayModeFull'));
_WidgetManager._RegisterWidget('_BlogArchiveView', new _WidgetInfo('BlogArchive1', 'sidebar-right-1', null, document.getElementById('BlogArchive1'), {'languageDirection': 'ltr', 'loadingMessage': 'Loading\x26hellip;'}, 'displayModeFull'));
_WidgetManager._RegisterWidget('_TextView', new _WidgetInfo('Text1', 'sidebar-right-1', null, document.getElementById('Text1'), {}, 'displayModeFull'));
_WidgetManager._RegisterWidget('_HTMLView', new _WidgetInfo('HTML1', 'sidebar-right-1', null, document.getElementById('HTML1'), {}, 'displayModeFull'));
_WidgetManager._RegisterWidget('_AttributionView', new _WidgetInfo('Attribution1', 'footer-3', null, document.getElementById('Attribution1'), {}, 'displayModeFull'));
</script>
</body>
</html>