<?xml version="1.0" encoding="UTF-8" ?><!-- generator=Zoho Sites --><rss version="2.0" xmlns:atom="http://www.w3.org/2005/Atom" xmlns:content="http://purl.org/rss/1.0/modules/content/"><channel><atom:link href="https://www.bolbeck.com/blogs/management/feed" rel="self" type="application/rss+xml"/><title>Bolbeck LLC - Blog , Management</title><description>Bolbeck LLC - Blog , Management</description><link>https://www.bolbeck.com/blogs/management</link><lastBuildDate>Mon, 08 Dec 2025 16:04:50 -0800</lastBuildDate><generator>http://zoho.com/sites/</generator><item><title><![CDATA[Centralized credentials management with Vault]]></title><link>https://www.bolbeck.com/blogs/post/pwdmanagementwithvault</link><description><![CDATA[<img align="left" hspace="5" src="https://www.bolbeck.com/images/stoppasswordinsanity_small.png"/>Deck from my presentation at Hashitalks 2021. Talk discusses on to use Vault to centralize and simplify credentials management of a microservices application running in Kubernetes]]></description><content:encoded><![CDATA[<div class="zpcontent-container blogpost-container "><div data-element-id="elm_3T5fdfwnQ2i5MReML_u-fA" data-element-type="section" class="zpsection "><style type="text/css"></style><div class="zpcontainer-fluid zpcontainer"><div data-element-id="elm_3aNmlq4DRAi3S2Y44rzWcg" data-element-type="row" class="zprow zprow-container zpalign-items- zpjustify-content- " data-equal-column=""><style type="text/css"></style><div data-element-id="elm_rZCPmXPBSFeSJ7L8v2vwGQ" data-element-type="column" class="zpelem-col zpcol-12 zpcol-md-12 zpcol-sm-12 zpalign-self- "><style type="text/css"></style><div data-element-id="elm_RXAhSzQmS7WXDheIaLFBbA" data-element-type="heading" class="zpelement zpelem-heading "><style></style><h2
 class="zpheading zpheading-align-center " data-editor="true">Stop the (password) insanity!</h2></div>
<div data-element-id="elm_qYT5uSsARnCtH3qqoSNHsQ" data-element-type="text" class="zpelement zpelem-text "><style></style><div class="zptext zptext-align-center " data-editor="true"><p style="text-align:left;">Slides from my session at Hashitalks 2021</p><p style="text-align:left;">As we build distributed applications and microservices, it is important to have a plan that allows easy, consistent management of applications' credentials. The talk discusses how to use Vault to simplify credentials management of a&nbsp;<span style="color:inherit;text-align:center;">sample&nbsp;</span>microservices application running in Kubernetes. It shows how to achieve our objective without having to modify any of the existing application code.</p><p style="text-align:center;">Click on the image below to open the presentation&nbsp;</p></div>
</div><div data-element-id="elm_eNqF_Pn8o9Xl9yqi4UGX_A" data-element-type="image" class="zpelement zpelem-image "><style> [data-element-id="elm_eNqF_Pn8o9Xl9yqi4UGX_A"].zpelem-image { border-radius:1px; } </style><div data-caption-color="" data-size-tablet="size-original" data-size-mobile="size-original" data-align="center" data-tablet-image-separate="" data-mobile-image-separate="" class="zpimage-container zpimage-align-center zpimage-size-large zpimage-tablet-fallback-large zpimage-mobile-fallback-large "><figure role="none" class="zpimage-data-ref"><a class="zpimage-anchor" href="/files/Stop%20the%20-password-%20insanity.pdf" target="" rel=""><picture><img class="zpimage zpimage-style-none zpimage-space-none " src="/images/stoppasswordinsanity_small.png" size="large" alt="Link to slides for Stop the password insanity!" style="width:1024px;"/></picture></a></figure></div>
</div></div></div></div></div></div> ]]></content:encoded><pubDate>Mon, 15 Feb 2021 09:54:59 -0600</pubDate></item><item><title><![CDATA[Personal lessons from the pandemic that every IT organization should apply]]></title><link>https://www.bolbeck.com/blogs/post/pandemiclessons</link><description><![CDATA[<img align="left" hspace="5" src="https://www.bolbeck.com/images/LearningLaptop.jpg"/>The year 2020 will be forever known as the year the first ( hopefully only) world wide pandemic of the 21st century hit. This crisis has caused significant lifestyle changes. Let us explore some changes I have observed & explain how they can be applied at any IT organization.]]></description><content:encoded><![CDATA[<div class="zpcontent-container blogpost-container "><div data-element-id="elm_MHLYu6D-RR2neX1Qiz_NEw" data-element-type="section" class="zpsection "><style type="text/css"></style><div class="zpcontainer-fluid zpcontainer"><div data-element-id="elm_w2KnibY9QqKb-PPgH3ZqQQ" data-element-type="row" class="zprow zprow-container zpalign-items- zpjustify-content- " data-equal-column=""><style type="text/css"></style><div data-element-id="elm_8CW-qFLDQ8Oinu5fDezALA" data-element-type="column" class="zpelem-col zpcol-12 zpcol-md-12 zpcol-sm-12 zpalign-self- "><style type="text/css"></style><div data-element-id="elm_zlR24lykWGXcn2SvTq8_5g" data-element-type="imagetext" class="zpelement zpelem-imagetext "><style> [data-element-id="elm_zlR24lykWGXcn2SvTq8_5g"].zpelem-imagetext{ border-radius:1px; } </style><div data-size-tablet="" data-size-mobile="" data-align="left" data-tablet-image-separate="" data-mobile-image-separate="" class="zpimagetext-container zpimage-with-text-container zpimage-align-left zpimage-size-small zpimage-tablet-fallback-small zpimage-mobile-fallback-small hb-lightbox " data-lightbox-options="
            type:fullscreen,
            theme:dark"><figure role="none" class="zpimage-data-ref"><span class="zpimage-anchor" role="link" tabindex="0" aria-label="Open Lightbox" style="cursor:pointer;"><picture><img class="zpimage zpimage-style-none zpimage-space-none " src="/images/Kid-1.jpg" size="small" alt="Kid next to chalk board" data-lightbox="true" style="width:120px;"/></picture></span></figure><div class="zpimage-text zpimage-text-align-left " data-editor="true"><p style="font-size:16px;">The year 2020 will be forever known as the year the first (and hopefully only) world wide pandemic of the 21st century hit. This crisis has forced the population to change the way even the most mundane of tasks, like going for a walk or eating at restaurant, are perceived and executed. From whole countries shutting down to incidents arising from people falling to wear masks, change can be seen everywhere.</p><p style="font-size:16px;"><br></p><p style="text-align:center;"></p><p><span style="color:inherit;"></span></p><p style="font-size:16px;">In the next few pages, we will discuss some changes I have observed over the last few months and explain how those learnings can be applied to enhance the operations of any IT organization.</p></div>
</div></div><div data-element-id="elm_HGVb_h_uhwjnbqYItfJKSg" data-element-type="heading" class="zpelement zpelem-heading "><style> [data-element-id="elm_HGVb_h_uhwjnbqYItfJKSg"].zpelem-heading { border-radius:1px; } </style><h2
 class="zpheading zpheading-style-none zpheading-align-left " data-editor="true"><span style="color:inherit;"><span style="font-size:24px;">Your organization most crucial resource is not the one you think</span></span></h2></div>
<div data-element-id="elm_uP6NFUl5xkNpX5zD0taHcA" data-element-type="imagetext" class="zpelement zpelem-imagetext "><style> [data-element-id="elm_uP6NFUl5xkNpX5zD0taHcA"].zpelem-imagetext{ border-radius:1px; } </style><div data-size-tablet="" data-size-mobile="" data-align="left" data-tablet-image-separate="" data-mobile-image-separate="" class="zpimagetext-container zpimage-with-text-container zpimage-align-left zpimage-size-small zpimage-tablet-fallback-small zpimage-mobile-fallback-small hb-lightbox " data-lightbox-options="
            type:fullscreen,
            theme:dark"><figure role="none" class="zpimage-data-ref"><span class="zpimage-anchor" role="link" tabindex="0" aria-label="Open Lightbox" style="cursor:pointer;"><picture><img class="zpimage zpimage-style-none zpimage-space-none " src="/images/ToiletPaper-1.jpg" size="small" alt="Toilet Paper" data-lightbox="true" style="width:120px;"/></picture></span></figure><div class="zpimage-text zpimage-text-align-left " data-editor="true"><p style="font-size:16px;">At the beginning of the pandemic, when it was clear that the population would have to stay at home to slow the spread of COVID-19, popular wisdom indicated that food and water could quickly become scarce. However, no one could have foreseen that toilet paper would become the hardest item to find in stores.</p><p style="font-size:16px;"><br></p><p></p><p><span style="color:inherit;"></span></p><p style="font-size:16px;">In the same way, IT failures usually come from unexpected sources. IT organizations have contingency plans to ensure smooth operations, but no amount of planning can prevent the unexpected. For example, I remember one time when a company's network went down because someone had added additional equipment to the enclosure that held the network switches (including the redundancies). The added heat caused the switches to start failing in mass.</p></div>
