{"id":972,"date":"2019-10-03T13:25:42","date_gmt":"2019-10-03T13:25:42","guid":{"rendered":"http:\/\/janbosch.com\/blog\/?p=972"},"modified":"2019-10-03T13:25:57","modified_gmt":"2019-10-03T13:25:57","slug":"the-worst-of-both-worlds","status":"publish","type":"post","link":"https:\/\/janbosch.com\/blog\/index.php\/2019\/10\/03\/the-worst-of-both-worlds\/","title":{"rendered":"The worst of both worlds"},"content":{"rendered":"\n<figure class=\"wp-block-image\"><img loading=\"lazy\" decoding=\"async\" width=\"1024\" height=\"546\" src=\"https:\/\/janbosch.com\/blog\/wp-content\/uploads\/2019\/10\/board-978179_1920-1024x546.jpg\" alt=\"\" class=\"wp-image-973\" srcset=\"https:\/\/janbosch.com\/blog\/wp-content\/uploads\/2019\/10\/board-978179_1920-1024x546.jpg 1024w, https:\/\/janbosch.com\/blog\/wp-content\/uploads\/2019\/10\/board-978179_1920-300x160.jpg 300w, https:\/\/janbosch.com\/blog\/wp-content\/uploads\/2019\/10\/board-978179_1920-768x410.jpg 768w, https:\/\/janbosch.com\/blog\/wp-content\/uploads\/2019\/10\/board-978179_1920.jpg 1920w\" sizes=\"(max-width: 1024px) 100vw, 1024px\" \/><figcaption>Image by kalhh from Pixabay<\/figcaption><\/figure>\n\n\n\n<p>During the last few weeks, I\u2019ve worked with several companies and  identified a pattern that, in hindsight, I have seen many times before: a  team gets stuck midway a change process and refuses to let go of the  old ways while adopting new ways of working. In that way, the  organization gets the worst of both worlds. Let me illustrate with two  anonymized examples \u2013 somewhat changed to protect the innocent.<\/p>\n\n\n\n<p>The\n first company has been building real-time systems as monolithic C\/C++ \napplications for many years. For a variety of reasons, it has become \nclear that a new platform is required. As the company also wants to open\n up for 3rd-party applications, the architects have investigated the use\n of containers and a message bus as the basic architectural style. This \nwould provide enormous benefits to break the monolith into smaller \nchunks of functionality that are largely decoupled and that can be \ndeployed independently. The engineers have prototyped with the \narchitecture and it turns out that the real-time needs of even the most \ndemanding deployments can be met.<\/p>\n\n\n\n<p>However, some of the architects \nwere actively promoting to allow the use of remote procedure calls \nbetween containers as a second mechanism for different components to \ncommunicate as this is the way the developers are used to working in. \nThe obvious consequence is that allowing for such a backdoor in the \narchitecture is likely to undo all the benefits of using a container and\n message bus approach. It would allow for numerous hidden dependencies \nto be introduced into the system, obliterating the possibility to deploy\n individual chunks of functionality independently.<\/p>\n\n\n\n<p>The second \ncompany is in the transition from traditional ways of working to \nadopting agile ways of working. Operating in an industry where \nregulation and certification play a big role, it has introduced new \nroles such as scrum master, product owner and the like while leaving the\n old roles in place as these were doing some of the standards and \nregulations work. The result is confusion concerning the old and new \nroles, their interfaces and the responsibilities and authorities \nassociated with them. This, of course, has as a consequence endless \nmeetings, high levels of frustration and significant double work.<\/p>\n\n\n\n<p>The\n pattern here is caused by a very human trait that almost all companies \nsuffer from: the desire to reduce risk by the gradual introduction of \nnew architectures, ways of working or organizations. The problem is \nthat, in many cases, the gradual approach, rather than mitigating risk, \nis, in fact, the riskiest approach you can take. The confusion, lack of \nclarity, overhead and general paralysis of the organization are hard to \noverestimate when standing with one foot in the new world and one foot \nin the old.<\/p>\n\n\n\n<p>Organizations often end up here because of there being\n two internal factions: those that want the change and those that do \nnot. During the discussions, there\u2019s a tendency to look for compromises \nthat cause the resulting agreement to be a combination of a bit of the \nold and a bit of the new. This \u2018design by committee\u2019 approach invariably\n results in solutions that are inconsistent, lack conceptual integrity, \nare difficult to understand and often simply don\u2019t make sense.<\/p>\n\n\n\n<p>Concluding,  the way forward has been foreshadowed by Yoda as he says to Luke  Skywalker: \u201cDo or do not, there is no try.\u201d As a leader, you either  adopt the new architecture, way of working or organization or you do not  and instead keep things as they are. You should, however, avoid any  form of compromised, design-by-committee, halfway changes like the  plague. This will result in tension in the organization as not everyone  is ready. However, in a healthy culture, people agree and commit or  disagree and commit. Not everyone has to agree with the new approach;  they just have to act accordingly. This is one of those times where  leadership equals courage. Now go and do your job!<\/p>\n\n\n\n<p><em>To get more insights earlier, sign up for my newsletter at<\/em><a href=\"https:\/\/mailto:jan@janbosch.com\/\" target=\"_blank\" rel=\"noreferrer noopener\"><em>jan@janbosch.com<\/em><\/a><em> or follow me on<\/em><a href=\"https:\/\/janbosch.com\/blog\" target=\"_blank\" rel=\"noreferrer noopener\"> <em>janbosch.com\/blog<\/em><\/a><em>, LinkedIn (<\/em><a href=\"https:\/\/www.linkedin.com\/in\/janbosch\/\" target=\"_blank\" rel=\"noreferrer noopener\"><em>linkedin.com\/in\/janbosch<\/em><\/a><em>) or Twitter (<\/em><a href=\"https:\/\/twitter.com\/JanBosch\" target=\"_blank\" rel=\"noreferrer noopener\"><em>@JanBosch<\/em><\/a><em>).<\/em><\/p>\n","protected":false},"excerpt":{"rendered":"<p>During the last few weeks, I\u2019ve worked with several companies and identified a pattern that, in hindsight, I have seen many times before: a team gets stuck midway a change process and refuses to let go of the old ways while adopting new ways of working. In that way, the organization gets the worst of &#8230; <a title=\"The worst of both worlds\" class=\"read-more\" href=\"https:\/\/janbosch.com\/blog\/index.php\/2019\/10\/03\/the-worst-of-both-worlds\/\" aria-label=\"Read more about The worst of both worlds\">Read more<\/a><\/p>\n","protected":false},"author":2,"featured_media":0,"comment_status":"open","ping_status":"open","sticky":false,"template":"","format":"standard","meta":{"generate_page_header":"","footnotes":""},"categories":[8,10],"tags":[],"_links":{"self":[{"href":"https:\/\/janbosch.com\/blog\/index.php\/wp-json\/wp\/v2\/posts\/972"}],"collection":[{"href":"https:\/\/janbosch.com\/blog\/index.php\/wp-json\/wp\/v2\/posts"}],"about":[{"href":"https:\/\/janbosch.com\/blog\/index.php\/wp-json\/wp\/v2\/types\/post"}],"author":[{"embeddable":true,"href":"https:\/\/janbosch.com\/blog\/index.php\/wp-json\/wp\/v2\/users\/2"}],"replies":[{"embeddable":true,"href":"https:\/\/janbosch.com\/blog\/index.php\/wp-json\/wp\/v2\/comments?post=972"}],"version-history":[{"count":1,"href":"https:\/\/janbosch.com\/blog\/index.php\/wp-json\/wp\/v2\/posts\/972\/revisions"}],"predecessor-version":[{"id":974,"href":"https:\/\/janbosch.com\/blog\/index.php\/wp-json\/wp\/v2\/posts\/972\/revisions\/974"}],"wp:attachment":[{"href":"https:\/\/janbosch.com\/blog\/index.php\/wp-json\/wp\/v2\/media?parent=972"}],"wp:term":[{"taxonomy":"category","embeddable":true,"href":"https:\/\/janbosch.com\/blog\/index.php\/wp-json\/wp\/v2\/categories?post=972"},{"taxonomy":"post_tag","embeddable":true,"href":"https:\/\/janbosch.com\/blog\/index.php\/wp-json\/wp\/v2\/tags?post=972"}],"curies":[{"name":"wp","href":"https:\/\/api.w.org\/{rel}","templated":true}]}}