{"id":15719,"date":"2018-05-08T09:29:04","date_gmt":"2018-05-08T06:29:04","guid":{"rendered":"https:\/\/contribyte.fi\/2018\/05\/08\/if-it-works-fix-it\/"},"modified":"2019-03-22T14:06:48","modified_gmt":"2019-03-22T12:06:48","slug":"if-it-works-fix-it","status":"publish","type":"post","link":"https:\/\/contribyte.fi\/en\/2018\/05\/08\/if-it-works-fix-it\/","title":{"rendered":"If it works, fix it! \u2013 Refactoring Is Always Worth It"},"content":{"rendered":"<p>[et_pb_section fb_built=&#8221;1&#8243; fullwidth=&#8221;on&#8221; custom_padding_last_edited=&#8221;on|desktop&#8221; _builder_version=&#8221;3.0.74&#8243; custom_padding_tablet=&#8221;50px|0|50px|0&#8243; transparent_background=&#8221;off&#8221; padding_mobile=&#8221;off&#8221;][et_pb_fullwidth_post_title author=&#8221;off&#8221; date_format=&#8221;j M Y&#8221; categories=&#8221;off&#8221; comments=&#8221;off&#8221; featured_placement=&#8221;background&#8221; text_color=&#8221;light&#8221; text_background=&#8221;on&#8221; text_bg_color=&#8221;rgba(0,0,0,0.38)&#8221; _builder_version=&#8221;3.0.106&#8243; title_font_size=&#8221;48px&#8221; title_font_size_phone=&#8221;30px&#8221; title_font_size_last_edited=&#8221;on|phone&#8221; title_line_height=&#8221;1.2em&#8221; meta_font_size=&#8221;16px&#8221; meta_letter_spacing=&#8221;4px&#8221; meta_line_height=&#8221;3em&#8221; parallax=&#8221;on&#8221; parallax_method=&#8221;off&#8221; custom_padding=&#8221;200px||300px|&#8221;][\/et_pb_fullwidth_post_title][\/et_pb_section][et_pb_section fb_built=&#8221;1&#8243; custom_padding_last_edited=&#8221;on|desktop&#8221; admin_label=&#8221;section&#8221; _builder_version=&#8221;3.0.74&#8243; background_color=&#8221;#f2f2f2&#8243; custom_padding_tablet=&#8221;50px|0|50px|0&#8243; transparent_background=&#8221;off&#8221; padding_mobile=&#8221;off&#8221;][et_pb_row padding_mobile=&#8221;off&#8221; column_padding_mobile=&#8221;on&#8221; parallax_method_1=&#8221;off&#8221; _builder_version=&#8221;3.0.47&#8243; background_color=&#8221;#ffffff&#8221; background_size=&#8221;initial&#8221; background_position=&#8221;top_left&#8221; background_repeat=&#8221;repeat&#8221;][et_pb_column type=&#8221;4_4&#8243; _builder_version=&#8221;3.0.47&#8243; column_padding_mobile=&#8221;on&#8221; parallax=&#8221;off&#8221; parallax_method=&#8221;off&#8221;][et_pb_post_title author=&#8221;off&#8221; categories=&#8221;off&#8221; comments=&#8221;off&#8221; featured_image=&#8221;off&#8221; _builder_version=&#8221;3.0.85&#8243; title_font_size=&#8221;50px&#8221; title_font_size_phone=&#8221;30px&#8221; title_font_size_last_edited=&#8221;on|phone&#8221; parallax=&#8221;on&#8221; parallax_method=&#8221;off&#8221; custom_padding=&#8221;|50px||50px&#8221; parallax_effect=&#8221;on&#8221;][\/et_pb_post_title][\/et_pb_column][\/et_pb_row][et_pb_row padding_mobile=&#8221;off&#8221; column_padding_mobile=&#8221;on&#8221; padding_right_1=&#8221;50px&#8221; padding_left_1=&#8221;50px&#8221; admin_label=&#8221;row&#8221; _builder_version=&#8221;3.0.47&#8243; background_color=&#8221;#ffffff&#8221; background_size=&#8221;initial&#8221; background_position=&#8221;top_left&#8221; background_repeat=&#8221;repeat&#8221;][et_pb_column type=&#8221;4_4&#8243; _builder_version=&#8221;3.0.47&#8243; padding_left=&#8221;50px&#8221; padding_right=&#8221;50px&#8221; column_padding_mobile=&#8221;on&#8221; parallax=&#8221;off&#8221; parallax_method=&#8221;on&#8221;][et_pb_text _builder_version=&#8221;3.19.1&#8243; background_size=&#8221;initial&#8221; background_position=&#8221;top_left&#8221; background_repeat=&#8221;repeat&#8221; module_alignment=&#8221;left&#8221; use_border_color=&#8221;off&#8221;]<\/p>\n<p class=\"p1\"><span class=\"s1\">Code refactoring<\/span><span class=\"s2\">, the restructuring of functional code without adding new features, is quite challenging for many product development organizations. People in charge of prioritizing tasks are often skeptical about the idea of spending days or weeks on altering existing code as they would rather spend the resources on creating new features.<\/span><\/p>\n<p>&nbsp;<\/p>\n<h3 class=\"p3\"><span class=\"s2\"><b>Refactoring Makes Work Easier<\/b><\/span><\/h3>\n<p class=\"p1\"><span class=\"s2\">Of course, what these people have in mind is what is best for the company: new features have more to offer to the customers. In any case, software developers should remember and inform others about the benefits of code refactoring.<\/span><\/p>\n<p>&nbsp;<\/p>\n<h3 class=\"p3\"><span class=\"s2\"><b>Anyone can write code that the computer can understand. Skilled developers create code that people can understand.<\/b><\/span><\/h3>\n<blockquote class=\"et-pullquote right\">\n<p class=\"p1\"><span class=\"s1\"><i>Which usually takes more time, writing new code or reading the old code?<\/i><\/span><\/p>\n<\/blockquote>\n<p class=\"p1\"><span class=\"s1\">I have one question for you: which usually takes more time, writing new code or reading the old code? My opinion is that on average, developers spend dramatically more time on reading existing code than on writing new code. If the existing code was more readable and understandable, how much more efficiently could developers write new code?<\/span><\/p>\n<p class=\"p1\"><span class=\"s1\">Readability is merely one of the motivations for refactoring. Refactoring can also lead to improved performance, faster bug fixes and changes as well as improved robustness, just to name a few advantages.<\/span><\/p>\n<p>&nbsp;<\/p>\n<h3 class=\"p3\"><span class=\"s1\"><b>When Eating an Elephant, Take One Bite at a Time<\/b><\/span><\/h3>\n<p class=\"p1\"><span class=\"s1\">In my experience, refactoring is not done enough (actually, I feel a bit guilty because I was often the one to make the prioritizing decisions). What would be the easiest way for organizations to ensure sufficient refactoring and detect the cases where refactoring is particularly necessary?<\/span><\/p>\n<p class=\"p1\"><span class=\"s1\">The best way to refactor is by<\/span><\/p>\n<ol class=\"ol1\">\n<li class=\"li5\"><span class=\"s2\">taking small bites<\/span><\/li>\n<li class=\"li5\"><span class=\"s2\">regularly.<\/span><\/li>\n<\/ol>\n<p>&nbsp;<\/p>\n<p><img loading=\"lazy\" decoding=\"async\" class=\"alignnone wp-image-11011\" src=\"wp-content\/uploads\/2018\/04\/Fotolia_201052212_S-300x168.jpg\" alt=\"\" width=\"702\" height=\"393\" srcset=\"https:\/\/contribyte.fi\/wp-content\/uploads\/2018\/04\/Fotolia_201052212_S-300x168.jpg 300w, https:\/\/contribyte.fi\/wp-content\/uploads\/2018\/04\/Fotolia_201052212_S-768x430.jpg 768w, https:\/\/contribyte.fi\/wp-content\/uploads\/2018\/04\/Fotolia_201052212_S-610x341.jpg 610w, https:\/\/contribyte.fi\/wp-content\/uploads\/2018\/04\/Fotolia_201052212_S.jpg 926w\" sizes=\"(max-width: 702px) 100vw, 702px\" \/><\/p>\n<h3>\u00a0<\/h3>\n<h3 class=\"p1\"><span class=\"s1\"><b>Change the Structure First to Simplify Creating New Features!<\/b><\/span><\/h3>\n<p class=\"p3\"><span class=\"s1\">I will give you an example: if a story requires an added feature, you might discover that adding this feature is difficult due to the structure of the code. THIS would be the right time for code refactoring. In other words, you should refactor the code first to make adding new features easier, and only then add the new feature. When the team estimates a story, they should not just quickly estimate the story in story points but also think about how it should be carried out. If a need for code refactoring arises, it should be included in the effort for the story. This is a good way to start continuous refactoring. This is how the large product development organizations do it. It also helps organizations to avoid big refactoring problems after a few years.<\/span><\/p>\n<p>&nbsp;<\/p>\n<h3 class=\"p1\"><span class=\"s1\"><b>Keep a Most Wanted List<\/b><\/span><\/h3>\n<blockquote class=\"et-pullquote right\">\n<p class=\"p1\"><span class=\"s1\"><i>One of our teams would use the phrase \u201cClass written by God\u201d since no one else was able to understand it.<\/i><\/span><\/p>\n<\/blockquote>\n<p class=\"p1\"><span class=\"s1\">Another way of including refactoring on the to-do list is to keep a list of the worst outlaw classes which just HAVE TO be redone. One of our teams would use the phrase \u201cClass written by God\u201d since no one else was able to understand it. These parts of the software should be recognized and listed. I encourage teams to keep a to-do list for refactoring in Confluence, for example.<\/span><\/p>\n<h3>\u00a0<\/h3>\n<h3 class=\"p3\"><span class=\"s1\"><b>Scare Your Bosses<\/b><\/span><\/h3>\n<p class=\"p1\"><span class=\"s1\">Now that you have created the list, you will need to sell it to the product management and the Product Owner. You can approach this from two angles: scare them or explain the benefits. One of the benefits could be that creating critical features would become much easier after refactoring. To scare them, you could describe the horrors they will face if parts of the code are not refactored. The boogeyman will come at night and eat their babies, or the neighbor\u2019s pet guinea pig will chew the cables of their Porsche into tiny ribbons. Well, not literally of course.<\/span><\/p>\n<p class=\"p1\"><span class=\"s1\">The purpose is to paint a realistic picture of what will happen in the future if a certain part of the code is not refactored at that moment. Otherwise, they might keep postponing it until the moment comes when making changes becomes slower and slower, and work becomes less and less efficient. We can all imagine that this kind of situation is not ideal for working.<\/span><\/p>\n<p>&nbsp;<\/p>\n<h3 class=\"p3\"><span class=\"s1\"><b>Do It or Die<\/b><\/span><\/h3>\n<blockquote class=\"et-pullquote right\">\n<p class=\"p1\"><span class=\"s1\"><i>If you neglect refactoring altogether, you cannot succeed in the product development business in the future.<\/i><\/span><\/p>\n<\/blockquote>\n<p class=\"p1\"><span class=\"s1\">The purpose of refactoring is to improve the readability and changeability of the code. This, in turn, results in faster changes and more completed tasks. This creates a positive cycle, and everybody wins. If you neglect refactoring altogether, you cannot succeed in the product development business in the future. The holy book of refactoring, <b>Martin Fowler\u2019s <\/b>\u201cRefactoring: Improving the Design of Existing Code\u201d, is a book that every team should have at their disposal. Especially the first fifty pages are a must-read for every software developer.<\/span><\/p>\n<p class=\"p1\"><span class=\"s1\">\u00a0<\/span><\/p>\n<p class=\"p1\"><span class=\"s1\"><i>Contribyte is the leading product development assistant in Finland. We provide a variety of <\/i><a href=\"https:\/\/contribyte.fi\/2018\/05\/08\/if-it-works-fix-it\/tuotekehityksen-kehittamisen-palvelut\/\"><span class=\"s2\"><i>services<\/i><\/span><\/a><i> for developing your organization!<\/i><\/span><\/p>\n<p>&nbsp;<\/p>\n<div class=\"vanity-url-form\">\n<form action=\"https:\/\/www.linkedin.com\/profile\/vanity-name-submit\" method=\"POST\" name=\"vanityUrlForm\"><\/form>\n<\/div>\n<p>[\/et_pb_text][et_pb_team_member name=&#8221;Arto Kiiskinen&#8221; position=&#8221;Senior Consultant&#8221; image_url=&#8221;https:\/\/contribyte.fi\/wp-content\/uploads\/2018\/10\/Kiiskinen-Arto.jpg&#8221; db_email_addr=&#8221;arto.kiiskinen@contribyte.fi&#8221; linkedin_url=&#8221;https:\/\/www.linkedin.com\/in\/arto-kiiskinen-a98611\/&#8221; db_link_target=&#8221;on&#8221; _builder_version=&#8221;3.19.1&#8243; header_level=&#8221;h3&#8243; background_color=&#8221;#f9f9f9&#8243; custom_padding=&#8221;30px|30px||30px&#8221; saved_tabs=&#8221;all&#8221; global_module=&#8221;15722&#8243;]<\/p>\n<p><span class=\"s1\">In his career, Arto has worked in product development as a Product Owner, Scrum Master and Product Development Manager. The operating methods of both large and small companies have become familiar. Arto loves to improve organizational learning and product owner know-how, and write blogs on different topics. Because retrospectives are one of Arto\u2019s favorite topics, some of his customers have given him the nickname \u201cRetroman\u201d. During his free time, Arto tries to live healthy, buy as many cars as possible, rewatch the Star Gate series and study to become a Personal Trainer. Arto has also written the book\u00a0<\/span><a href=\"https:\/\/ownit8.com\/\" target=\"_blank\" rel=\"noopener\">\u201cOWN IT \u2013 8 Simple Secrets of Product Owner Success\u201d<\/a>.\u00a0<\/p>\n<p>[\/et_pb_team_member][et_pb_posts_carousel_agsdcm category_id=&#8221;635,634,649&#8243; max_title_characters=&#8221;150&#8243; heading_style=&#8221;custom&#8221; heading_primary=&#8221;Lis\u00e4\u00e4 sinua kiinnostavaa sis\u00e4lt\u00f6\u00e4&#8221; posts_per_page=&#8221;4&#8243; orderby=&#8221;comment_count&#8221; hover_overlay_icon=&#8221;%%190%%&#8221; admin_label=&#8221;Kiinnostavaa sis\u00e4lt\u00f6\u00e4 &#8211; VALITSE KATEGORIA &#038; LAJITTELU&#8221; _builder_version=&#8221;3.19.1&#8243; header_font_size_tablet=&#8221;51&#8243; header_line_height_tablet=&#8221;2&#8243; subheader_font_size_tablet=&#8221;51&#8243; subheader_line_height_tablet=&#8221;2&#8243; title_font_size_tablet=&#8221;51&#8243; title_line_height_tablet=&#8221;2&#8243; meta_font_size_tablet=&#8221;51&#8243; meta_line_height_tablet=&#8221;2&#8243; saved_tabs=&#8221;all&#8221;][\/et_pb_posts_carousel_agsdcm][\/et_pb_column][\/et_pb_row][et_pb_row padding_mobile=&#8221;off&#8221; column_padding_mobile=&#8221;on&#8221; padding_right_1=&#8221;30px&#8221; padding_left_1=&#8221;30px&#8221; _builder_version=&#8221;3.0.47&#8243; background_color=&#8221;#003478&#8243; background_size=&#8221;initial&#8221; background_position=&#8221;top_left&#8221; background_repeat=&#8221;repeat&#8221;][et_pb_column type=&#8221;4_4&#8243; _builder_version=&#8221;3.0.47&#8243; padding_left=&#8221;30px&#8221; padding_right=&#8221;30px&#8221; column_padding_mobile=&#8221;on&#8221; parallax=&#8221;off&#8221; parallax_method=&#8221;on&#8221;][et_pb_post_nav in_same_term=&#8221;off&#8221; _builder_version=&#8221;3.0.87&#8243; title_font=&#8221;||||on&#8221; title_text_color=&#8221;#ffffff&#8221; title_font_size=&#8221;22px&#8221; title_line_height=&#8221;2em&#8221; use_border_color=&#8221;off&#8221; border_color=&#8221;#003478&#8243; border_width=&#8221;5px&#8221; border_style=&#8221;outset&#8221; hide_prev=&#8221;off&#8221; hide_next=&#8221;off&#8221;][\/et_pb_post_nav][\/et_pb_column][\/et_pb_row][\/et_pb_section]<\/p>\n","protected":false},"excerpt":{"rendered":"<p>Refactoring, ie editing a functional code, is a bit difficult in many product development organizations. Often, the idea of \u200b\u200busing time to change the code already implemented is eliminated, and resources are preferably put into making new functionality. However, this blog tells us why refactoring is worthwhile.<\/p>\n","protected":false},"author":14,"featured_media":15720,"comment_status":"closed","ping_status":"closed","sticky":false,"template":"","format":"standard","meta":{"_et_pb_use_builder":"on","_et_pb_old_content":"","_et_gb_content_width":"","wds_primary_category":0,"footnotes":""},"categories":[664,674,675],"tags":[684,676,685,679,198,249,537,242,682],"class_list":["post-15719","post","type-post","status-publish","format-standard","has-post-thumbnail","hentry","category-agile-tietopankki-en","category-operatiivinen-kyvykkyys-en","category-tiimin-prosessit-ja-toimintamallit-en","tag-code","tag-developer-en","tag-development","tag-martin-fowler-en","tag-product-development","tag-product-management","tag-software","tag-team","tag-tuotehallinta-en"],"yoast_head":"<!-- This site is optimized with the Yoast SEO Premium plugin v15.7 - https:\/\/yoast.com\/wordpress\/plugins\/seo\/ -->\n<title>If it works, fix it! \u2013 Refactoring Is Always Worth It &ndash; Contribyte<\/title>\n<meta name=\"description\" content=\"Refactoring, ie editing a functional code, is a bit difficult in many product development organizations. However, this blog tells us why it is worthwhile.\" \/>\n<meta name=\"robots\" content=\"index, follow, max-snippet:-1, max-image-preview:large, max-video-preview:-1\" \/>\n<link rel=\"canonical\" href=\"https:\/\/contribyte.fi\/en\/2018\/05\/08\/if-it-works-fix-it\/\" \/>\n<meta property=\"og:locale\" content=\"en_US\" \/>\n<meta property=\"og:type\" content=\"article\" \/>\n<meta property=\"og:title\" content=\"If it works, fix it! \u2013 Refactoring Is Always Worth It &ndash; Contribyte\" \/>\n<meta property=\"og:description\" content=\"Refactoring, ie editing a functional code, is a bit difficult in many product development organizations. However, this blog tells us why it is worthwhile.\" \/>\n<meta property=\"og:url\" content=\"https:\/\/contribyte.fi\/en\/2018\/05\/08\/if-it-works-fix-it\/\" \/>\n<meta property=\"og:site_name\" content=\"Contribyte\" \/>\n<meta property=\"article:publisher\" content=\"http:\/\/facebook.com\/Contribyte\/\" \/>\n<meta property=\"article:published_time\" content=\"2018-05-08T06:29:04+00:00\" \/>\n<meta property=\"article:modified_time\" content=\"2019-03-22T12:06:48+00:00\" \/>\n<meta property=\"og:image\" content=\"https:\/\/contribyte.fi\/wp-content\/uploads\/2018\/04\/Fotolia_158451784_M.jpg\" \/>\n\t<meta property=\"og:image:width\" content=\"1687\" \/>\n\t<meta property=\"og:image:height\" content=\"1126\" \/>\n<meta name=\"twitter:card\" content=\"summary\" \/>\n<meta name=\"twitter:creator\" content=\"@contribyte\" \/>\n<meta name=\"twitter:site\" content=\"@contribyte\" \/>\n<meta name=\"twitter:label1\" content=\"Est. reading time\">\n\t<meta name=\"twitter:data1\" content=\"8 minutes\">\n<script type=\"application\/ld+json\" class=\"yoast-schema-graph\">{\"@context\":\"https:\/\/schema.org\",\"@graph\":[{\"@type\":\"Organization\",\"@id\":\"https:\/\/contribyte.fi\/en\/#organization\",\"name\":\"Contribyte\",\"url\":\"https:\/\/contribyte.fi\/en\/\",\"sameAs\":[\"http:\/\/facebook.com\/Contribyte\/\",\"http:\/\/instagram.com\/contribyte\/\",\"https:\/\/www.linkedin.com\/company\/contribyte-oy\",\"http:\/\/youtube.com\/user\/Contribyte\",\"https:\/\/twitter.com\/contribyte\"],\"logo\":{\"@type\":\"ImageObject\",\"@id\":\"https:\/\/contribyte.fi\/en\/#logo\",\"inLanguage\":\"en-US\",\"url\":\"https:\/\/contribyte.fi\/wp-content\/uploads\/2017\/07\/Contribyte-logo-transparent-background.png\",\"width\":\"1600\",\"height\":\"532\",\"caption\":\"Contribyte\"},\"image\":{\"@id\":\"https:\/\/contribyte.fi\/en\/#logo\"}},{\"@type\":\"WebSite\",\"@id\":\"https:\/\/contribyte.fi\/en\/#website\",\"url\":\"https:\/\/contribyte.fi\/en\/\",\"name\":\"Contribyte\",\"description\":\"Ratkaisut tulevaisuuden voittaville organisaatioille\",\"publisher\":{\"@id\":\"https:\/\/contribyte.fi\/en\/#organization\"},\"potentialAction\":[{\"@type\":\"SearchAction\",\"target\":\"https:\/\/contribyte.fi\/en\/?s={search_term_string}\",\"query-input\":\"required name=search_term_string\"}],\"inLanguage\":\"en-US\"},{\"@type\":\"ImageObject\",\"@id\":\"https:\/\/contribyte.fi\/en\/2018\/05\/08\/if-it-works-fix-it\/#primaryimage\",\"inLanguage\":\"en-US\",\"url\":\"https:\/\/contribyte.fi\/wp-content\/uploads\/2018\/04\/Fotolia_158451784_M.jpg\",\"width\":\"1687\",\"height\":\"1126\"},{\"@type\":\"WebPage\",\"@id\":\"https:\/\/contribyte.fi\/en\/2018\/05\/08\/if-it-works-fix-it\/#webpage\",\"url\":\"https:\/\/contribyte.fi\/en\/2018\/05\/08\/if-it-works-fix-it\/\",\"name\":\"If it works, fix it! \\u2013 Refactoring Is Always Worth It &ndash; Contribyte\",\"isPartOf\":{\"@id\":\"https:\/\/contribyte.fi\/en\/#website\"},\"primaryImageOfPage\":{\"@id\":\"https:\/\/contribyte.fi\/en\/2018\/05\/08\/if-it-works-fix-it\/#primaryimage\"},\"datePublished\":\"2018-05-08T06:29:04+00:00\",\"dateModified\":\"2019-03-22T12:06:48+00:00\",\"description\":\"Refactoring, ie editing a functional code, is a bit difficult in many product development organizations. However, this blog tells us why it is worthwhile.\",\"inLanguage\":\"en-US\",\"potentialAction\":[{\"@type\":\"ReadAction\",\"target\":[\"https:\/\/contribyte.fi\/en\/2018\/05\/08\/if-it-works-fix-it\/\"]}]},{\"@type\":\"Article\",\"@id\":\"https:\/\/contribyte.fi\/en\/2018\/05\/08\/if-it-works-fix-it\/#article\",\"isPartOf\":{\"@id\":\"https:\/\/contribyte.fi\/en\/2018\/05\/08\/if-it-works-fix-it\/#webpage\"},\"author\":{\"@id\":\"https:\/\/contribyte.fi\/en\/#\/schema\/person\/bdd7f8c4230089e41586cc07b8eb1921\"},\"headline\":\"If it works, fix it! \\u2013 Refactoring Is Always Worth It\",\"datePublished\":\"2018-05-08T06:29:04+00:00\",\"dateModified\":\"2019-03-22T12:06:48+00:00\",\"mainEntityOfPage\":{\"@id\":\"https:\/\/contribyte.fi\/en\/2018\/05\/08\/if-it-works-fix-it\/#webpage\"},\"publisher\":{\"@id\":\"https:\/\/contribyte.fi\/en\/#organization\"},\"image\":{\"@id\":\"https:\/\/contribyte.fi\/en\/2018\/05\/08\/if-it-works-fix-it\/#primaryimage\"},\"keywords\":\"code,developer,development,Martin Fowler,product development,product management,software,team,tuotehallinta\",\"articleSection\":\"Agile tietopankki,Operatiivinen kyvykkyys,Tiimin prosessit ja toimintamallit\",\"inLanguage\":\"en-US\"},{\"@type\":\"Person\",\"@id\":\"https:\/\/contribyte.fi\/en\/#\/schema\/person\/bdd7f8c4230089e41586cc07b8eb1921\",\"name\":\"Arto Kiiskinen\",\"image\":{\"@type\":\"ImageObject\",\"@id\":\"https:\/\/contribyte.fi\/en\/#personlogo\",\"inLanguage\":\"en-US\",\"url\":\"https:\/\/contribyte.fi\/wp-content\/wphb-cache\/gravatar\/ad3\/ad304425f6cc8f689570670a9ba67b41x96.jpg\",\"caption\":\"Arto Kiiskinen\"}}]}<\/script>\n<!-- \/ Yoast SEO Premium plugin. -->","_links":{"self":[{"href":"https:\/\/contribyte.fi\/en\/wp-json\/wp\/v2\/posts\/15719","targetHints":{"allow":["GET"]}}],"collection":[{"href":"https:\/\/contribyte.fi\/en\/wp-json\/wp\/v2\/posts"}],"about":[{"href":"https:\/\/contribyte.fi\/en\/wp-json\/wp\/v2\/types\/post"}],"author":[{"embeddable":true,"href":"https:\/\/contribyte.fi\/en\/wp-json\/wp\/v2\/users\/14"}],"replies":[{"embeddable":true,"href":"https:\/\/contribyte.fi\/en\/wp-json\/wp\/v2\/comments?post=15719"}],"version-history":[{"count":0,"href":"https:\/\/contribyte.fi\/en\/wp-json\/wp\/v2\/posts\/15719\/revisions"}],"wp:featuredmedia":[{"embeddable":true,"href":"https:\/\/contribyte.fi\/en\/wp-json\/wp\/v2\/media\/15720"}],"wp:attachment":[{"href":"https:\/\/contribyte.fi\/en\/wp-json\/wp\/v2\/media?parent=15719"}],"wp:term":[{"taxonomy":"category","embeddable":true,"href":"https:\/\/contribyte.fi\/en\/wp-json\/wp\/v2\/categories?post=15719"},{"taxonomy":"post_tag","embeddable":true,"href":"https:\/\/contribyte.fi\/en\/wp-json\/wp\/v2\/tags?post=15719"}],"curies":[{"name":"wp","href":"https:\/\/api.w.org\/{rel}","templated":true}]}}