</div></div><div data-element-id="elm_9Gn9Fcz-rMPewerLwEeGtg" data-element-type="text" class="zpelement zpelem-text "><style> [data-element-id="elm_9Gn9Fcz-rMPewerLwEeGtg"].zpelem-text { border-radius:1px; } </style><div class="zptext zptext-align-left " data-editor="true"><p><span style="color:inherit;font-size:16px;">&nbsp;But how do you prepare for the unexpected? 'Chaos Engineering' has risen in popularity in the last few years as a way to address that exact question. The main premise of this type of engineering entails using software to randomly simulate application, equipment and network failures. This allows teams to build muscle memory on how to handle unexpected failures. Companies like Netflix routinely run chaos engineering in production to train teams to quickly resolve outages. The folks at Gremlin wrote a&nbsp;<a href="https://www.gremlin.com/community/tutorials/chaos-engineering-the-history-principles-and-practice/">good introductory article</a>&nbsp;on this subject.&nbsp;</span><br></p></div>
</div><div data-element-id="elm_eRvSRBianZo3Ac-C9Eh4Og" data-element-type="image" class="zpelement zpelem-image "><style> [data-element-id="elm_eRvSRBianZo3Ac-C9Eh4Og"].zpelem-image { border-radius:1px; } </style><div data-caption-color="" data-size-tablet="" data-size-mobile="" data-align="center" data-tablet-image-separate="" data-mobile-image-separate="" class="zpimage-container zpimage-align-center zpimage-size-medium zpimage-tablet-fallback-medium zpimage-mobile-fallback-medium hb-lightbox " data-lightbox-options="
                type:fullscreen,
                theme:dark"><figure role="none" class="zpimage-data-ref"><span class="zpimage-anchor" role="link" tabindex="0" aria-label="Open Lightbox" style="cursor:pointer;"><picture><img class="zpimage zpimage-style-none zpimage-space-none " src="/images/ChaosEngr.png" size="medium" alt="Chaos Engineering software like Gremlin &amp; ChaosToolkit" data-lightbox="true" style="width:548px;"/></picture></span><figcaption class="zpimage-caption zpimage-caption-align-center"><span class="zpimage-caption-content">Chaos Engineering Frameworks</span></figcaption></figure></div>
</div><div data-element-id="elm_-Y73bz6BrHj4zbIxIyhg8g" data-element-type="heading" class="zpelement zpelem-heading "><style> [data-element-id="elm_-Y73bz6BrHj4zbIxIyhg8g"].zpelem-heading { border-radius:1px; } </style><h2
 class="zpheading zpheading-style-none zpheading-align-left " data-editor="true"><span style="color:inherit;"><span style="font-size:24px;">Your Organization toolset may need an overhaul to be more productive</span></span></h2></div>
<div data-element-id="elm_6N8cxGly6BTY19VKFddULw" data-element-type="imagetext" class="zpelement zpelem-imagetext "><style> [data-element-id="elm_6N8cxGly6BTY19VKFddULw"].zpelem-imagetext{ border-radius:1px; } </style><div data-size-tablet="" data-size-mobile="" data-align="left" data-tablet-image-separate="" data-mobile-image-separate="" class="zpimagetext-container zpimage-with-text-container zpimage-align-left zpimage-size-small zpimage-tablet-fallback-small zpimage-mobile-fallback-small hb-lightbox " data-lightbox-options="
            type:fullscreen,
            theme:dark"><figure role="none" class="zpimage-data-ref"><span class="zpimage-anchor" role="link" tabindex="0" aria-label="Open Lightbox" style="cursor:pointer;"><picture><img class="zpimage zpimage-style-none zpimage-space-none " src="/images/yogurt.jpg" size="small" alt="A glass of yogurt" data-lightbox="true" style="width:140px;"/></picture></span></figure><div class="zpimage-text zpimage-text-align-left " data-editor="true"><p style="font-size:16px;"><span>As the pandemic hit, our family saw many of our favorite brands disappear from stores. This forced us to experiment with new, unfamiliar products. For example, I was forced to try new yogurt alternatives when our favorite brand vanished. While I found my share of duds, in the end, I found a couple yogurt brands that could not only work as suitable substitutes but that were superior to my original brand.</span></p><p style="font-size:16px;"><span><br></span></p><p><span style="color:inherit;"></span></p><p style="font-size:16px;"><span>As IT organizations grow, it is easy and comfortable to stick with a few well known tools. Unfortunately, this means that IT departments can potentially miss out on the significant advances in software applications. Recently, I witnessed a company passing on an AI based solution that could simplify a large number of their operations. The reason to pass on the software? The application did not export results to Lotus Notes. Trying to add features to a software over 25 years after most companies abandoned it, seems like a classic example of an IT department operating by inertia . Most times companies do not realize the hidden costs of legacy applications because many of these costs, while very real, are not always easy to quantify.</span></p></div>
</div></div><div data-element-id="elm_iEBjb0zDlgkNnKwg3Kx81g" data-element-type="image" class="zpelement zpelem-image "><style> [data-element-id="elm_iEBjb0zDlgkNnKwg3Kx81g"].zpelem-image { border-radius:1px; } </style><div data-caption-color="" data-size-tablet="" data-size-mobile="" data-align="center" data-tablet-image-separate="" data-mobile-image-separate="" class="zpimage-container zpimage-align-center zpimage-size-medium zpimage-tablet-fallback-medium zpimage-mobile-fallback-medium hb-lightbox " data-lightbox-options="
                type:fullscreen,
                theme:dark"><figure role="none" class="zpimage-data-ref"><span class="zpimage-anchor" role="link" tabindex="0" aria-label="Open Lightbox" style="cursor:pointer;"><picture><img class="zpimage zpimage-style-none zpimage-space-none " src="/images/legacySoftwareCosts.png" size="medium" alt="Hidden costs like support, training and information availability" data-lightbox="true" style="width:342px;"/></picture></span></figure></div>
</div><div data-element-id="elm_TPTVOMnm3XzvYKyqLAWC5A" data-element-type="heading" class="zpelement zpelem-heading "><style> [data-element-id="elm_TPTVOMnm3XzvYKyqLAWC5A"].zpelem-heading { border-radius:1px; } </style><h2
 class="zpheading zpheading-style-none zpheading-align-left " data-editor="true"><span style="color:inherit;"><span style="font-size:24px;">New software adoption can be hard but not as hard as you may think</span></span></h2></div>
<div data-element-id="elm_d9bXGdXrkncXNSD2bn5jFw" data-element-type="imagetext" class="zpelement zpelem-imagetext "><style> [data-element-id="elm_d9bXGdXrkncXNSD2bn5jFw"].zpelem-imagetext{ border-radius:1px; } </style><div data-size-tablet="" data-size-mobile="" data-align="left" data-tablet-image-separate="" data-mobile-image-separate="" class="zpimagetext-container zpimage-with-text-container zpimage-align-left zpimage-size-small zpimage-tablet-fallback-small zpimage-mobile-fallback-small hb-lightbox " data-lightbox-options="
            type:fullscreen,
            theme:dark"><figure role="none" class="zpimage-data-ref"><span class="zpimage-anchor" role="link" tabindex="0" aria-label="Open Lightbox" style="cursor:pointer;"><picture><img class="zpimage zpimage-style-none zpimage-space-none " src="/images/guyOnPhone-1.jpg" size="small" alt="Man playing on a phone" data-lightbox="true" style="width:100px;"/></picture></span></figure><div class="zpimage-text zpimage-text-align-left " data-editor="true"><p style="font-size:16px;"><span>A few months ago, my 9 year old nephew, who lives abroad, realized that with the pandemic he could not spend half as much time with his friends as he normally would. So, he called me and convinced me to download his favorite game. He taught me how to play the game and now (5 game downloads later) we have weekly game sessions on our tablets. It took us five minutes to establish simultaneous visual, voice and game communication over thousands of miles. This was achieved by a well motivated 9 year old kid with access to the right technology.</span></p><p style="font-size:16px;"><span><br></span></p><p><span style="color:inherit;"></span></p><p style="font-size:16px;"><span>Throughout my career I have seen a number of exciting and ground breaking initiatives die on the notepad because people think they are too hard to implement or that people would never used them. However, the pandemic has shown us that things are not always as they seem. Technology is moving at such a high pace that what used to be far fetched just a couple of year ago is now a reality. Companies that fail to constantly adapt and implement new technologies are finding themselves chasing the competition.. </span></p></div>
</div></div><div data-element-id="elm_Io2YfzpyvPJsAHl8SjI3Og" data-element-type="text" class="zpelement zpelem-text "><style> [data-element-id="elm_Io2YfzpyvPJsAHl8SjI3Og"].zpelem-text { border-radius:1px; } </style><div class="zptext zptext-align-left " data-editor="true"><p style="font-size:16px;"><span>We all witnessed the meteoric adoption of Zoom and other technologies that enable remote work. However, It was not long ago that most IT managers indicated that setting up the infrastructure to support employees working remotely was a fool's errand. It was too complicated and it would take months, if not years to implement. And then, the pandemic hit. Those same organizations implemented remote work in a matter of weeks</span></p><p style="font-size:16px;"><span><br></span></p><p><span style="color:inherit;"></span></p><p style="font-size:16px;"><span>Applying new ideas and technologies comes down to breaking down misconceptions, having strong motivators, not being afraid to test new technologies and having clear goals.</span></p></div>
</div><div data-element-id="elm_eNuVkhxF3wfyevovyOhbmw" data-element-type="image" class="zpelement zpelem-image "><style> [data-element-id="elm_eNuVkhxF3wfyevovyOhbmw"].zpelem-image { border-radius:1px; } </style><div data-caption-color="" data-size-tablet="" data-size-mobile="" data-align="center" data-tablet-image-separate="" data-mobile-image-separate="" class="zpimage-container zpimage-align-center zpimage-size-medium zpimage-tablet-fallback-medium zpimage-mobile-fallback-medium hb-lightbox " data-lightbox-options="
                type:fullscreen,
                theme:dark"><figure role="none" class="zpimage-data-ref"><span class="zpimage-anchor" role="link" tabindex="0" aria-label="Open Lightbox" style="cursor:pointer;"><picture><img class="zpimage zpimage-style-none zpimage-space-none " src="/images/Virtual%20Meetings.png" size="medium" alt="Collaboration software: Zoom, Google Hangouts, Webex" data-lightbox="true" style="width:1050px;"/></picture></span><figcaption class="zpimage-caption zpimage-caption-align-center"><span class="zpimage-caption-content">Collaboration Software</span></figcaption></figure></div>
