ProductionSucks.html 16 KB

123456789101112131415161718192021222324252627282930313233343536373839404142434445464748495051525354555657585960616263646566676869707172737475767778798081828384858687888990919293949596979899100101102103104105106107108109110111112113114115116117118119120121122123124125126127128129130131132133134135136137138139140141142143144145146147148149150151152153154155156157158159160161162163164165166167168169170171172173174175176177178179180181182183184185186187188189190191192193194195196197198199200201202203204205206207208209210211212213214215216217218219220221222223224225226227228229230231232233234235236237238239240241242243244245246247248249250251252253254255256257258259260261262263264265266267268269270271272273274275276277278279280281282283284285286287288289290291292293294295296297298299300301302303304305
  1. <!DOCTYPE html>
  2. <!--[if IE 8]><html class="no-js lt-ie9" lang="en" > <![endif]-->
  3. <!--[if gt IE 8]><!--> <html class="no-js" lang="en" > <!--<![endif]-->
  4. <head>
  5. <meta charset="utf-8">
  6. <meta name="viewport" content="width=device-width, initial-scale=1.0">
  7. <title>Why your production sucks and how to fix it &mdash; baangt 1.1.1 documentation</title>
  8. <script type="text/javascript" src="../_static/js/modernizr.min.js"></script>
  9. <script type="text/javascript" id="documentation_options" data-url_root="../" src="../_static/documentation_options.js"></script>
  10. <script type="text/javascript" src="../_static/jquery.js"></script>
  11. <script type="text/javascript" src="../_static/underscore.js"></script>
  12. <script type="text/javascript" src="../_static/doctools.js"></script>
  13. <script type="text/javascript" src="../_static/language_data.js"></script>
  14. <script type="text/javascript" src="../_static/js/theme.js"></script>
  15. <link rel="stylesheet" href="../_static/css/theme.css" type="text/css" />
  16. <link rel="stylesheet" href="../_static/pygments.css" type="text/css" />
  17. <link rel="stylesheet" href="../_static/theme_overrides.css" type="text/css" />
  18. <link rel="index" title="Index" href="../genindex.html" />
  19. <link rel="search" title="Search" href="../search.html" />
  20. <link rel="next" title="Beware of data generators" href="DataDoctor.html" />
  21. <link rel="prev" title="Not Exactly Documentation" href="Articles.html" />
  22. </head>
  23. <body class="wy-body-for-nav">
  24. <div class="wy-grid-for-nav">
  25. <nav data-toggle="wy-nav-shift" class="wy-nav-side">
  26. <div class="wy-side-scroll">
  27. <div class="wy-side-nav-search" >
  28. <a href="../index.html" class="icon icon-home"> baangt
  29. </a>
  30. <div role="search">
  31. <form id="rtd-search-form" class="wy-form" action="../search.html" method="get">
  32. <input type="text" name="q" placeholder="Search docs" />
  33. <input type="hidden" name="check_keywords" value="yes" />
  34. <input type="hidden" name="area" value="default" />
  35. </form>
  36. </div>
  37. </div>
  38. <div class="wy-menu wy-menu-vertical" data-spy="affix" role="navigation" aria-label="main navigation">
  39. <p class="caption"><span class="caption-text">Contents:</span></p>
  40. <ul class="current">
  41. <li class="toctree-l1"><a class="reference internal" href="../Installation.html"> Installation</a></li>
  42. <li class="toctree-l1"><a class="reference internal" href="../OverviewUsage.html"> Overview</a></li>
  43. <li class="toctree-l1"><a class="reference internal" href="../simpleExample.html"> First Steps</a></li>
  44. <li class="toctree-l1"><a class="reference internal" href="../Structure.html"> Structure</a></li>
  45. <li class="toctree-l1"><a class="reference internal" href="../ParametersConfigFile.html"> Parameters</a></li>
  46. <li class="toctree-l1"><a class="reference internal" href="../SimpleAPI.html"> First API Test</a></li>
  47. <li class="toctree-l1"><a class="reference internal" href="../TestTypes.html"> Types of Tests</a></li>
  48. <li class="toctree-l1"><a class="reference internal" href="../DataFile.html"> Data file</a></li>
  49. <li class="toctree-l1"><a class="reference internal" href="../SaveResults2Database.html"> Results in Database</a></li>
  50. <li class="toctree-l1"><a class="reference internal" href="../HistoryAndReasons.html"> History</a></li>
  51. <li class="toctree-l1"><a class="reference internal" href="../contributors.html"> Contributions</a></li>
  52. <li class="toctree-l1"><a class="reference internal" href="../changelog.html"> Changelog</a></li>
  53. <li class="toctree-l1"><a class="reference internal" href="../PlannedFeatures.html"> Planned Features</a></li>
  54. <li class="toctree-l1"><a class="reference internal" href="../BrowserDrivers.html"> Browser Drivers</a></li>
  55. <li class="toctree-l1"><a class="reference internal" href="../Variables.html"> Variables</a></li>
  56. <li class="toctree-l1"><a class="reference internal" href="../SendStatistics.html"> Results</a></li>
  57. <li class="toctree-l1"><a class="reference internal" href="../Datagenerator.html">DataGenerator</a></li>
  58. <li class="toctree-l1"><a class="reference internal" href="../Datagenerator.html#input-file">Input File</a></li>
  59. <li class="toctree-l1"><a class="reference internal" href="../Datagenerator.html#data-type">Data Type</a></li>
  60. <li class="toctree-l1"><a class="reference internal" href="../Datagenerator.html#all-data-types-format">All Data Types Format</a></li>
  61. <li class="toctree-l1"><a class="reference internal" href="../Developer.html"> For Developers</a></li>
  62. <li class="toctree-l1"><a class="reference internal" href="../baangt-Plugin.html">What is a baangt-plugin</a></li>
  63. <li class="toctree-l1"><a class="reference internal" href="../baangt-Plugin.html#how-to-make-a-baangt-plugin">how to make a baangt-plugin</a></li>
  64. <li class="toctree-l1"><a class="reference internal" href="../baangt-Plugin.html#how-the-baangt-plugin-work">how the baangt-plugin work</a></li>
  65. <li class="toctree-l1"><a class="reference internal" href="../baangt-Plugin.html#how-to-replace-the-existing-plugin-by-your-own-one">how to replace the existing plugin by your own one</a></li>
  66. <li class="toctree-l1 current"><a class="reference internal" href="Articles.html"> :subheader: Articles</a><ul class="current">
  67. <li class="toctree-l2 current"><a class="current reference internal" href="#"> Production sucks</a></li>
  68. <li class="toctree-l2"><a class="reference internal" href="DataDoctor.html"> Test data rulez</a></li>
  69. <li class="toctree-l2"><a class="reference internal" href="BaangtIndustries.html"> Industries 4 baangt</a></li>
  70. <li class="toctree-l2"><a class="reference internal" href="StopTesting.html"> Stop testing!</a></li>
  71. <li class="toctree-l2"><a class="reference internal" href="AgileWorkflowIntegration.html"> bAanGtILE</a></li>
  72. <li class="toctree-l2"><a class="reference internal" href="BugSoup.html"> BugSoup</a></li>
  73. <li class="toctree-l2"><a class="reference internal" href="AsynchronousAndCanonTests.html"> Canons, that are not DSLR nor music</a></li>
  74. <li class="toctree-l2"><a class="reference internal" href="SeleniumGridV4WithBaangt.html"> SeleniumGridV4</a></li>
  75. </ul>
  76. </li>
  77. <li class="toctree-l1"><a class="reference external" href="http://www.baangt.org"> Web</a></li>
  78. </ul>
  79. <p class="caption"><span class="caption-text">Autodocs:</span></p>
  80. <ul>
  81. <li class="toctree-l1"><a class="reference internal" href="../docs/baangt.base.html">Autodocs</a></li>
  82. <li class="toctree-l1"><a class="reference internal" href="../docs/modules.html">Modules</a></li>
  83. </ul>
  84. </div>
  85. </div>
  86. </nav>
  87. <section data-toggle="wy-nav-shift" class="wy-nav-content-wrap">
  88. <nav class="wy-nav-top" aria-label="top navigation">
  89. <i data-toggle="wy-nav-top" class="fa fa-bars"></i>
  90. <a href="../index.html">baangt</a>
  91. </nav>
  92. <div class="wy-nav-content">
  93. <div class="rst-content">
  94. <div role="navigation" aria-label="breadcrumbs navigation">
  95. <ul class="wy-breadcrumbs">
  96. <li><a href="../index.html">Docs</a> &raquo;</li>
  97. <li><a href="Articles.html">Not Exactly Documentation</a> &raquo;</li>
  98. <li>Why your production sucks and how to fix it</li>
  99. <li class="wy-breadcrumbs-aside">
  100. <a href="../_sources/articles/ProductionSucks.rst.txt" rel="nofollow"> View page source</a>
  101. </li>
  102. </ul>
  103. <hr/>
  104. </div>
  105. <div role="main" class="document" itemscope="itemscope" itemtype="http://schema.org/Article">
  106. <div itemprop="articleBody">
  107. <div class="section" id="why-your-production-sucks-and-how-to-fix-it">
  108. <h1>Why your production sucks and how to fix it<a class="headerlink" href="#why-your-production-sucks-and-how-to-fix-it" title="Permalink to this headline">¶</a></h1>
  109. <p>Sounds familiar? When you sort your defects/incident list for the next sprint, you abandon priority concept (1, 2, 3)
  110. and start experimenting with negative numbers? -1, -2 -3 where -3 are the ones where you’ve to report to the CIO every day? And your sprint capacity is full before you even reach priority 0?</p>
  111. <p>Each day/week when you’re supposed to ship the most important hotfixes to production you suddenly beome religious and pray
  112. intensively for 30 minutes? But the universe doesn’t listen to you and 30 Minutes after deployment hell breaks loose
  113. because you again bricked the production?</p>
  114. <p>First of all: <strong>Breathe!</strong> Help is on the way!</p>
  115. <p>Changing your religion will not improve your situation (unless you go “all-in”,
  116. start as a full-time monk and leave software development forever.). <strong>You are not alone</strong>.
  117. I’d guess, that at any given second of the day at least 1000 people pray for good deployment results or are
  118. at least worried about the current deployment (and the next. And the next.). It’s
  119. a phenomenon that we had already in the 1990s, just the impact back then was never as huge as it is today. There existed
  120. manual fallback processes in all companies. Nobody “needed” the IT. If you had a bad deployment and needed to rollback and it
  121. took one week to do so, it wasn’t the end of the world, the company or you.</p>
  122. <p>Today is different. I’m pretty sure even if facebook would go down for a week, the world would still turn. And facebook
  123. wouldn’t cease to exist either. But I’m not so sure about a few 1000 people, who’d be responsible for the mess.</p>
  124. <p>Well, let’s not focus on what could happen (and usually happens because Murphy’s a very special friend to many people in
  125. IT), but rather see, what we can do about it.</p>
  126. <blockquote>
  127. <div><p>We all know, that there is test automation, which should theoretically give us enough insight on lower stages to prevent faulty deployments ever reaching production. Bugs get costly (monetary as well as regarding our reputation) once they reach our partners (customers more than suppliers).</p>
  128. </div></blockquote>
  129. <p>Tricentis Tosca is the market leader and has been around for a while. So have the solutions from
  130. HP and many others. As good as these tools are, in order to gain value from them you better follow their suggested processes,
  131. none of which would be suitable for your business department or your developers. So both parties, who are in pain when deployments
  132. don’t work have no direct interface to the tool, that should help them. There are test-engineers, test-planners, test-designers,
  133. test-executors and most probably repelled DevOps involved in automation testing, but not the business department and not
  134. the developers. That’s critical from my point of view, because those processes build a barrier, that prohibits automation testing
  135. to fulfill it’s potential in today´s organizations. It’s not fast nor efficient to artificially build an additional step
  136. between business and their developers.</p>
  137. <p>Enter: <code class="docutils literal notranslate"><span class="pre">baangt</span></code>. Leightweight, fast, simple. Easy to use for business deparments, fast and flexible for developers (they
  138. even get to play around with beloved JSON-Files) and mature enough for established Delivery organizations to fulfill their
  139. needs of reporting, integration, test coverage statistics and much more.</p>
  140. <p>Before you try every sect on the planet give <code class="docutils literal notranslate"><span class="pre">baangt</span></code> a try. If set-up and used properly, this tool has a good chance
  141. to make your life easier - no matter in which role you are right now.</p>
  142. <p>Great. You’re still reading. Before you try to convince your manager about the tool, let’s see some common resistance patterns
  143. and how to overcome them.</p>
  144. <table class="docutils align-default">
  145. <colgroup>
  146. <col style="width: 50%" />
  147. <col style="width: 50%" />
  148. </colgroup>
  149. <tbody>
  150. <tr class="row-odd"><td><p>Resistance</p></td>
  151. <td><p>Assistance</p></td>
  152. </tr>
  153. <tr class="row-even"><td><p><code class="docutils literal notranslate"><span class="pre">Sunken</span> <span class="pre">Costs</span></code>. We just renewed the license for &lt;whatever&gt;. I’ll look like a fool when we’ve a better tool for free!</p></td>
  154. <td><p><code class="docutils literal notranslate"><span class="pre">baangt</span></code> can be integrated via API-Interface to all “professional” software. You don’t need to kick out all your automation people. Get familiar with <code class="docutils literal notranslate"><span class="pre">baangt</span></code> and see, how you like it. Whenever your next renewal period for the license of the professional software comes up, you might even have an additional fact for reasoning</p></td>
  155. </tr>
  156. <tr class="row-odd"><td><p><code class="docutils literal notranslate"><span class="pre">Security</span> <span class="pre">Audit</span></code>. You know, how hard it is to convince people from internal IT department to deploy a new piece of software</p></td>
  157. <td><p><code class="docutils literal notranslate"><span class="pre">baangt</span></code> is open source and has little dependencies. <code class="docutils literal notranslate"><span class="pre">baangt</span></code> can be run in a Docker environment for execution, while testcase management happens in Excel. Shouldn’t take them too long to approve <code class="docutils literal notranslate"><span class="pre">baangt</span></code> because they can review every aspect of the application</p></td>
  158. </tr>
  159. <tr class="row-even"><td><p><code class="docutils literal notranslate"><span class="pre">not</span> <span class="pre">another</span> <span class="pre">tool</span></code>. We’ve already too much on our plate with the whole CD/CI-Stuff, K8s, Eclipse, IntelliJ and everything else!</p></td>
  160. <td><p>Exactly. One more reason to bring around simple, reliable test results. How else will we ever know, whether the latest build will crash production or not?</p></td>
  161. </tr>
  162. <tr class="row-odd"><td><p><code class="docutils literal notranslate"><span class="pre">Test</span> <span class="pre">engineers</span> <span class="pre">can</span> <span class="pre">never</span> <span class="pre">be</span> <span class="pre">replaced</span> <span class="pre">by</span> <span class="pre">people</span> <span class="pre">from</span> <span class="pre">business</span> <span class="pre">department</span></code>.</p></td>
  163. <td><p>If you give them a simple enough tool (how about an Excel sheet?) and the outlook to receive a more reliable production stage, you’d be amazed to what lengths those people from business department can go! Just give it a try - it doesn’t cost anything.</p></td>
  164. </tr>
  165. </tbody>
  166. </table>
  167. </div>
  168. </div>
  169. </div>
  170. <footer>
  171. <div class="rst-footer-buttons" role="navigation" aria-label="footer navigation">
  172. <a href="DataDoctor.html" class="btn btn-neutral float-right" title="Beware of data generators" accesskey="n" rel="next">Next <span class="fa fa-arrow-circle-right"></span></a>
  173. <a href="Articles.html" class="btn btn-neutral float-left" title="Not Exactly Documentation" accesskey="p" rel="prev"><span class="fa fa-arrow-circle-left"></span> Previous</a>
  174. </div>
  175. <hr/>
  176. <div role="contentinfo">
  177. <p>
  178. &copy; Copyright 2020, Bernhard Buhl
  179. </p>
  180. </div>
  181. Built with <a href="http://sphinx-doc.org/">Sphinx</a> using a <a href="https://github.com/rtfd/sphinx_rtd_theme">theme</a> provided by <a href="https://readthedocs.org">Read the Docs</a>.
  182. </footer>
  183. </div>
  184. </div>
  185. </section>
  186. </div>
  187. <script type="text/javascript">
  188. jQuery(function () {
  189. SphinxRtdTheme.Navigation.enable(true);
  190. });
  191. </script>
  192. </body>
  193. </html>