</div><div data-element-id="elm_tWEGJRLHbb0BkiX1ZdrAeg" data-element-type="heading" class="zpelement zpelem-heading "><style> [data-element-id="elm_tWEGJRLHbb0BkiX1ZdrAeg"].zpelem-heading { border-radius:1px; } </style><h2
 class="zpheading zpheading-style-none zpheading-align-left " data-editor="true"><span style="color:inherit;"><span style="font-size:24px;">A long commute is not a requirement for a productive team</span></span></h2></div>
<div data-element-id="elm_Ug5LpvUHnrG1g6qWXB4ymA" data-element-type="imagetext" class="zpelement zpelem-imagetext "><style> [data-element-id="elm_Ug5LpvUHnrG1g6qWXB4ymA"].zpelem-imagetext{ border-radius:1px; } </style><div data-size-tablet="" data-size-mobile="" data-align="left" data-tablet-image-separate="" data-mobile-image-separate="" class="zpimagetext-container zpimage-with-text-container zpimage-align-left zpimage-size-large zpimage-tablet-fallback-large zpimage-mobile-fallback-large hb-lightbox " data-lightbox-options="
            type:fullscreen,
            theme:dark"><figure role="none" class="zpimage-data-ref"><span class="zpimage-anchor" role="link" tabindex="0" aria-label="Open Lightbox" style="cursor:pointer;"><picture><img class="zpimage zpimage-style-none zpimage-space-none " src="/images/traffic-2.jpg" size="large" data-lightbox="true" style="width:100px;padding:0px;margin:0px;"/></picture></span></figure><div class="zpimage-text zpimage-text-align-left " data-editor="true"><p><span style="font-size:16px;">Whether it was a long drive to the office or multiple flights a week to get to a client, it was a common urban myth that team members needed to suffer through the daily commute to be productive at work. </span></p><p><span style="font-size:16px;"><br></span></p><p><span style="color:inherit;font-size:16px;"></span></p><p><span style="font-size:16px;">However, throughout the pandemic we have seen that remote employees tend to be at least as, if not more, productive than those confined to cubicles. Research has shown that remote work brings significant benefits to both the employers and employees. Some of those benefits are depicted in <a href="https://globalworkplaceanalytics.com/resources/costs-benefits">an article</a> by Global Workplace Analytics. The illustration below depicts some of the key findings from that article:</span></p><p><br></p></div>
</div></div><div data-element-id="elm_btDgldEcI32MjuOP9DoORA" data-element-type="image" class="zpelement zpelem-image "><style> [data-element-id="elm_btDgldEcI32MjuOP9DoORA"].zpelem-image { border-radius:1px; } </style><div data-caption-color="" data-size-tablet="" data-size-mobile="" data-align="center" data-tablet-image-separate="" data-mobile-image-separate="" class="zpimage-container zpimage-align-center zpimage-size-original zpimage-tablet-fallback-original zpimage-mobile-fallback-original hb-lightbox " data-lightbox-options="
                type:fullscreen,
                theme:dark"><figure role="none" class="zpimage-data-ref"><span class="zpimage-anchor" role="link" tabindex="0" aria-label="Open Lightbox" style="cursor:pointer;"><picture><img class="zpimage zpimage-style-none zpimage-space-none " src="/images/RemoteBenefits.png" size="original" data-lightbox="true"/></picture></span></figure></div>
</div><div data-element-id="elm_JUuVPzP3qMj4LFY3suXjfQ" data-element-type="text" class="zpelement zpelem-text "><style> [data-element-id="elm_JUuVPzP3qMj4LFY3suXjfQ"].zpelem-text { border-radius:1px; } </style><div class="zptext zptext-align-left " data-editor="true"><p><span style="font-size:16px;"><br></span></p><p><span style="font-size:16px;">The transition to remote work has not always been smooth given how fast the pandemic forced us to implemented it. However, remote teams have produced great results as long as:</span></p><ul><li><p><span style="font-size:16px;">Managers hold people accountable for work output instead of the numbers of hours clocked.</span></p></li><li><p><span style="font-size:16px;">Teams make an effort to build a healthy and supportive online community that ensures both work and personal relations continue to flourish. </span></p></li><li><p><span style="font-size:16px;">Members set clear rules for both personal interactions and work deliverables </span></p></li></ul><p><span style="color:inherit;"></span></p><p style="font-size:16px;"><br></p><p><span style="font-size:16px;">This change has been so successful for a large number of IT workers, that the average rent in the Bay Area have already started to drop. Employees have started to move away from the tech hubs since they no longer have to pay a large percentage of their salaries for rent when they can buy a much larger home somewhere else for a fraction of the cost .</span></p></div>
</div><div data-element-id="elm_1mnrpQw_cuBLzeLhFLRWew" data-element-type="heading" class="zpelement zpelem-heading "><style> [data-element-id="elm_1mnrpQw_cuBLzeLhFLRWew"].zpelem-heading { border-radius:1px; } </style><h2
 class="zpheading zpheading-style-none zpheading-align-left " data-editor="true"><span style="color:inherit;"><span style="font-size:24px;">Your costs are not set in stone</span></span></h2></div>
<div data-element-id="elm_r2QivRZBGZsN59M3SqaJOw" data-element-type="imagetext" class="zpelement zpelem-imagetext "><style> [data-element-id="elm_r2QivRZBGZsN59M3SqaJOw"].zpelem-imagetext{ border-radius:1px; } </style><div data-size-tablet="" data-size-mobile="" data-align="left" data-tablet-image-separate="" data-mobile-image-separate="" class="zpimagetext-container zpimage-with-text-container zpimage-align-left zpimage-size-small zpimage-tablet-fallback-small zpimage-mobile-fallback-small hb-lightbox " data-lightbox-options="
            type:fullscreen,
            theme:dark"><figure role="none" class="zpimage-data-ref"><span class="zpimage-anchor" role="link" tabindex="0" aria-label="Open Lightbox" style="cursor:pointer;"><picture><img class="zpimage zpimage-style-none zpimage-space-none " src="/images/calculator.jpg" size="small" data-lightbox="true" style="width:110px;"/></picture></span></figure><div class="zpimage-text zpimage-text-align-left " data-editor="true"><p><span style="font-size:16px;"><span style="color:inherit;">Before the pandemic hit, I used to think we had a fairly good handle on monthly household expenses However, COVID-19 arrived and changed the world along with our expenses. For example, restaurant and take out expenses were reduced drastically while supermarket costs increased. This shift to home cooking lead to unexpected savings..</span><br></span></p><p><span style="color:inherit;font-size:16px;"><br></span></p><p><span style="color:inherit;font-size:16px;">An interesting fact coming out of the pandemic is that people are saving more than ever. The <a href="https://www.usatoday.com/story/money/2020/08/10/saving-and-spending-americans-spend-their-record-savings-crisis/3319970001/">Commerce department</a> estimates that pre-pandemic, the average American savings rate was in average 7.5%. By April of 2020, the rate had sky rocketed to 33.5% and by June it seemed to have settled around 19%. And while it is not known where that rate will settle once things come back to normal, it is clear that with the correct adjustments the average person can save more that he/she traditionally does in a typical month.&nbsp;</span><span style="color:inherit;"><span style="font-size:16px;"><br></span></span></p><p><span style="color:inherit;font-size:16px;"><br></span></p></div>
</div></div><div data-element-id="elm_0QF06gOWPW9hpZuqEkugww" data-element-type="image" class="zpelement zpelem-image "><style> [data-element-id="elm_0QF06gOWPW9hpZuqEkugww"].zpelem-image { border-radius:1px; } </style><div data-caption-color="" data-size-tablet="" data-size-mobile="" data-align="center" data-tablet-image-separate="" data-mobile-image-separate="" class="zpimage-container zpimage-align-center zpimage-size-small zpimage-tablet-fallback-small zpimage-mobile-fallback-small hb-lightbox " data-lightbox-options="
                type:fullscreen,
                theme:dark"><figure role="none" class="zpimage-data-ref"><span class="zpimage-anchor" role="link" tabindex="0" aria-label="Open Lightbox" style="cursor:pointer;"><picture><img class="zpimage zpimage-style-box zpimage-space-none " src="/images/SavingsRate.png" size="small" alt="Percentage savings rate: pre-COVID 7.5%  june: 19%" data-lightbox="true" style="width:668px;"/></picture></span></figure></div>
</div><div data-element-id="elm_mkixSGK3F5x29VQACcTATQ" data-element-type="text" class="zpelement zpelem-text "><style> [data-element-id="elm_mkixSGK3F5x29VQACcTATQ"].zpelem-text { border-radius:1px; } </style><div class="zptext zptext-align-left " data-editor="true"><p style="font-size:16px;"><span><br></span></p><p style="font-size:16px;"><span>Similarly, as organizations grow and the company's needs for technology increase, it is tempting to think that a large portion of the costs are fixed and absolutely unavoidable. </span></p><p><span style="color:inherit;"></span></p><p style="font-size:16px;"><span>But just like personal spending, organizational spending is not set in stone. As companies grow, expenses grow as well and the expenses are rarely inspected with a calm and unemotional lens (Telling users that their favorite tool will be sunset is always an interesting conversation). But this type of review is absolutely necessary and must take place on a regular basis. Otherwise, companies are eventually forced to take hurried, dramatic cost cutting measures on the next market down turn. </span></p></div>
</div><div data-element-id="elm_mZeNJX1JKNFYrxL-cu_gAg" data-element-type="heading" class="zpelement zpelem-heading "><style> [data-element-id="elm_mZeNJX1JKNFYrxL-cu_gAg"].zpelem-heading { border-radius:1px; } </style><h2
 class="zpheading zpheading-style-none zpheading-align-left " data-editor="true"><span style="color:inherit;"><span style="font-size:24px;">Digital transformation must be accelerated</span></span></h2></div>
<div data-element-id="elm_JpOM1ALT31d2sEEj16b3Lw" data-element-type="imagetext" class="zpelement zpelem-imagetext "><style> [data-element-id="elm_JpOM1ALT31d2sEEj16b3Lw"].zpelem-imagetext{ border-radius:1px; } </style><div data-size-tablet="" data-size-mobile="" data-align="left" data-tablet-image-separate="" data-mobile-image-separate="" class="zpimagetext-container zpimage-with-text-container zpimage-align-left zpimage-size-small zpimage-tablet-fallback-small zpimage-mobile-fallback-small hb-lightbox " data-lightbox-options="
            type:fullscreen,
            theme:dark"><figure role="none" class="zpimage-data-ref"><span class="zpimage-anchor" role="link" tabindex="0" aria-label="Open Lightbox" style="cursor:pointer;"><picture><img class="zpimage zpimage-style-none zpimage-space-none " src="/images/Notebook-1.jpg" size="small" data-lightbox="true" style="width:180px;"/></picture></span></figure><div class="zpimage-text zpimage-text-align-left " data-editor="true"><p><span style="font-size:16px;">On a regular month before the pandemic, our family's credit card bill contained a healthy mix of online and physical vendors. But in the last couple of months the list has been reduced almost exclusively to online retailers and our local supermarket. And we are not alone...</span></p><p><span style="font-size:16px;"><br></span></p><p><span style="color:inherit;font-size:16px;"></span></p><p><span style="font-size:16px;">The move to online sales has been increasing for years, but the pandemic has accelerated it. According to the U.S. Census Bureau estimated quarterly E-commerce retail sales, online retails sales growth rate for Q2 2020 is three times higher than that of previous quarters. Take Amazon for example, the <a href="https://s2.q4cdn.com/299287126/files/doc_financials/2020/q2/Q2-2020-Amazon-Earnings-Release.pdf">online giant reported</a> net sales were up by 40% in Q2 compared to same period last year.&nbsp;</span></p></div>
</div></div><div data-element-id="elm_1hi0bzYB6BE-JzI1m0ly7Q" data-element-type="image" class="zpelement zpelem-image "><style> [data-element-id="elm_1hi0bzYB6BE-JzI1m0ly7Q"].zpelem-image { border-radius:1px; } </style><div data-caption-color="" data-size-tablet="" data-size-mobile="" data-align="center" data-tablet-image-separate="" data-mobile-image-separate="" class="zpimage-container zpimage-align-center zpimage-size-large zpimage-tablet-fallback-large zpimage-mobile-fallback-large "><figure role="none" class="zpimage-data-ref"><a class="zpimage-anchor" href="https://www.marketplacepulse.com/stats/us-ecommerce/us-e-commerce-sales-22" target="_blank" title="Marketplace Pulse" rel="nofollow"><picture><img class="zpimage zpimage-style-none zpimage-space-none " src="/images/us-e-commerce-sales.png" size="large" alt="Online sales jumped post COVID arrival" style="width:1600px;"/></picture></a><figcaption class="zpimage-caption zpimage-caption-align-center"><span class="zpimage-caption-content">Chart Source: Marketplace Pulse</span></figcaption></figure></div>
</div><div data-element-id="elm_XLhFvWvwRZqVSbOczv18IQ" data-element-type="text" class="zpelement zpelem-text "><style> [data-element-id="elm_XLhFvWvwRZqVSbOczv18IQ"].zpelem-text { border-radius:1px; } </style><div class="zptext zptext-align-left " data-editor="true"><p><span style="color:inherit;font-size:16px;">On the other hand, sales at physical stores has been declining faster this quarter than previously expected. For example, the number of store closures so far in 2020 has been reported by <a href="https://www.forbes.com/sites/walterloeb/2020/07/06/9274-stores-are-closing-in-2020--its-the-pandemic-and-high-debt--more-will-close/#329b68b1729f">Forbes</a> to be over 13,000 compared to 5,700 in 2018.&nbsp;</span><br></p><p><span style="color:inherit;font-size:16px;"><br></span></p></div>
</div><div data-element-id="elm_b9820yol20gcR43rCzRV-w" data-element-type="image" class="zpelement zpelem-image "><style> [data-element-id="elm_b9820yol20gcR43rCzRV-w"].zpelem-image { border-radius:1px; } </style><div data-caption-color="" data-size-tablet="" data-size-mobile="" data-align="center" data-tablet-image-separate="" data-mobile-image-separate="" class="zpimage-container zpimage-align-center zpimage-size-small zpimage-tablet-fallback-small zpimage-mobile-fallback-small hb-lightbox " data-lightbox-options="
                type:fullscreen,
                theme:dark"><figure role="none" class="zpimage-data-ref"><span class="zpimage-anchor" role="link" tabindex="0" aria-label="Open Lightbox" style="cursor:pointer;"><picture><img class="zpimage zpimage-style-box zpimage-space-none " src="/images/Screen%20Shot%202020-08-23%20at%202.33.27%20PM.png" size="small" alt="Significant jump in store closures post COVID's arrival" data-lightbox="true" style="width:668px;"/></picture></span></figure></div>
</div><div data-element-id="elm_jzQ2Q-RNuRJSsPv1PH_iHw" data-element-type="text" class="zpelement zpelem-text "><style> [data-element-id="elm_jzQ2Q-RNuRJSsPv1PH_iHw"].zpelem-text { border-radius:1px; } </style><div class="zptext zptext-align-left " data-editor="true"><p><span style="color:inherit;"><span style="font-size:16px;"><br></span></span></p><p><span style="color:inherit;"><span style="font-size:16px;">The bottom line is that companies without a solid digital transformation plan need to create one right away. And, companies that have based their 5 or 10 year plan on historical consumer trends need to set more aggressive timelines. The era of measuring digital transformation projects in years has come to an abrupt end. The competitive edge belongs to nimble companies capable of adapting quickly. While consumer behavior might shift once the pandemic is over, it will never mirror the original pre-pandemic habits.</span></span><br></p></div>
</div><div data-element-id="elm_kP4AelPBVRjU8aLoIGerRQ" data-element-type="heading" class="zpelement zpelem-heading "><style> [data-element-id="elm_kP4AelPBVRjU8aLoIGerRQ"].zpelem-heading { border-radius:1px; } </style><h2
 class="zpheading zpheading-style-none zpheading-align-left " data-editor="true"><span style="color:inherit;"><span style="font-size:24px;">Conclusion</span></span></h2></div>
<div data-element-id="elm_fTJVTYPCvRRdqjO_7Fo_vA" data-element-type="text" class="zpelement zpelem-text "><style> [data-element-id="elm_fTJVTYPCvRRdqjO_7Fo_vA"].zpelem-text { border-radius:1px; } </style><div class="zptext zptext-align-left " data-editor="true"><p style="font-size:16px;"><span>The pandemic has changed the way we interact with the world. As a result, there have been significant shifts on the IT landscape. We explored the shifts in terms systems' reliability, employee retention, operation costs and digital transformation. But, that is just the tip of the iceberg. Companies must re-imagine their digital visions and strategies to cope with the new reality. There is an old English saying that seems specially relevant at this point:</span></p><p style="font-size:16px;"><span><br></span></p><blockquote style="font-size:16px;"><p style="text-align:center;"><span style="font-style:italic;">An hour may destroy what an age was building </span></p><p><span><br></span></p></blockquote><p style="font-size:16px;"><span>As we adapt to long term lockdowns, masks and other health restrictions, companies must find innovative solutions to push the status quo in order to survive. After all, nothing is permanent in tech beyond change itself.</span></p><p style="font-size:16px;"><span><br></span></p><p><span style="color:inherit;"></span></p><p style="font-size:16px;"><span>On a final personal note, I would like to thank all medical personnel that have been fighting the pandemic. They have been at the front lines of the COVID-19 battle, sometimes at great personal cost, to keep the rest of us safe. If you know someone that works at a hospital, doctor's office, lab, etc... take a couple of minutes from your busy life and thank them for their hard work.</span></p></div>
</div></div></div></div></div></div> ]]></content:encoded><pubDate>Sun, 06 Sep 2020 11:01:31 -0500</pubDate></item><item><title><![CDATA[Microservices Architecture transition readiness]]></title><link>https://www.bolbeck.com/blogs/post/microservicesreadiness</link><description><![CDATA[Microservices have the potential to transform and simplify the building and maintenance of software applications. However,, to achieve the potential benefits, teams must be ready to adopt new paradigms and new concepts. Is your team ready for this new architecture?]]></description><content:encoded><![CDATA[<div class="zpcontent-container blogpost-container "><div data-element-id="elm_wfkckbUiQK64ajC1_Px-pg" data-element-type="section" class="zpsection "><style type="text/css"></style><div class="zpcontainer-fluid zpcontainer"><div data-element-id="elm_PsvBb7SrTtOcr-EgMktH_w" data-element-type="row" class="zprow zprow-container zpalign-items- zpjustify-content- " data-equal-column=""><style type="text/css"></style><div data-element-id="elm_24fA51HwSTiFXsnTc-qscQ" data-element-type="column" class="zpelem-col zpcol-12 zpcol-md-12 zpcol-sm-12 zpalign-self- "><style type="text/css"></style><div data-element-id="elm_ZxLvbPu7SMmV4b8FZOj-gw" data-element-type="heading" class="zpelement zpelem-heading "><style> [data-element-id="elm_ZxLvbPu7SMmV4b8FZOj-gw"].zpelem-heading { border-radius:1px; } </style><h2
 class="zpheading zpheading-align-center " data-editor="true"><span style="color:inherit;">&nbsp;Is your team ready for Microservices?</span></h2></div>
<div data-element-id="elm_gDPGrXikC7EJ7UhNClgUcg" data-element-type="imagetext" class="zpelement zpelem-imagetext "><style> [data-element-id="elm_gDPGrXikC7EJ7UhNClgUcg"].zpelem-imagetext{ border-radius:1px; } </style><div data-size-tablet="" data-size-mobile="" data-align="left" data-tablet-image-separate="" data-mobile-image-separate="" class="zpimagetext-container zpimage-with-text-container zpimage-align-left zpimage-size-small zpimage-tablet-fallback-small zpimage-mobile-fallback-small hb-lightbox " data-lightbox-options="
            type:fullscreen,
            theme:dark"><figure role="none" class="zpimage-data-ref"><span class="zpimage-anchor" role="link" tabindex="0" aria-label="Open Lightbox" style="cursor:pointer;"><picture><img class="zpimage zpimage-style-none zpimage-space-none " src="/images/teamMeeting.jpg" size="small" alt="Team meeting taking place" data-lightbox="true" style="width:1197px;padding:0px;margin:0px;"/></picture></span></figure><div class="zpimage-text zpimage-text-align-left " data-editor="true"><p><span style="color:inherit;">Over the last few years, microservices have gained popularity as a way to improve team productivity while increasing application maintainability. The rallying cry behind this architecture has been led by internet giants that successfully migrated from a traditional monolithic application to thousands of microservices. But would this architecture benefit your team and make your products more flexible and nimble?</span><br></p></div>
</div></div><div data-element-id="elm_Zlmfn-avSuqttQSgXFUe3w" data-element-type="text" class="zpelement zpelem-text "><style> [data-element-id="elm_Zlmfn-avSuqttQSgXFUe3w"].zpelem-text { border-radius:1px; } </style><div class="zptext zptext-align-left " data-editor="true"><p><span style="color:inherit;font-size:20px;font-weight:700;">What are microservices?&nbsp;</span><br></p><p><span style="color:inherit;font-size:14px;">While there are several definitions of what exactly is a microservice architecture, the basic high level infrastructure is built around small pieces of code with just one responsibility and that perform a single task. Those individual pieces of code are combined to achieve more complex tasks.&nbsp;</span><span style="font-size:14px;color:inherit;">You can think of it as building blocks. While the individual building blocks cannot do much on their own, they can be used to build grand structures</span></p><p><span style="font-size:16px;color:inherit;"><br></span></p><p><span style="color:inherit;font-size:20px;font-weight:700;">How do microservices compare to traditional applications?</span><span style="font-size:16px;color:inherit;"><br></span></p><p><span style="color:inherit;">Traditional applications are built as a single code base. All the pieces are intertwined into a single package which, at a simplified high level, interacts with an end user on one side and the database on the other. Microservices applications are built using a multitude of small codebases that work together to deliver results to the end user. Each microservice could be connected to its own database to manage its own data, though they do not&nbsp;</span><span style="color:inherit;">need to be. For example, a simple number adding microservice would receive numbers as inputs and return a result without needing a database.</span></p></div>
</div><div data-element-id="elm_bbW3YRtFo4CdGCXkqnJJig" data-element-type="image" class="zpelement zpelem-image "><style> [data-element-id="elm_bbW3YRtFo4CdGCXkqnJJig"].zpelem-image { border-radius:1px; } </style><div data-caption-color="" data-size-tablet="" data-size-mobile="" data-align="center" data-tablet-image-separate="" data-mobile-image-separate="" class="zpimage-container zpimage-align-center zpimage-size-medium zpimage-tablet-fallback-medium zpimage-mobile-fallback-medium hb-lightbox " data-lightbox-options="
                type:fullscreen,
                theme:dark"><figure role="none" class="zpimage-data-ref"><span class="zpimage-anchor" role="link" tabindex="0" aria-label="Open Lightbox" style="cursor:pointer;"><picture><img class="zpimage zpimage-style-none zpimage-space-none " src="/images/TraditionalVSMicroservices.png" size="medium" alt="Traditional vs Microservices Architectures" data-lightbox="true" style="width:706px;"/></picture></span><figcaption class="zpimage-caption zpimage-caption-align-center"><span class="zpimage-caption-content">Figure 1 - Comparing architectures</span></figcaption></figure></div>
</div><div data-element-id="elm_VIGCr1p9YzPPrkEfe6hlbQ" data-element-type="text" class="zpelement zpelem-text "><style> [data-element-id="elm_VIGCr1p9YzPPrkEfe6hlbQ"].zpelem-text { border-radius:1px; } </style><div class="zptext zptext-align-left " data-editor="true"><p><span>The clear advantages and reasons why microservices are becoming so popular are:</span></p><p><span style="color:inherit;"></span></p><ul><li><p><span><strong><span>Maintainability</span></strong><span>: Maintaining small pieces of code with few, if any, dependencies is simpler than maintaining a large code base with lots of dependencies</span></span></p></li><li><p><span><strong><span>Reusability</span></strong><span>: Microservices are small pieces of code with a single purpose in life and can easily be reused in other projects</span></span></p></li><li><p><span><strong><span>Modularity</span></strong><span>: Since each service is independent of the rest of the application, it can de be upgraded and deployed independently </span></span></p></li><li><p><span><strong><span>Fault isolation</span></strong><span>: Properly designed microservices isolate issues from the rest of the application</span></span></p></li><li><p><span><strong><span>Scalability</span></strong><span>: Microservices are scaled independently without scaling the whole application</span></span></p></li><li><p><span><strong><span>Cost</span></strong><span>: As a corollary to the scalability of microservices, scaling small microservices&nbsp;requires less resources than scaling the whole application. This translates&nbsp;to lower costs, especially in the world of cloud computing, where costs are based on resource usage.</span></span></p></li></ul><div><br></div><div><div><span style="color:inherit;font-size:20px;font-weight:700;">Understanding microservices complexities</span></div></div><div><div><span style="color:inherit;font-size:14px;">Having explored microservices architecture and its potential benefits, how do you ensure that your team can quickly capitalize on these benefits? Unfortunately, a number of projects have attempted to move to this new paradigm only to waste months of work and thousands of dollars only to end up with a more complicated and&nbsp;</span><span style="color:inherit;">less manageable system. To avoid this, there are a number of concepts your team should understand to ensure they are properly prepared for the change.</span></div></div><div><span style="color:inherit;"><br></span></div><div><div><div><div><span style="color:inherit;font-size:16px;font-weight:700;">Modularity comes at a price</span><span style="color:inherit;"><br></span></div></div></div></div><div><span style="color:inherit;"><p>Managing usage of hundreds of microservices requires a very structured approach to services design, documentation and API versioning </p><ul><li><span style="font-size:14px;"><span style="font-weight:600;">Dependencies</span>: Service dependencies should be minimized. The architecture's advantages disappear as number of dependencies increase and each service can no longer be managed independently. Reusability, fault isolation and independent scalability benefits vanish as well</span></li><li><span style="font-size:14px;"><span style="font-weight:600;">Boundaries</span>: The ability to reuse services and combine them to build applications are great advantages of this architecture. But this can quickly devolve into an unmanageable mesh of interconnected services, where no one truly understands which services are being used where. This puts significant stress when trying to debug issues, upgrade services or even trace the lifecycle of data in an application. Instead, design your microservices to be naturally grouped by logical context boundaries (e.g. customer services, product services, etc...). Intercommunication within a boundary could occur normally while communication outside the boundary would be done using an intermediary, potentially a pub/sub queue for example</span></li></ul><div><br></div></span></div></div>
</div><div data-element-id="elm_z-R1wbFftXjAAQf6s03cDg" data-element-type="image" class="zpelement zpelem-image "><style> [data-element-id="elm_z-R1wbFftXjAAQf6s03cDg"].zpelem-image { border-radius:1px; } </style><div data-caption-color="" data-size-tablet="" data-size-mobile="" data-align="center" data-tablet-image-separate="" data-mobile-image-separate="" class="zpimage-container zpimage-align-center zpimage-size-original zpimage-tablet-fallback-original zpimage-mobile-fallback-original hb-lightbox " data-lightbox-options="
                type:fullscreen,
                theme:dark"><figure role="none" class="zpimage-data-ref"><span class="zpimage-anchor" role="link" tabindex="0" aria-label="Open Lightbox" style="cursor:pointer;"><picture><img class="zpimage zpimage-style-none zpimage-space-none " src="/images/MicroserviceInterconnection.png" size="original" data-lightbox="true"/></picture></span><figcaption class="zpimage-caption zpimage-caption-align-center"><span class="zpimage-caption-content">Figure 2 - Bounded microservices context design</span></figcaption></figure></div>
</div><div data-element-id="elm_o7LpQ1Hlss8Oc1SBwRUH1Q" data-element-type="text" class="zpelement zpelem-text "><style> [data-element-id="elm_o7LpQ1Hlss8Oc1SBwRUH1Q"].zpelem-text { border-radius:1px; } </style><div class="zptext zptext-align-left " data-editor="true"><p><span style="font-size:16px;color:inherit;font-weight:700;">Increased architecture complexity</span><br></p><p><span>While individual microservices are significantly less complex than a traditional application, the overall architecture of an application increases significantly in mainly two ways:</span></p><p><span style="color:inherit;"></span></p><ul><li><p><span><strong><span>Number of moving parts:</span></strong><span> Beyond the large number of microservices that need to be maintained, additional software modules are required to allow the microservices to work and perform reliably. In our simple high level overview in figure 1, we introduced a reverse proxy (to allow simple external communication with the external world) and queues (to allow messaging between services). But that is only the tip of the iceberg. We could also introduce logging/monitoring agents, API gateways, secret management and multiple databases among other things.</span></span></p></li><li><p><span><strong><span>Network traffic:</span></strong><span> In a traditional architecture, applications move data internally and unless the application itself fails, data is guaranteed to be processed. With microservices, that guarantee no longer exists. Communication between microservices is dependent on a network transport across potentially multiple network nodes. Since networks introduce both latency and failures, it is important for the microservices to be built with additional resiliency and the ability to withstand unreachable downstream services. Items like circuit breakers, retries and timeout management become critical for the application to function properly and manage errors gracefully</span></span></p></li></ul><div><br></div><div><div><span style="color:inherit;font-weight:700;"><span style="font-size:16px;">Debugging and monitoring</span></span><br></div></div><div><span style="color:inherit;"><p>In traditional applications, debugging/monitoring is straightforward and developers are intimately familiar with these processes. However, with microservices, debugging/monitoring workflows change significantly.</p><ul><li><p><strong>Debugging</strong>: When and error takes place in a distributed application, it is not as simple as attaching the debugger and stepping through the code: First you need to determine where the in the chain of microservice calls the fault occurred. Then, you need to bring up all the microservices involved in processing the relevant information. Finally you need to trace the data through each of those processes until you finally determine the root cause of the issue. </p></li><li><p><strong>Logging and Monitoring</strong>: In this new paradigm, it is no longer possible to have a single logging and monitoring point built into the application. Instead, each microservice writes its own logs and has different monitoring needs. Thus, the needs arises for external log aggregators and monitors.</p></li></ul><div><br></div><div><div><div><span style="color:inherit;font-size:20px;font-weight:700;">Preparing your team to move to Microservices</span><br></div></div></div><div><div><span style="color:inherit;"><p>As discussed above, there are significant differences between developing and maintaining a traditional monolith application and a microservices application. As you prepare to move your team into a microservices infrastructure it is important to ensure the team members are ready to make the switch.</p><ul><li><p><strong>Time:</strong> Do not underestimate the time requirements to get the team up to speed. Proper training and exposure to the new paradigm is very important to the project's success. There is a steep learning curve required before they can be as productive as they were in a traditional setting. Team members need to have enough time to switch their mindset to this new paradigm or they will eventually fall back to what they know and the project will end up with a large number of tightly coupled microservices which are hard to maintain and almost impossible to upgrade</p></li><li><p><strong>Need:</strong> Evaluate whether you really need a microservices architecture. The project needs to be big enough to warrant moving to this new methodology. Small to medium projects will probably not benefit as much because any gains from the new architecture will probably be wiped out by the increase in architecture complexity. Alternatively, check if the application components can be reused in other projects. In that scenario, microservices may indeed be the way to go</p></li><li><p><strong>Design:</strong> Schedule extra time to design the first set of microservices, ensure they are decoupled and self standing. Also, while the name microservices implies that services should be potentially as small as a function, this does not have to be the case. Study your environment, requirements and business needs. Would it be better to just make mini-services? Or services that are just bounded by a business function (eg: customers service, products service instead of customer kpi service or product inventory service). </p></li><li><p><strong>Automation:</strong> Embrace CI/CD and automation. Without automation to create/update your infrastructure and code base (everything as code), managing a large ecosystem quickly gets out hand. </p></li><li><p><strong>Tooling:</strong> Research and evaluate tools already available that could simplify your path. There is a large ecosystem of tools aimed squarely at the management of distributed applications. Below is a small sample of what is a rich and plentiful ecosystem. Which tools you use depends on your requirements&nbsp;</p></li></ul></span></div></div></span></div></div>
</div><div data-element-id="elm_gEh8jbam-igHUXETmhjTAw" data-element-type="image" class="zpelement zpelem-image "><style> [data-element-id="elm_gEh8jbam-igHUXETmhjTAw"].zpelem-image { border-radius:1px; } </style><div data-caption-color="" data-size-tablet="" data-size-mobile="" data-align="center" data-tablet-image-separate="" data-mobile-image-separate="" class="zpimage-container zpimage-align-center zpimage-size-original zpimage-tablet-fallback-original zpimage-mobile-fallback-original hb-lightbox " data-lightbox-options="
                type:fullscreen,
                theme:dark"><figure role="none" class="zpimage-data-ref"><span class="zpimage-anchor" role="link" tabindex="0" aria-label="Open Lightbox" style="cursor:pointer;"><picture><img class="zpimage zpimage-style-none zpimage-space-none " src="/images/MicrosystemToolset.png" size="original" alt="List of cloud services that help develop and manage microservices" data-lightbox="true"/></picture></span><figcaption class="zpimage-caption zpimage-caption-align-center"><span class="zpimage-caption-content">Figure 3 - Distributed systems ecosystem tools sample</span></figcaption></figure></div>
</div><div data-element-id="elm_0LmL26hjjMbVNC8w6Ngltw" data-element-type="text" class="zpelement zpelem-text "><style> [data-element-id="elm_0LmL26hjjMbVNC8w6Ngltw"].zpelem-text { border-radius:1px; } </style><div class="zptext zptext-align-left " data-editor="true"><p><span style="color:inherit;font-size:14px;">Microservices architecture opens a world of possibilities when it comes to large distributed systems. It provides a number of significant advantages over traditional monolith architecture. However, like most things in life, it does come with some significant baggage. While this is not a silver bullet, it is a compelling new tool in the software development arsenal.&nbsp;</span><br></p></div>
</div></div></div></div></div></div> ]]></content:encoded><pubDate>Mon, 24 Feb 2020 15:42:43 -0600</pubDate></item><item><title><![CDATA[A better approach to project documentation]]></title><link>https://www.bolbeck.com/blogs/post/A-better-approach-to-project-documentation</link><description><![CDATA[Using word processors to create and manage project documentation can cause a number of significant issues in the long run. Most of these issues can be solved by using Markdown and plain text documents.]]></description><content:encoded><![CDATA[<div class="zpcontent-container blogpost-container "><div data-element-id="elm_gFCSRvFlSWSlRknSOvEe8Q" data-element-type="section" class="zpsection "><style type="text/css"></style><div class="zpcontainer-fluid zpcontainer"><div data-element-id="elm_FJL2FyBkQxCMSURipUMTeg" data-element-type="row" class="zprow zprow-container zpalign-items- zpjustify-content- " data-equal-column=""><style type="text/css"></style><div data-element-id="elm_1XQETGhDQjK0TA5nbxdgcQ" data-element-type="column" class="zpelem-col zpcol-12 zpcol-md-12 zpcol-sm-12 zpalign-self- "><style type="text/css"> [data-element-id="elm_1XQETGhDQjK0TA5nbxdgcQ"].zpelem-col{ border-radius:1px; } </style><div data-element-id="elm_GFH1soqpTCmiwkZAxl2mUw" data-element-type="heading" class="zpelement zpelem-heading "><style> [data-element-id="elm_GFH1soqpTCmiwkZAxl2mUw"].zpelem-heading { border-radius:1px; } </style><h2
 class="zpheading zpheading-align-center " data-editor="true">Word processors spell trouble for your project documentation&nbsp;</h2></div>
<div data-element-id="elm_q6_t1M3pkdfVHQU3YWin-Q" data-element-type="imagetext" class="zpelement zpelem-imagetext "><style> [data-element-id="elm_q6_t1M3pkdfVHQU3YWin-Q"].zpelem-imagetext .zpimage-text, [data-element-id="elm_q6_t1M3pkdfVHQU3YWin-Q"].zpelem-imagetext .zpimage-text :is(h1,h2,h3,h4,h5,h6){ font-family:Noto Sans,sans-serif; font-weight:400; } [data-element-id="elm_q6_t1M3pkdfVHQU3YWin-Q"].zpelem-imagetext{ border-radius:1px; } </style><div data-size-tablet="" data-size-mobile="" data-align="left" data-tablet-image-separate="" data-mobile-image-separate="" class="zpimagetext-container zpimage-with-text-container zpimage-align-left zpimage-size-small zpimage-tablet-fallback-small zpimage-mobile-fallback-small hb-lightbox " data-lightbox-options="
            type:fullscreen,
            theme:dark"><figure role="none" class="zpimage-data-ref"><span class="zpimage-anchor" role="link" tabindex="0" aria-label="Open Lightbox" style="cursor:pointer;"><picture><img class="zpimage zpimage-style-roundcorner zpimage-space-none " src="/images/scrap-2049626_640.jpg" size="small" alt="Documentation pile" data-lightbox="true" style="height:101px;width:152px;"/></picture></span></figure><div class="zpimage-text zpimage-text-align-left " data-editor="true"><p><span style="color:inherit;"></span></p><p><span>Modern day word processors are as ubiquitous as sliced bread. People use them for everything from&nbsp;writing &nbsp;a receipt to a business plan. However these editors are also probably the worst choice when writing documentation. Before you call me crazy or seek to send me a politely worded note online, think about the last project you used a word processor like Microsoft Word to write the&nbsp; documentation. Do any of the scenarios below sound familiar?</span></p></div>
</div></div><div data-element-id="elm_E2K6xHk9awaQAB2f32zEvw" data-element-type="imageheadingtext" class="zpelement zpelem-imageheadingtext "><style> [data-element-id="elm_E2K6xHk9awaQAB2f32zEvw"].zpelem-imageheadingtext .zpimage-text, [data-element-id="elm_E2K6xHk9awaQAB2f32zEvw"].zpelem-imageheadingtext .zpimage-text :is(h1,h2,h3,h4,h5,h6){ font-family:Noto Sans,sans-serif; font-weight:400; } [data-element-id="elm_E2K6xHk9awaQAB2f32zEvw"].zpelem-imageheadingtext h3.zpimage-heading{ font-family:Noto Sans,sans-serif; font-weight:400; } [data-element-id="elm_E2K6xHk9awaQAB2f32zEvw"].zpelem-imageheadingtext{ border-radius:1px; } </style><div data-size-tablet="" data-size-mobile="" data-align="right" data-tablet-image-separate="" data-mobile-image-separate="" class="zpimageheadingtext-container zpimage-with-text-container zpimage-align-right zpimage-size-small zpimage-tablet-fallback-small zpimage-mobile-fallback-small hb-lightbox " data-lightbox-options="
            type:fullscreen,
            theme:dark"><figure role="none" class="zpimage-data-ref"><span class="zpimage-anchor" role="link" tabindex="0" aria-label="Open Lightbox" style="cursor:pointer;"><picture><img class="zpimage zpimage-style-roundcorner zpimage-space-none " src="/images/adult-1850268_640.jpg" data-src="/images/adult-1850268_640.jpg" size="small" data-lightbox="true" style="height:151.5px;width:101px;"/></picture></span></figure><div class="zpimage-headingtext-container"><h3 class="zpimage-heading zpimage-text-align-left " data-editor="true">Typical documentation issues</h3><div class="zpimage-text zpimage-text-align-left " data-editor="true"><p><span style="color:inherit;"></span></p><ul><li style="margin-bottom:3px;"><span style="font-weight:bold;">Keeping documentation up to date</span>: The team finishes the application and proudly delivers the related documentation. All is great in the world. Three releases later, a user opens the documentation and not even the screenshots match the application. This scenario is so frequent, the running &nbsp;joke is that the documentation is obsolete the moment it is written.&nbsp;</li><li style="margin-bottom:3px;"><span style="font-weight:bold;">Determining which version of the documentation to use</span>: The team updates and publishes all documents. However, someone notices that the new version does not include the latest changes and may in fact have reverted to an older version in some areas. The team realizes some members used v3 of the documents for their updates while others used the newer v4.</li><li style="margin-bottom:3px;"><span style="font-weight:bold;">Keeping track of the documentation master copy</span>: Documents that have more than one author sooner or later end up with multiple&nbsp;master&nbsp;copies. As people email documents, it is easy to loose track about who has the master. It is all fun and games until someone ends up drinking a few gallons of coffee at two AM, merging multiple documents and hoping that nobody notices how he skipped a whole section.</li><li style="margin-bottom:3px;"><span style="font-weight:bold;">The documentation graveyard</span>:&nbsp; It is unfortunately very common to be tasked to update an application just to find out all the documentation exists in an unmarked grave somewhere in a documentation graveyard on a corporate hard drive somewhere.&nbsp; When the documentation is eventually found (if it is found at all), trying to go through it feels like being Indiana Jones in the Temple of Doom.&nbsp; There are mummified code blocks chasing you, poisonous screenshot darts and overall evil forgotten library references that really make the hairs in the back of your hair stand. On the plus side, you get to feel like&nbsp;Indiana Jones, so I guess it is not all bad.</li><li><span style="font-weight:bold;">Formatting hell</span>: This is a typical scenario when trying to edit someone else's document. Surprisingly, the moment you add a simple bullet point, the formatting on the whole page just breaks. Little did you know the original author was a triple document processor black belt with a masters in nested tables. You hunker down, put on your helmet and hope for the best as you wade into the abyss of formatting hell.&nbsp;</li></ul></div>
</div></div></div><div data-element-id="elm_ZpI7Z5W5FM1dH52Nk_vbHw" data-element-type="imageheadingtext" class="zpelement zpelem-imageheadingtext "><style> [data-element-id="elm_ZpI7Z5W5FM1dH52Nk_vbHw"].zpelem-imageheadingtext .zpimage-text, [data-element-id="elm_ZpI7Z5W5FM1dH52Nk_vbHw"].zpelem-imageheadingtext .zpimage-text :is(h1,h2,h3,h4,h5,h6){ font-family:Noto Sans,sans-serif; font-weight:400; } [data-element-id="elm_ZpI7Z5W5FM1dH52Nk_vbHw"].zpelem-imageheadingtext h3.zpimage-heading{ font-family:Noto Sans,sans-serif; font-weight:400; } [data-element-id="elm_ZpI7Z5W5FM1dH52Nk_vbHw"].zpelem-imageheadingtext{ border-radius:1px; } </style><div data-size-tablet="" data-size-mobile="" data-align="right" data-tablet-image-separate="" data-mobile-image-separate="" class="zpimageheadingtext-container zpimage-with-text-container zpimage-align-right zpimage-size-small zpimage-tablet-fallback-small zpimage-mobile-fallback-small hb-lightbox " data-lightbox-options="
            type:fullscreen,
            theme:dark"><figure role="none" class="zpimage-data-ref"><span class="zpimage-anchor" role="link" tabindex="0" aria-label="Open Lightbox" style="cursor:pointer;"><picture><img class="zpimage zpimage-style-roundcorner zpimage-space-none " src="/images/manicure-1786315_640.jpg" data-src="/images/manicure-1786315_640.jpg" size="small" data-lightbox="true" style="height:101px;width:152.33px;"/></picture></span></figure><div class="zpimage-headingtext-container"><h3 class="zpimage-heading zpimage-text-align-left " data-editor="true">How word processors enable bad behaviors</h3><div class="zpimage-text zpimage-text-align-left " data-editor="true"><p style="margin-bottom:10px;">You are probably thinking: what does that have to do with word processors, these are all just bad processes. And you would be partially right, these are consequences of bad processes but the root cause is using the wrong tool for the job.&nbsp; While word processors are great for many tasks, they are not good for projects because:</p><p></p><p></p><ul><li style="margin-bottom:3px;"><span style="font-weight:bold;">They are meant to be used to write single documents</span>: You write a document save it and move on to the next one. There is no real concept of these documents being part of a project.</li><li style="margin-bottom:3px;"><span style="font-weight:bold;">They help us write shareable documents</span>. These documents are expected to be easy to share and email. Unfortunately, this means that very quickly there is no single source of truth.</li><li style="margin-bottom:3px;"><span style="font-weight:bold;">They provide no real way to track changes</span>. Yes, it is true that word processors have document change tracking. But, it is way too easy to accept all changes, disable the tracking or even copy the document . At that point all history is lost.</li><li style="margin-bottom:3px;"><span style="font-weight:bold;">They allow us to&nbsp; store files anywhere</span>.&nbsp;Users can store documents anywhere they want, and I mean anywhere: Laptop, server, usb drive, google drive. Finding the right files becomes...well...a bit of a challenge, if you find them at all.</li><li><span style="font-weight:bold;">They provide endless set of features</span>.&nbsp;These features are meant to make documents look great. However, does documentation need to look like a tribute to Michelangelo and his Sistine chapel? Not really. While they should look professional, they do not need to have&nbsp; flashy formatting. More importantly, the team maintaining the documents nowadays&nbsp; is the same team doing development on the project and does not have the time for endless formatting matches. They need a simple tool to write documentation as fast and accurately as possible.</li></ul></div>
</div></div></div><div data-element-id="elm_UCYT0sX1GWkbYfmsEFJt7g" data-element-type="imageheadingtext" class="zpelement zpelem-imageheadingtext "><style> [data-element-id="elm_UCYT0sX1GWkbYfmsEFJt7g"].zpelem-imageheadingtext .zpimage-text, [data-element-id="elm_UCYT0sX1GWkbYfmsEFJt7g"].zpelem-imageheadingtext .zpimage-text :is(h1,h2,h3,h4,h5,h6){ font-family:Noto Sans,sans-serif; font-weight:400; } [data-element-id="elm_UCYT0sX1GWkbYfmsEFJt7g"].zpelem-imageheadingtext h3.zpimage-heading{ font-family:Noto Sans,sans-serif; font-weight:400; } [data-element-id="elm_UCYT0sX1GWkbYfmsEFJt7g"].zpelem-imageheadingtext{ border-radius:1px; } </style><div data-size-tablet="" data-size-mobile="" data-align="left" data-tablet-image-separate="" data-mobile-image-separate="" class="zpimageheadingtext-container zpimage-with-text-container zpimage-align-left zpimage-size-small zpimage-tablet-fallback-small zpimage-mobile-fallback-small hb-lightbox " data-lightbox-options="
            type:fullscreen,
            theme:dark"><figure role="none" class="zpimage-data-ref"><span class="zpimage-anchor" role="link" tabindex="0" aria-label="Open Lightbox" style="cursor:pointer;"><picture><img class="zpimage zpimage-style-roundcorner zpimage-space-none " src="/images/office-381228_640.jpg" data-src="/images/office-381228_640.jpg" size="small" data-lightbox="true" style="height:136px;width:181.38px;"/></picture></span></figure><div class="zpimage-headingtext-container"><h3 class="zpimage-heading zpimage-text-align-left " data-editor="true">A Better way to handle documentation</h3><div class="zpimage-text zpimage-text-align-left " data-editor="true"><p style="margin-bottom:10px;"><span style="font-size:12px;">&nbsp;</span>Interestingly, these problems are the same problems that the software community&nbsp; solved to track the code for applications. Nowadays, code is located in a centralized location, all changes are tracked,&nbsp; there is one source of the truth, code editors have been optimized to maximize the developer's time and tools have been created to simplify the formatting.&nbsp; Can we apply those learnings to the documentation process?</p><p></p><p>This is where a new breed of text editors fits. They use a simplified text based toolset called Markdown to treat documents as if they were code files. The concept is simple: The author uses&nbsp;simple text to write content, character combinations to denote formatting cues and then have the editor automatically transform them into the correct visual formatting on demand. For example:, an author could simply type the '-' character to indicate an unordered list item (bullet point) . This and other examples can be seen in the table below and the <a href="https://www.markdownguide.org/basic-syntax">markdown guide</a> is a good reference for the full markdown syntax</p></div>
</div></div></div><div data-element-id="elm_7kSsZzC1--8BEtQ80wac8w" data-element-type="table" class="zpelement zpelem-table "><style type="text/css"> [data-element-id="elm_7kSsZzC1--8BEtQ80wac8w"].zpelem-table{ border-radius:1px; } [data-element-id="elm_7kSsZzC1--8BEtQ80wac8w"] .zptable{ width:100% !important; } </style><div class="zptable zptable-align-center zptable-header-light zptable-header-top zptable-cell-outline-on zptable-outline-on zptable-style- " data-width="100" data-editor="true"><br><table style="text-align:center;height:220px;"><tbody><tr style="height:15.5px;"><th style="text-align:center;width:33.3333%;"> <span style="font-size:12px;">Desired Formatting</span></th><th style="text-align:center;width:33.3333%;"><span style="font-size:12px;"> Markdown</span></th><th style="text-align:center;width:33.3333%;"><span style="font-size:12px;"> Generated formatted Text</span></th></tr><tr style="height:5.5px;"><td style="text-align:left;width:33.3333%;"> Bullet point</td><td style="text-align:left;width:33.3333%;"> - list item</td><td style="width:33.3333%;"><ul><li style="text-align:left;">list Item<br></li></ul></td></tr><tr style="height:21.5px;"><td style="text-align:left;width:33.3333%;"> Bold text</td><td style="text-align:left;width:33.3333%;"> **bold**</td><td style="text-align:left;width:33.3333%;"> bold</td></tr><tr style="height:40.5px;"><td style="text-align:left;width:33.3333%;"> Link</td><td style="text-align:left;width:33.3333%;"> [Bolbeck](Bolbeck.com)</td><td style="text-align:left;width:33.3333%;"> <a href="/" title="Bolbeck" rel="nofollow">Bolbeck</a><a href="/#Bolbeck" rel="nofollow"></a><a href="/" target="_blank"></a></td></tr><tr style="height:17.5px;"><td style="text-align:left;width:33.3333%;"> Heading 2&nbsp;</td><td style="text-align:left;width:33.3333%;"> ## Heading 2</td><td style="text-align:left;width:33.3333%;" class="zp-selected-cell"> <span style="font-size:18px;">Heading 2</span></td></tr></tbody></table></div>
</div><div data-element-id="elm_bb-SYlxf8Ma94Hag_Zzeow" data-element-type="text" class="zpelement zpelem-text "><style> [data-element-id="elm_bb-SYlxf8Ma94Hag_Zzeow"].zpelem-text { font-family:Noto Sans,sans-serif; font-weight:400; border-radius:1px; } [data-element-id="elm_bb-SYlxf8Ma94Hag_Zzeow"].zpelem-text :is(h1,h2,h3,h4,h5,h6){ font-family:Noto Sans,sans-serif; font-weight:400; } </style><div class="zptext zptext-align-left " data-editor="true"><p style="margin-bottom:3px;">The benefits of Markdown come from the fact that everything is plain text in the file, without all the extra hidden information that word processors put in the file. This means that:</p><ul><li style="margin-bottom:3px;"><span><span style="font-weight:bold;">Documents&nbsp;can be tracked</span> in the same change tracking system as the application code</span></li><li style="margin-bottom:3px;"><span><span style="font-weight:bold;">User can focus on writing</span> and let the system deal with the visual formatting</span></li><li style="margin-bottom:3px;"><span><span style="font-weight:bold;">Single official source of the documentation</span> is stored in the centralized management system</span></li><li style="margin-bottom:3px;"><span style="font-weight:bold;">All&nbsp;changes are tracked in history</span> all the way down to the individual change</li><li style="margin-bottom:3px;"><span><span style="font-weight:bold;">Most markdown editors enablefast, accurate writing</span>.&nbsp; Additionally, most modern code editors support markdown allowing seamless switching between code and documentation.</span></li><li style="margin-bottom:3px;"><span style="font-weight:bold;">Documentation is&nbsp;versioned alongside the code</span> making it simple to determine if the documentation has been updated with the latest code changes. It also simplifies the creation of release notes as every time a change is made to a document, a comment must be made in the central repository about the nature of the change.</li><li style="margin-bottom:10px;"><span><span style="font-weight:bold;">Easy conversion of markdown content into all major formats</span> like .doc or .pdf&nbsp; for external distribution is supported by most markdown editors.</span></li></ul><p style="margin-bottom:3px;"><span>While markdown is not the only text mark up solution ( <a href="http://asciidoc.org">AsciiDoc</a> is another one for example),&nbsp; it is the de facto industry standard. In fact, there are a number of popular Markdown editors like:</span></p><ul><li style="margin-bottom:3px;"><span><a href="https://bywordapp.com">Byword</a></span></li><li style="margin-bottom:3px;"><span><a href="https://ia.net/writer">iA Writer</a></span></li><li style="margin-bottom:10px;"><span><a href="https://www.mkdocs.org">MKDocs</a> (full documentation site generator)</span></li></ul><p></p><p>It is also supported by popular code editors like <a href="https://code.visualstudio.com">Visual Studio code</a> , <a href="https://atom.io">Atom</a> and <a href="https://www.jetbrains.com/pycharm/?fromMenu">Pycharm</a></p></div>
</div></div></div></div></div></div> ]]></content:encoded><pubDate>Mon, 26 Aug 2019 20:18:12 -0500</pubDate></item><item><title><![CDATA[Effective Objectives]]></title><link>https://www.bolbeck.com/blogs/post/effective-objectives</link><description><![CDATA[Smart Objectives are the key to success]]></description><content:encoded><![CDATA[<div class="zpcontent-container blogpost-container "><div data-element-id="elm_328R2xOeSuaBiJxopRMn5A==" data-element-type="section" class="zpsection "><style type="text/css"></style><div class="zpcontainer-fluid zpcontainer"><div data-element-id="elm_TD1F088xQ7uG3W4IeJQaNw==" data-element-type="row" class="zprow zprow-container zpalign-items- zpjustify-content- " data-equal-column=""><style type="text/css"></style><div data-element-id="elm_1q2H2RQDTgCauubyz8XULg==" data-element-type="column" class="zpelem-col zpcol-12 zpcol-md-12 zpcol-sm-12 zpalign-self- "><style type="text/css"></style><div data-element-id="elm_-6BxG0D6TOet3ZTYzti1tA==" data-element-type="heading" class="zpelement zpelem-heading "><style></style><h2
 class="zpheading zpheading-align-center " data-editor="true"><span style="color:inherit;">Creating a smart objective is the first step to a successful initiative</span><br></h2></div>
<div data-element-id="elm_Q3Do41APE7UWM4cFBoH5Cg" data-element-type="image" class="zpelement zpelem-image "><style></style><div data-caption-color="" data-size-tablet="" data-size-mobile="" data-align="center" data-tablet-image-separate="" data-mobile-image-separate="" class="zpimage-container zpimage-align-center zpimage-size-original zpimage-tablet-fallback-original zpimage-mobile-fallback-original hb-lightbox " data-lightbox-options="
                type:fullscreen,
                theme:dark"><figure role="none" class="zpimage-data-ref"><span class="zpimage-anchor" role="link" tabindex="0" aria-label="Open Lightbox" style="cursor:pointer;"><picture><img class="zpimage zpimage-style-none zpimage-space-none " src="/files/smart-objectives-smm.png" size="original" data-lightbox="true" style="height:370.09px;width:246px;"/></picture></span></figure></div>
</div></div></div></div></div></div> ]]></content:encoded><pubDate>Sun, 06 May 2018 22:06:11 -0500</pubDate></item></channel></rss>