<?xml version='1.0' encoding='UTF-8'?><?xml-stylesheet href="http://www.blogger.com/styles/atom.css" type="text/css"?><feed xmlns='http://www.w3.org/2005/Atom' xmlns:openSearch='http://a9.com/-/spec/opensearchrss/1.0/' xmlns:blogger='http://schemas.google.com/blogger/2008' xmlns:georss='http://www.georss.org/georss' xmlns:gd="http://schemas.google.com/g/2005" xmlns:thr='http://purl.org/syndication/thread/1.0'><id>tag:blogger.com,1999:blog-33508082</id><updated>2024-10-24T16:36:33.820-04:00</updated><category term="rational"/><category term="HATS"/><category term="IBM"/><category term="WebSphere"/><category term="Lotus Notes"/><category term="RTC"/><category term="domino"/><category term="WAS"/><category term="linux"/><category term="mainframe"/><category term="DevOps"/><category term="Portal"/><category term="java"/><category term="teamconcert"/><category term="Lotus"/><category term="iSeries"/><category term="agile"/><category term="ibminnovate"/><category term="AS/400"/><category term="POWER7"/><category term="WAS7"/><category term="systemz"/><category term="Lotus Connections"/><category term="LotusSphere"/><category term="aix"/><category term="IE7"/><category term="RAD"/><category term="RSA"/><category term="rdz"/><category term="systemi"/><category term="ubuntu"/><category term="Quickr"/><category term="Blackberry"/><category term="Vista"/><category term="blogging"/><category term="jazz"/><category term="portlet factory"/><category term="rsdc"/><category term="vmware"/><category term="HostOnDemand"/><category term="IBMInterConnect"/><category term="apache"/><category term="clm"/><category term="css"/><category term="curve"/><category term="eclipse"/><category term="fedora"/><category term="firefox"/><category term="security"/><category term="strongback"/><category term="subversion"/><category term="webdesign"/><category term="wsadmin"/><category term="HODS"/><category term="IBMi"/><category term="IE6"/><category term="Microsoft"/><category term="RQM"/><category term="Requirements"/><category term="SOA"/><category term="clearcase"/><category term="db2"/><category term="dojo"/><category term="ihs"/><category term="junit"/><category term="jython"/><category term="opensuse"/><category term="pvu"/><category term="sametime"/><category term="social software"/><category term="spring"/><category term="storage"/><category term="web services"/><category term="web standards"/><category term="web2.0"/><category term="z10"/><category term="#Agile"/><category term="#DevOps"/><category term="#IBMInterConnect"/><category term=".NET"/><category term="8.5.1"/><category term="ANT"/><category term="Automation"/><category term="BI"/><category term="C/C++"/><category term="CI"/><category term="COBOL"/><category term="CXF"/><category term="Geronimo"/><category term="GoToMeeting"/><category term="Google"/><category term="Google Apps"/><category term="Governance"/><category term="IBMEnterprise POWER"/><category term="IPL"/><category term="JEE5"/><category term="Java javaone"/><category term="JavaEE"/><category term="Linux hackers spam"/><category term="Notes"/><category term="OSLC"/><category term="OpenNTF"/><category term="Outlook"/><category term="QShell"/><category term="RDP"/><category term="RFT"/><category term="RRC"/><category term="Rational RSA"/><category term="ShiftLeft"/><category term="T61"/><category term="Tomcat"/><category term="VisualStudio"/><category term="WDSC"/><category term="WTF"/><category term="XSS"/><category term="ajax"/><category term="antivirus"/><category term="application servers"/><category term="appscan"/><category term="beta"/><category term="bold"/><category term="books"/><category term="browsers"/><category term="bug"/><category term="buildforge"/><category term="chrome"/><category term="cisco"/><category term="cloud"/><category term="clouds"/><category term="collaboration"/><category term="commonstore"/><category term="cool"/><category term="craftsmanship"/><category term="daos"/><category term="dashboard framework"/><category term="debugging"/><category term="doors"/><category term="download director"/><category term="ediscovery"/><category term="egl"/><category term="ejb"/><category term="enterprise-collaboration"/><category term="exchange"/><category term="free"/><category term="freelance"/><category term="fun"/><category term="hats iseries"/><category term="heap"/><category term="html"/><category term="i/os"/><category term="ibm connections"/><category term="ibmz"/><category term="innovate"/><category term="inotes"/><category term="java javafx javaone"/><category term="javaone"/><category term="jee6"/><category term="jobs"/><category term="jquery"/><category term="lotuslive"/><category term="mac"/><category term="mentoring"/><category term="microformats"/><category term="mobile"/><category term="optimus solutions"/><category term="palm"/><category term="pearl"/><category term="performance tuning"/><category term="productivity"/><category term="proxy"/><category term="quality"/><category term="quicker"/><category term="redhat"/><category term="regex"/><category term="salesforce.com"/><category term="scripting"/><category term="scrum"/><category term="sharepoint"/><category term="skype"/><category term="spam"/><category term="struts2"/><category term="svn"/><category term="symphony"/><category term="trend"/><category term="treo"/><category term="unix"/><category term="v6r1"/><category term="vacation"/><category term="vim"/><category term="watchfire"/><category term="windows7"/><category term="wpsconfig"/><category term="xmlaccess"/><category term="zos IBMInnovate"/><title type='text'>STRONGblog</title><subtitle type='html'>Thought leadership for DevOps professionals</subtitle><link rel='http://schemas.google.com/g/2005#feed' type='application/atom+xml' href='http://blog.strongbackconsulting.com/feeds/posts/default'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/33508082/posts/default?redirect=false'/><link rel='alternate' type='text/html' href='http://blog.strongbackconsulting.com/'/><link rel='hub' href='http://pubsubhubbub.appspot.com/'/><link rel='next' type='application/atom+xml' href='http://www.blogger.com/feeds/33508082/posts/default?start-index=26&amp;max-results=25&amp;redirect=false'/><author><name>Kenny Smith</name><uri>http://www.blogger.com/profile/08968656381337712680</uri><email>noreply@blogger.com</email><gd:image rel='http://schemas.google.com/g/2005#thumbnail' width='32' height='32' src='//blogger.googleusercontent.com/img/b/R29vZ2xl/AVvXsEjR5bvH6ZtffdWwTbTUx2GRzG5X_tvhf_L_hqlOwZ4yhsm1yJIaR4N9G1Wp6-BPgBOI9PRWhzd9Xk-6M5fBV3_zenTs9OllrrmnUSxnTvrFjiO69y4-nnEZWee3mldqIbY/s220/KennyAvatar.jpg'/></author><generator version='7.00' uri='http://www.blogger.com'>Blogger</generator><openSearch:totalResults>316</openSearch:totalResults><openSearch:startIndex>1</openSearch:startIndex><openSearch:itemsPerPage>25</openSearch:itemsPerPage><entry><id>tag:blogger.com,1999:blog-33508082.post-2415170037557796944</id><published>2016-07-11T15:34:00.004-04:00</published><updated>2016-07-11T15:34:39.513-04:00</updated><category scheme="http://www.blogger.com/atom/ns#" term="DevOps"/><category scheme="http://www.blogger.com/atom/ns#" term="ibmz"/><category scheme="http://www.blogger.com/atom/ns#" term="rdz"/><title type='text'>5 Tips to Accelerate Adoption of Rational Developer for System z</title><content type='html'>&lt;h3&gt;
&lt;span style=&quot;font-family: Georgia, Times New Roman, serif;&quot;&gt;Reasoning&lt;/span&gt;&lt;/h3&gt;
&lt;div&gt;
&lt;span style=&quot;font-family: Georgia, Times New Roman, serif;&quot;&gt;We&#39;ve been involved in several large scale deployments of Rational Developer for System z. The product is an incredible piece of software that can drastically improve software development productivity. It also will drastically change your development organization&#39;s culture (usually for the better). However to have the best culture change, you need to be prepared to implement the product correctly. We&#39;ve seen it implemented poorly, and have cleaned up after the product was improperly installed or the students were insufficiently instructed. If you follow these five tips, you&#39;ll have about a 97% chance of a&amp;nbsp;successful&amp;nbsp;adoption.&amp;nbsp;&lt;/span&gt;&lt;/div&gt;
&lt;h3&gt;
&lt;span style=&quot;font-family: Georgia, Times New Roman, serif;&quot;&gt;1) Automate Deployment of the client to the Desktop&lt;/span&gt;&lt;/h3&gt;
&lt;h3&gt;
&lt;span style=&quot;font-family: Georgia, Times New Roman, serif; font-size: small;&quot;&gt;&lt;span style=&quot;font-weight: normal;&quot;&gt;Rational Developer for System z is a large, complex tool. Most mainframe organizations (banks, insurance companies,&amp;nbsp;financial&amp;nbsp;institutions, governments, etc) often need to restrict what software is installed on the developer&#39;s workstation. Fortunately, this can all be automated and scripted. Further, it can be combined with other IBM tools (such as IBM DataStudio), as well as the current fix packs in one single package using the &lt;a href=&quot;http://blog.strongbackconsulting.com/2015/08/ibm-has-extensive-catalog-of-desktop.html&quot; target=&quot;_blank&quot;&gt;Packaging Utility&lt;/a&gt;. Once packaged, it can be installed using scripted methods and automated using tools such as Microsoft SMS, or IBM Endpoint Manager (now BigFix).&amp;nbsp;&lt;/span&gt;&lt;/span&gt;&lt;br /&gt;
&lt;span style=&quot;font-family: Georgia, Times New Roman, serif; font-size: small;&quot;&gt;&lt;span style=&quot;font-weight: normal;&quot;&gt;&lt;br /&gt;&lt;/span&gt;&lt;/span&gt;
&lt;span style=&quot;font-family: Georgia, Times New Roman, serif; font-size: small;&quot;&gt;&lt;span style=&quot;font-weight: normal;&quot;&gt;Even before you begin the packaging, you&#39;ll need to spend time to understand all the tools that the developers currently interact will, or will need to&amp;nbsp;interact&amp;nbsp;with after&amp;nbsp;it is&amp;nbsp;deployed. This&amp;nbsp;may include any of the following:&lt;/span&gt;&lt;/span&gt;&lt;br /&gt;
&lt;br /&gt;
&lt;ul&gt;
&lt;li&gt;&lt;span style=&quot;font-family: Georgia, Times New Roman, serif; font-size: small;&quot;&gt;&lt;span style=&quot;font-weight: normal;&quot;&gt;Code validation (JCL check)&lt;/span&gt;&lt;/span&gt;&lt;/li&gt;
&lt;li&gt;&lt;span style=&quot;font-family: Georgia, Times New Roman, serif; font-size: small;&quot;&gt;&lt;span style=&quot;font-weight: normal;&quot;&gt;3rd party debuggers (i.e. Compuware tools)&lt;/span&gt;&lt;/span&gt;&lt;/li&gt;
&lt;li&gt;&lt;span style=&quot;font-family: Georgia, Times New Roman, serif; font-size: small;&quot;&gt;&lt;span style=&quot;font-weight: normal;&quot;&gt;Source Code Management (i.e. CA Endeavor, SCLM, ChangeMan, Panvalet, Team Concert)&lt;/span&gt;&lt;/span&gt;&lt;/li&gt;
&lt;li&gt;&lt;span style=&quot;font-family: Georgia, Times New Roman, serif; font-size: small;&quot;&gt;&lt;span style=&quot;font-weight: normal;&quot;&gt;Problem determination tools&lt;/span&gt;&lt;/span&gt;&lt;/li&gt;
&lt;li&gt;&lt;span style=&quot;font-family: Georgia, Times New Roman, serif; font-size: small;&quot;&gt;&lt;span style=&quot;font-weight: normal;&quot;&gt;File Manager or VSAM related tools&lt;/span&gt;&lt;/span&gt;&lt;/li&gt;
&lt;li&gt;&lt;span style=&quot;font-family: Georgia, &amp;quot;Times New Roman&amp;quot;, serif; font-size: small; font-weight: normal;&quot;&gt;Java/JZOS&lt;/span&gt;&lt;/li&gt;
&lt;li&gt;&lt;span style=&quot;font-family: Georgia, Times New Roman, serif; font-size: small;&quot;&gt;&lt;span style=&quot;font-weight: normal;&quot;&gt;CICS Explorer&lt;/span&gt;&lt;/span&gt;&lt;/li&gt;
&lt;li&gt;&lt;span style=&quot;font-family: Georgia, Times New Roman, serif; font-size: small;&quot;&gt;&lt;span style=&quot;font-weight: normal;&quot;&gt;Data Studio&lt;/span&gt;&lt;/span&gt;&lt;/li&gt;
&lt;/ul&gt;
&lt;br /&gt;
&lt;span style=&quot;font-family: Georgia, Times New Roman, serif; font-size: small;&quot;&gt;&lt;span style=&quot;font-weight: normal;&quot;&gt;Take a survey by your development teams. Do NOT assume you know all the answers; we&#39;ve seen career sysprogs surprised by the results.&amp;nbsp;&lt;/span&gt;&lt;/span&gt;&lt;br /&gt;
&lt;span style=&quot;font-family: Georgia, Times New Roman, serif; font-size: small;&quot;&gt;&lt;span style=&quot;font-weight: normal;&quot;&gt;&lt;br /&gt;&lt;/span&gt;&lt;/span&gt;
&lt;span style=&quot;font-family: Georgia, Times New Roman, serif;&quot;&gt;2) Provide Just-In-Time Training&lt;/span&gt;&lt;/h3&gt;
&lt;h3&gt;
&lt;span style=&quot;font-family: Georgia, Times New Roman, serif; font-size: small;&quot;&gt;&lt;span style=&quot;font-weight: normal;&quot;&gt;Training is absolutely critical for success. An ISPF developer will be hard pressed to adopt RDz without it (and there is ZERO evidence that any ISFP developer actually has adopted it without training).&amp;nbsp;&lt;/span&gt;&lt;/span&gt;&lt;br /&gt;
&lt;span style=&quot;font-family: Georgia, Times New Roman, serif; font-size: small;&quot;&gt;&lt;span style=&quot;font-weight: normal;&quot;&gt;&lt;br /&gt;&lt;/span&gt;&lt;/span&gt;
&lt;span style=&quot;font-family: Georgia, Times New Roman, serif; font-size: small;&quot;&gt;&lt;span style=&quot;font-weight: normal;&quot;&gt;As such, you need the &lt;i&gt;right &lt;/i&gt;training, at the right &lt;i&gt;time&lt;/i&gt;. &lt;/span&gt;The right training is a &lt;u&gt;&lt;i&gt;minimum &lt;/i&gt;&lt;/u&gt;of 2 days in person classroom training&lt;span style=&quot;font-weight: normal;&quot;&gt;, adjusted and or customized for your environment.&amp;nbsp;Yes, &lt;i&gt;you need to budget for this&lt;/i&gt;. If you are budgeting for RDz and not budgeting for training, I recommend you not purchase the product. In fact, please don&#39;t buy it if that is the case. Your team will fail to use it, you&#39;ll waste money, and everyone will have a bad taste in their mouth afterwards. &amp;nbsp;&lt;/span&gt;&lt;/span&gt;&lt;br /&gt;
&lt;span style=&quot;font-family: Georgia, Times New Roman, serif; font-size: small;&quot;&gt;&lt;span style=&quot;font-weight: normal;&quot;&gt;&lt;br /&gt;&lt;/span&gt;&lt;/span&gt;
&lt;span style=&quot;font-family: Georgia, Times New Roman, serif; font-size: small;&quot;&gt;&lt;span style=&quot;font-weight: normal;&quot;&gt;So now that you&#39;ve read that, and you&#39;ve included some budget room for training, you need to schedule it for the right time, and find the right &lt;a href=&quot;http://www.strongback.us/w3/training/rdz&quot; target=&quot;_blank&quot;&gt;RDz partner&lt;/a&gt; who knows the product well. That is typically the week you expect your ISPF&amp;nbsp;developers&amp;nbsp;to&amp;nbsp;begin actually using the product. You can do a week before, but never earlier than that. That means you need to have the product installed, configured (on both the host and the client) and ready to go on day 1 of training. It needs to be integrated with all the critical systems including SCM out of the gate (see #1 above). An alternative to classroom training is on-demand Computer Based Training. Our organization is currently developing this exact course with videos, interactive quizzing, and lab&amp;nbsp;exercises. CBT based curricula would allow a student to revisit the course several times.&amp;nbsp;&lt;/span&gt;&lt;/span&gt;&lt;br /&gt;
&lt;span style=&quot;font-family: Georgia, Times New Roman, serif; font-size: small;&quot;&gt;&lt;span style=&quot;font-weight: normal;&quot;&gt;&lt;br /&gt;&lt;/span&gt;&lt;/span&gt;
&lt;span style=&quot;font-family: Georgia, Times New Roman, serif; font-size: small;&quot;&gt;&lt;span style=&quot;font-weight: normal;&quot;&gt;Training should also be multivariate as your personnel will learn at different rates. Provide classroom training to everyone at the start, but then provide additional training for laggards, and for new hires (those people hired after the original training finished). Provide interactive lunch-and-learns hosted by your &lt;a href=&quot;http://www.strongback.us/w3/training/rdz&quot; target=&quot;_blank&quot;&gt;RDz business partner&lt;/a&gt;, or your team champions (see #3 below).&amp;nbsp;&lt;/span&gt;&lt;/span&gt;&lt;br /&gt;
&lt;span style=&quot;font-family: Georgia, Times New Roman, serif; font-size: small;&quot;&gt;&lt;span style=&quot;font-weight: normal;&quot;&gt;&lt;br /&gt;&lt;/span&gt;&lt;/span&gt;
&lt;span style=&quot;font-family: Georgia, Times New Roman, serif; font-size: small;&quot;&gt;&lt;span style=&quot;font-weight: normal;&quot;&gt;&lt;br /&gt;&lt;/span&gt;&lt;/span&gt;
&lt;span style=&quot;font-family: Georgia, Times New Roman, serif;&quot;&gt;3) Cultivate Mentors&lt;/span&gt;&lt;/h3&gt;
&lt;h3&gt;
&lt;span style=&quot;font-family: Georgia, Times New Roman, serif; font-size: small;&quot;&gt;&lt;span style=&quot;font-weight: normal;&quot;&gt;To cultivate a product mentor in your organization, you&#39;ll need to train them ahead of the rest of their team. Typically, this person would be involved in the initial pilot or sales demo process and have prior experience with Eclipse. These are the people who will eventually conduct lunch-and-learns post implementation, interact with the IBM support team, and attend conferences such as COMMON or IBM InterConnect or Edge. To cultivate, you need to ensure these folks schedule time in their calendars to interact with the product, read up with its integrations and go through advanced tutorials and product literature. Budget for their attendance at conferences. Provide them a Wiki or Connections site to host so they can interact with other students and share their knowledge. Most of all, make them feel appreciated and reward them for positive efforts.&lt;/span&gt;&lt;/span&gt;&lt;br /&gt;
&lt;span style=&quot;font-family: Georgia, Times New Roman, serif; font-size: small;&quot;&gt;&lt;span style=&quot;font-weight: normal;&quot;&gt;&lt;br /&gt;&lt;/span&gt;&lt;/span&gt;
&lt;span style=&quot;font-family: Georgia, Times New Roman, serif;&quot;&gt;4) Uninstall the terminal emulators on the desktop&lt;/span&gt;&lt;/h3&gt;
&lt;h3&gt;
&lt;a href=&quot;https://blogger.googleusercontent.com/img/b/R29vZ2xl/AVvXsEhW2Efz0vNWLePh-9dx4ZDis9O2r59MDoR9NCcG0VVy1CN7sXJaBZXSPjD2Yx2Me8_j1H7tbONhXCbyrHLABToKa-iGs3QRyaewW32vDrnvMrl5sL-0WwARx2xL1wsJFMR9t-HG/s1600/rdz-host-menu.png&quot; imageanchor=&quot;1&quot; style=&quot;clear: right; float: right; margin-bottom: 1em; margin-left: 1em;&quot;&gt;&lt;span style=&quot;font-family: Georgia, Times New Roman, serif;&quot;&gt;&lt;img border=&quot;0&quot; height=&quot;320&quot; src=&quot;https://blogger.googleusercontent.com/img/b/R29vZ2xl/AVvXsEhW2Efz0vNWLePh-9dx4ZDis9O2r59MDoR9NCcG0VVy1CN7sXJaBZXSPjD2Yx2Me8_j1H7tbONhXCbyrHLABToKa-iGs3QRyaewW32vDrnvMrl5sL-0WwARx2xL1wsJFMR9t-HG/s320/rdz-host-menu.png&quot; width=&quot;245&quot; /&gt;&lt;/span&gt;&lt;/a&gt;&lt;br /&gt;
&lt;span style=&quot;font-size: small;&quot;&gt;&lt;span style=&quot;font-family: Georgia, Times New Roman, serif;&quot;&gt;&lt;span style=&quot;font-weight: normal;&quot;&gt;This is an effective motivator as&amp;nbsp;exemplified&lt;/span&gt;&lt;span style=&quot;font-weight: normal;&quot;&gt;&amp;nbsp;by Cortez in&amp;nbsp;1520 when he sunk his ships to avoid mutiny by his men. As a result, his men were well motivated.&amp;nbsp;&lt;/span&gt;&lt;/span&gt;&lt;span style=&quot;font-family: Georgia, Times New Roman, serif;&quot;&gt;&lt;span style=&quot;font-weight: normal;&quot;&gt;To access it, just right click on your host lapr in the&amp;nbsp;&lt;/span&gt;Remote Systems Explorer&lt;span style=&quot;font-weight: normal;&quot;&gt;&amp;nbsp;view. &amp;nbsp;&lt;/span&gt;&lt;/span&gt;&lt;span style=&quot;font-weight: normal;&quot;&gt;&lt;span style=&quot;font-family: Georgia, Times New Roman, serif;&quot;&gt;Yes, you read that correctly! You may not know this, but RDz includes a terminal emulator as part of the product. Its baked into the IDE and provides all the core functionality of the IBM PCOMM emulator (note that it does not include FTP or macro functionality).&amp;nbsp;&lt;/span&gt;&lt;/span&gt;&lt;span style=&quot;font-family: Georgia, Times New Roman, serif;&quot;&gt;&lt;span style=&quot;font-weight: normal;&quot;&gt;Click on &lt;/span&gt;Host Connection Emulator&lt;span style=&quot;font-weight: normal;&quot;&gt; and it will bring up the emulator as shown below.&amp;nbsp;&lt;/span&gt;&lt;/span&gt;&lt;/span&gt;&lt;br /&gt;
&lt;br /&gt;
&lt;span style=&quot;font-weight: normal;&quot;&gt;&lt;span style=&quot;font-family: Georgia, Times New Roman, serif;&quot;&gt;&lt;br /&gt;&lt;/span&gt;&lt;/span&gt;
&lt;span style=&quot;font-weight: normal;&quot;&gt;&lt;span style=&quot;font-family: Georgia, Times New Roman, serif;&quot;&gt;&lt;br /&gt;&lt;/span&gt;&lt;/span&gt;
&lt;div class=&quot;separator&quot; style=&quot;clear: both; text-align: center;&quot;&gt;
&lt;a href=&quot;https://blogger.googleusercontent.com/img/b/R29vZ2xl/AVvXsEiOfwNe-c-H8iLn1dnMu5kTuqYZg33fBjxQnLIJYKUY_8xMB9LsbIZWsFyKAE26U9a3jy5WwfaIYVydO6VP7vzcOWmp5ocycIlRyb7yFQQ2Y2ZZ86FB0dnhWmGmVywBzN3xPN8h/s1600/rdz-host-emulator.png&quot; imageanchor=&quot;1&quot; style=&quot;margin-left: 1em; margin-right: 1em;&quot;&gt;&lt;span style=&quot;font-family: Georgia, Times New Roman, serif;&quot;&gt;&lt;img border=&quot;0&quot; src=&quot;https://blogger.googleusercontent.com/img/b/R29vZ2xl/AVvXsEiOfwNe-c-H8iLn1dnMu5kTuqYZg33fBjxQnLIJYKUY_8xMB9LsbIZWsFyKAE26U9a3jy5WwfaIYVydO6VP7vzcOWmp5ocycIlRyb7yFQQ2Y2ZZ86FB0dnhWmGmVywBzN3xPN8h/s1600/rdz-host-emulator.png&quot; /&gt;&lt;/span&gt;&lt;/a&gt;&lt;/div&gt;
&lt;span style=&quot;font-weight: normal;&quot;&gt;&lt;span style=&quot;font-family: Georgia, Times New Roman, serif;&quot;&gt;&lt;br /&gt;&lt;/span&gt;&lt;/span&gt;
&lt;span style=&quot;font-weight: normal;&quot;&gt;&lt;span style=&quot;font-family: Georgia, Times New Roman, serif; font-size: small;&quot;&gt;&lt;br /&gt;&lt;/span&gt;&lt;/span&gt;
&lt;span style=&quot;font-weight: normal;&quot;&gt;&lt;span style=&quot;font-family: Georgia, Times New Roman, serif; font-size: small;&quot;&gt;This GUARANTEES that the developer will have to use RDz just to get to their precious emulator. By the time they get in and are connected, they&#39;ll just as likely go into the other RDz views rather than have to log into the emulator and navigate to their ISPF panels.&amp;nbsp;&lt;/span&gt;&lt;/span&gt;&lt;br /&gt;
&lt;span style=&quot;font-weight: normal;&quot;&gt;&lt;span style=&quot;font-family: Georgia, Times New Roman, serif;&quot;&gt;&lt;br /&gt;&lt;/span&gt;&lt;/span&gt;
&lt;span style=&quot;font-family: Georgia, Times New Roman, serif;&quot;&gt;5) Adjust the Developer&#39;s Expectations&lt;/span&gt;&lt;/h3&gt;
&lt;span style=&quot;font-family: Georgia, Times New Roman, serif;&quot;&gt;One of the most common excuses I hear is that &quot;we have to deal with production issues fast, so I don&#39;t have time to use it&quot;, or &quot;my boss expects this to be done now, and won&#39;t wait&quot;. &amp;nbsp;This is of course a bogus excuse. RDz makes the job of the COBOL development more productive, but it does have an initial learning curve. Once past that learning curve the productivity accelerates. So how do we combat this issue? First, we need to coordinate executive sponsorship from the C-level down through middle managers. The middle managers are critical on this. They need to set the expectations to their teams that using RDz to solve critical issues is paramount to just &quot;going with the devil that you know&quot;. Thus, the developer should have the expectations, that they are not just the fixing the problem like putting on a bandaid, but applying proper medicine such that the problem never manifests itself again. Ensuring that the middle managers expect them to use their new DevOps tools is a key part of its successful adoption. We&#39;re not just using a tool for the sake of technology, we&#39;re using technology to vastly improve our business outcomes and our productivity.&amp;nbsp;&lt;/span&gt;&lt;br /&gt;
&lt;span style=&quot;font-family: Georgia, Times New Roman, serif;&quot;&gt;&lt;br /&gt;&lt;/span&gt;
&lt;span style=&quot;font-family: Georgia, Times New Roman, serif;&quot;&gt;&lt;br /&gt;&lt;/span&gt;
&lt;div&gt;
&lt;br /&gt;&lt;/div&gt;
&lt;div class=&quot;blogger-post-footer&quot;&gt;&lt;a href=&quot;http://www.strongback.us&quot;&gt;&amp;copy;2016 Strongback Consulting&lt;/a&gt;&lt;/div&gt;</content><link rel='replies' type='application/atom+xml' href='http://blog.strongbackconsulting.com/feeds/2415170037557796944/comments/default' title='Post Comments'/><link rel='replies' type='text/html' href='http://www.blogger.com/comment/fullpage/post/33508082/2415170037557796944?isPopup=true' title='0 Comments'/><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/33508082/posts/default/2415170037557796944'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/33508082/posts/default/2415170037557796944'/><link rel='alternate' type='text/html' href='http://blog.strongbackconsulting.com/2016/07/5-tips-to-accelerate-adoption-of.html' title='5 Tips to Accelerate Adoption of Rational Developer for System z'/><author><name>Anonymous</name><uri>http://www.blogger.com/profile/13189925413502750170</uri><email>noreply@blogger.com</email><gd:image rel='http://schemas.google.com/g/2005#thumbnail' width='16' height='16' src='https://img1.blogblog.com/img/b16-rounded.gif'/></author><media:thumbnail xmlns:media="http://search.yahoo.com/mrss/" url="https://blogger.googleusercontent.com/img/b/R29vZ2xl/AVvXsEhW2Efz0vNWLePh-9dx4ZDis9O2r59MDoR9NCcG0VVy1CN7sXJaBZXSPjD2Yx2Me8_j1H7tbONhXCbyrHLABToKa-iGs3QRyaewW32vDrnvMrl5sL-0WwARx2xL1wsJFMR9t-HG/s72-c/rdz-host-menu.png" height="72" width="72"/><thr:total>0</thr:total></entry><entry><id>tag:blogger.com,1999:blog-33508082.post-8897970861289682831</id><published>2016-06-06T13:39:00.002-04:00</published><updated>2016-06-06T13:39:53.928-04:00</updated><category scheme="http://www.blogger.com/atom/ns#" term="DevOps"/><category scheme="http://www.blogger.com/atom/ns#" term="scrum"/><title type='text'>Easy way to manage a developer&#39;s prioritized daily backlog</title><content type='html'>&lt;br /&gt;
The central tenant of any good Agile methodology is a prioritized daily task list. Even if you are not a developer, you&#39;ll see this concept in business, such as in the Franklin-Covey time management series, or David Allen&#39;s GTD. Its all about breaking up large tasks into achievable chunks, and timeboxing your work in progress so that you show gradual, measurable progress.&lt;br /&gt;
&lt;br /&gt;
If your team is beginning to adopt Scrum, &lt;abbr title=&quot;Scaled Agile Framework&quot;&gt;SAFe&lt;/abbr&gt;, or other Agile discipline, you&#39;ll like the features that IBM&#39;s RTC provides to enable a smooth transition. It is a &lt;a href=&quot;http://www.strongback.us/w3/solutions/clm&quot; target=&quot;_blank&quot;&gt;Collaborative Lifecycle Management&lt;/a&gt; solution that enables developers, managers, and stakeholder to work collaboratively, providing faster delivery, more accurate delivery, and higher quality software.&lt;br /&gt;
&lt;br /&gt;
The Rational Team Concert Eclipse client has a very convenient view call the &quot;My Work&quot; view, which presents as a prioritized daily backlog. This pulls from the team&#39;s central sprint backlog, allowing the developer the ability to see everything he or she has on their plate for the day, the week, and the following week. It also shows any future work in the sprint, as well as future sprints&#39; work, as well as unplanned work in the release backlog.&lt;br /&gt;
&lt;br /&gt;
This short video introduces the view, and shows how to link tasks or defects to source code change sets for traceability.
&lt;iframe allowfullscreen=&quot;&quot; frameborder=&quot;0&quot; height=&quot;315&quot; src=&quot;https://www.youtube.com/embed/0hYHgVu5N20&quot; width=&quot;560&quot;&gt;&lt;/iframe&gt;

&lt;br /&gt;
The backlog itself can be managed by a program or project manager, or Scrum master in the web client during a team&#39;s weekly or bi-weekly backlog grooming session. Note here how the developer can further colorize the backlog so as to group similarly affected items (such as those with similar tags). This further enhances the developer&#39;s productivity.&lt;br /&gt;
&lt;br /&gt;
For the rest of the team, when the developer makes changes to the work item (such as marking it complete), the whole team can see the change immediately. This helps to avoid the issue with having a project manager going around and tap on everyone&#39;s shoulder to get an update. It also means that the stakeholders and executives can get a clear view of the current status at anytime of the day, without waiting on a status report. This is important for distributed teams that do not come into the office, or are located in different states (or countries). This is much better than just putting up a webcam on the whiteboard that you use to manage the backlog.&lt;div class=&quot;blogger-post-footer&quot;&gt;&lt;a href=&quot;http://www.strongback.us&quot;&gt;&amp;copy;2016 Strongback Consulting&lt;/a&gt;&lt;/div&gt;</content><link rel='replies' type='application/atom+xml' href='http://blog.strongbackconsulting.com/feeds/8897970861289682831/comments/default' title='Post Comments'/><link rel='replies' type='text/html' href='http://www.blogger.com/comment/fullpage/post/33508082/8897970861289682831?isPopup=true' title='0 Comments'/><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/33508082/posts/default/8897970861289682831'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/33508082/posts/default/8897970861289682831'/><link rel='alternate' type='text/html' href='http://blog.strongbackconsulting.com/2016/06/easy-way-to-manage-developers.html' title='Easy way to manage a developer&#39;s prioritized daily backlog'/><author><name>Anonymous</name><uri>http://www.blogger.com/profile/13189925413502750170</uri><email>noreply@blogger.com</email><gd:image rel='http://schemas.google.com/g/2005#thumbnail' width='16' height='16' src='https://img1.blogblog.com/img/b16-rounded.gif'/></author><media:thumbnail xmlns:media="http://search.yahoo.com/mrss/" url="https://img.youtube.com/vi/0hYHgVu5N20/default.jpg" height="72" width="72"/><thr:total>0</thr:total></entry><entry><id>tag:blogger.com,1999:blog-33508082.post-8383182883095642654</id><published>2016-06-02T16:50:00.000-04:00</published><updated>2016-06-02T16:50:25.126-04:00</updated><category scheme="http://www.blogger.com/atom/ns#" term="DevOps"/><category scheme="http://www.blogger.com/atom/ns#" term="teamconcert"/><title type='text'>What do the various link types in Rational Team Concert mean?</title><content type='html'>&lt;a href=&quot;https://blogger.googleusercontent.com/img/b/R29vZ2xl/AVvXsEifFK3VsZdal4ca59Mez1hc8OF4S_p3d7Jo4rbcPjQaEgH4f2zWsS2wIb3RfOIBZJrGJbu3OX9g5EHNHBND8X8AKKicWHhyphenhyphenkUQHtE6u0ngoTbeoV9G47tEMQ46fKeg_Ph3KLlqT/s1600/rtc-link-types.png&quot; imageanchor=&quot;1&quot; style=&quot;clear: left; float: left; margin-bottom: 1em; margin-right: 1em;&quot;&gt;&lt;img border=&quot;0&quot; height=&quot;320&quot; src=&quot;https://blogger.googleusercontent.com/img/b/R29vZ2xl/AVvXsEifFK3VsZdal4ca59Mez1hc8OF4S_p3d7Jo4rbcPjQaEgH4f2zWsS2wIb3RfOIBZJrGJbu3OX9g5EHNHBND8X8AKKicWHhyphenhyphenkUQHtE6u0ngoTbeoV9G47tEMQ46fKeg_Ph3KLlqT/s320/rtc-link-types.png&quot; width=&quot;139&quot; /&gt;&lt;/a&gt;In an RTC work item, on the links tab, you&#39;ll notice several types of links you can create. When getting started with RTC, its difficult to know what link type to create. &amp;nbsp;If the project area you are using is a LifeCycle project linked to an RQM and DNG project, you&#39;ll find even more link types that may make your head spin.&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
&lt;h3&gt;
Basic Work Item Links For Just RTC&lt;/h3&gt;
&lt;div&gt;
Let&#39;s get started with the basics. These links are used only in RTC, and do not link into the other &lt;a href=&quot;http://www.strongback.us/w3/solutions/clm&quot; target=&quot;_blank&quot;&gt;CLM &lt;/a&gt;tools like &lt;a href=&quot;http://www.strongback.us/w3/solutions/requirements-management&quot; target=&quot;_blank&quot;&gt;DNG for requirements management&lt;/a&gt; or RQM for test management.&amp;nbsp;&lt;/div&gt;
&lt;div&gt;
&lt;br /&gt;&lt;/div&gt;
&lt;div&gt;
&lt;a href=&quot;https://blogger.googleusercontent.com/img/b/R29vZ2xl/AVvXsEhMLkOAvxSZRz861T_q0aR9kn1gJVz48IIt-qSw_Yz05T24vtvQU41U0jVYLczewgYd-sIpeJbEI6HsdLgmGcqtjAAZUI253cP_kIFZ11W2TZU9x4QFm5Y-tijBqkHfKT_OgxRd/s1600/rtc-add-releated-link.png&quot; imageanchor=&quot;1&quot; style=&quot;clear: right; float: right; margin-bottom: 1em; margin-left: 1em;&quot;&gt;&lt;img border=&quot;0&quot; src=&quot;https://blogger.googleusercontent.com/img/b/R29vZ2xl/AVvXsEhMLkOAvxSZRz861T_q0aR9kn1gJVz48IIt-qSw_Yz05T24vtvQU41U0jVYLczewgYd-sIpeJbEI6HsdLgmGcqtjAAZUI253cP_kIFZ11W2TZU9x4QFm5Y-tijBqkHfKT_OgxRd/s1600/rtc-add-releated-link.png&quot; /&gt;&lt;/a&gt;The first is the &lt;b&gt;Add Related &lt;/b&gt;link. &lt;br /&gt;
This is the general purpose links two work items. This linkage type has no real context. It does not tell you &lt;i&gt;why&lt;/i&gt;&amp;nbsp;the two are linked. Is there a dependency between the two? Is one blocking another? Parent/child? Nope - no context. This is the link type you get when you mention a work item in a comment or description area of another work item.&lt;/div&gt;
&lt;div&gt;
&lt;br /&gt;&lt;/div&gt;
&lt;div&gt;
Next is the&amp;nbsp;&lt;b&gt;Add Related Artifacts&lt;/b&gt;&amp;nbsp;link.&lt;div class=&quot;separator&quot; style=&quot;clear: both; text-align: center;&quot;&gt;
&lt;a href=&quot;https://blogger.googleusercontent.com/img/b/R29vZ2xl/AVvXsEhZ7mLcBkwn8GvrEi6Z1CGSOyV8MLMk7d2WGXsb07Ozfd933gj1JkncrpT6O-WUTQruggkfrNWd6jc36kLG1EMsCiZ2QXvyuw0GQreQST0zHZtaQUa8AGEX3IwuuErV3E2WtQRz/s1600/rtc-add-related-artifacts-link.png&quot; imageanchor=&quot;1&quot; style=&quot;clear: right; float: right; margin-bottom: 1em; margin-left: 1em;&quot;&gt;&lt;img border=&quot;0&quot; src=&quot;https://blogger.googleusercontent.com/img/b/R29vZ2xl/AVvXsEhZ7mLcBkwn8GvrEi6Z1CGSOyV8MLMk7d2WGXsb07Ozfd933gj1JkncrpT6O-WUTQruggkfrNWd6jc36kLG1EMsCiZ2QXvyuw0GQreQST0zHZtaQUa8AGEX3IwuuErV3E2WtQRz/s1600/rtc-add-related-artifacts-link.png&quot; /&gt;&lt;/a&gt;&lt;/div&gt;
This one allows you to link to external content, such as Wiki&#39;s, sharepoint content, Connections content, deployed URL&#39;s and such. This should ONLY be used for external content, not for URL links to other work items.&amp;nbsp;&lt;/div&gt;
&lt;div&gt;
&lt;br /&gt;&lt;/div&gt;
&lt;div&gt;
The one link you might rarely, if ever, use is the the &lt;b&gt;SVN Revisions&lt;/b&gt; link. &lt;div class=&quot;separator&quot; style=&quot;clear: both; text-align: center;&quot;&gt;
&lt;a href=&quot;https://blogger.googleusercontent.com/img/b/R29vZ2xl/AVvXsEiROKubkm_bEYXhl12lRI2ywaO6m8L_z88KSy1YvEPdKJMuzB2aF3YIFEwbmSIccmI55PMSeYENGp4DiKBuy7HlhwThhQR-VmeJRhqey9nzWs_aSdatB9qDBirgHsw0m69TLayV/s1600/rtc-add-related-svn-revisions-link.png&quot; imageanchor=&quot;1&quot; style=&quot;clear: right; float: right; margin-bottom: 1em; margin-left: 1em;&quot;&gt;&lt;img border=&quot;0&quot; src=&quot;https://blogger.googleusercontent.com/img/b/R29vZ2xl/AVvXsEiROKubkm_bEYXhl12lRI2ywaO6m8L_z88KSy1YvEPdKJMuzB2aF3YIFEwbmSIccmI55PMSeYENGp4DiKBuy7HlhwThhQR-VmeJRhqey9nzWs_aSdatB9qDBirgHsw0m69TLayV/s1600/rtc-add-related-svn-revisions-link.png&quot; /&gt;&lt;/a&gt;&lt;/div&gt;
This is for subversion code revisions. However, your organization may have most likely converted source from subversion (SVN), to RTC. If they have not, they should as RTC source code management is far superior than SVN.&amp;nbsp;&lt;/div&gt;
&lt;h3&gt;
Directional Links in RTC&lt;/h3&gt;
&lt;div&gt;
You&#39;ll notice that many of the links appear in what looks like pairs. This is for a reason. These links are directional. Do you remember diagramming sentences in high school? Finally, here is where you get to use that knowledge! These linkage types provide &lt;i&gt;context &lt;/i&gt;as to &lt;i&gt;why &lt;/i&gt;the two are linked. For example, take the linkage pair Blocks / Depends on. These are reciprocal.&amp;nbsp;&lt;table align=&quot;center&quot; cellpadding=&quot;0&quot; cellspacing=&quot;0&quot; class=&quot;tr-caption-container&quot; style=&quot;margin-left: auto; margin-right: auto; text-align: center;&quot;&gt;&lt;tbody&gt;
&lt;tr&gt;&lt;td style=&quot;text-align: center;&quot;&gt;&lt;a href=&quot;https://blogger.googleusercontent.com/img/b/R29vZ2xl/AVvXsEj6Muy4dRnmOyHJTzh_L3vxX3qV9tOTeyyRW6ilDcUZ3evMDNXbARIiPL0v32WPXXX4R3zngCRvju0hveRiXjha2qVF2xN65s5G3j57DDLXX0Azsm_FMvpDeLGa0L5iYHwM5ldD/s1600/rtc-blocks-dependson-link.png&quot; imageanchor=&quot;1&quot; style=&quot;margin-left: auto; margin-right: auto;&quot;&gt;&lt;img border=&quot;0&quot; src=&quot;https://blogger.googleusercontent.com/img/b/R29vZ2xl/AVvXsEj6Muy4dRnmOyHJTzh_L3vxX3qV9tOTeyyRW6ilDcUZ3evMDNXbARIiPL0v32WPXXX4R3zngCRvju0hveRiXjha2qVF2xN65s5G3j57DDLXX0Azsm_FMvpDeLGa0L5iYHwM5ldD/s1600/rtc-blocks-dependson-link.png&quot; /&gt;&lt;/a&gt;&lt;/td&gt;&lt;/tr&gt;
&lt;tr&gt;&lt;td class=&quot;tr-caption&quot; style=&quot;text-align: center;&quot;&gt;&lt;br /&gt;&lt;/td&gt;&lt;/tr&gt;
&lt;/tbody&gt;&lt;/table&gt;
If you specify that Task 1 blocks Task 2, then on Task 2, we should see the link as &quot;Depends On&quot;. Looking at this in the following diagram helps us to understand how to read the two in a sentence:&lt;div class=&quot;separator&quot; style=&quot;clear: both; text-align: center;&quot;&gt;
&lt;/div&gt;
&lt;/div&gt;
&lt;div&gt;
&lt;br /&gt;&lt;/div&gt;
&lt;table align=&quot;center&quot; cellpadding=&quot;0&quot; cellspacing=&quot;0&quot; class=&quot;tr-caption-container&quot; style=&quot;margin-left: auto; margin-right: auto; text-align: center;&quot;&gt;&lt;tbody&gt;
&lt;tr&gt;&lt;td style=&quot;text-align: center;&quot;&gt;&lt;a href=&quot;https://blogger.googleusercontent.com/img/b/R29vZ2xl/AVvXsEhbjvVbiJyB_2S-_BlgsieZnGEBjRY6_E56J7SHgdlTHPuqGCw_bdRv-mVZ-I5DU755Uy093GJihSKIK_QPAC67nQehOZBEMpg5YGteETaBFR2Kwz1igfKsSnYuPmxN7akIp86p/s1600/rtc-link-pairs.png&quot; imageanchor=&quot;1&quot; style=&quot;margin-left: auto; margin-right: auto;&quot;&gt;&lt;img border=&quot;0&quot; height=&quot;200&quot; src=&quot;https://blogger.googleusercontent.com/img/b/R29vZ2xl/AVvXsEhbjvVbiJyB_2S-_BlgsieZnGEBjRY6_E56J7SHgdlTHPuqGCw_bdRv-mVZ-I5DU755Uy093GJihSKIK_QPAC67nQehOZBEMpg5YGteETaBFR2Kwz1igfKsSnYuPmxN7akIp86p/s320/rtc-link-pairs.png&quot; width=&quot;320&quot; /&gt;&lt;/a&gt;&lt;/td&gt;&lt;/tr&gt;
&lt;tr&gt;&lt;td class=&quot;tr-caption&quot; style=&quot;text-align: center;&quot;&gt;Directional relationship between RTC work item links&lt;/td&gt;&lt;/tr&gt;
&lt;/tbody&gt;&lt;/table&gt;
In this case, task 1 &quot;blocks&quot; us from working on or making progress on task 2. For example, let&#39;s say task 1 is to &lt;i&gt;Install WebSphere Liberty on Staging Server&lt;/i&gt;. Task 2 is &lt;i&gt;Configure&amp;nbsp;Java EE&amp;nbsp;&amp;nbsp;security on the Staging Server&lt;/i&gt;. Obviously, we cannot edit the security configuration on the Liberty server if it has not been installed. This particular linkage type is what the built in work item query &quot;Blocked Work Items&quot; looks for. A project manager or Scrum master can see this view and will be able to better help the team prioritize work and remove obstacles to productivity.&lt;div&gt;
&lt;br /&gt;&lt;/div&gt;
&lt;div&gt;
If you understand this pairing of link types, then the rest become a bit more obvious.&amp;nbsp;&lt;/div&gt;
&lt;div&gt;
&lt;br /&gt;&lt;/div&gt;
&lt;div&gt;
&lt;a href=&quot;https://blogger.googleusercontent.com/img/b/R29vZ2xl/AVvXsEgiIPQEqZy-nWrYvq8spR0KMx1fU3XJKW4zoPVfqB0cVg_a8Lq7qKyhQDu5_VEc2z2KeTQb7xE_1tmTT0dfzzDxvYzgiHYEAQZfohQYafWepwnJqg7nAfRph7oOE-XiGiWv1_Ea/s1600/rtc-resolves-resolvedby-link.png&quot; imageanchor=&quot;1&quot; style=&quot;clear: left; float: left; margin-bottom: 1em; margin-right: 1em; text-align: center;&quot;&gt;&lt;img border=&quot;0&quot; src=&quot;https://blogger.googleusercontent.com/img/b/R29vZ2xl/AVvXsEgiIPQEqZy-nWrYvq8spR0KMx1fU3XJKW4zoPVfqB0cVg_a8Lq7qKyhQDu5_VEc2z2KeTQb7xE_1tmTT0dfzzDxvYzgiHYEAQZfohQYafWepwnJqg7nAfRph7oOE-XiGiWv1_Ea/s1600/rtc-resolves-resolvedby-link.png&quot; /&gt;&lt;/a&gt;The &lt;b&gt;Resolves/Resolved By&lt;/b&gt; is commonly used on defects, where if you fix one defect, it effectively resolves another defect. This one is rarely used on anything but Defect work items.&amp;nbsp;&lt;/div&gt;
&lt;div&gt;
&lt;div&gt;
&lt;br /&gt;&lt;/div&gt;
&lt;div class=&quot;separator&quot; style=&quot;clear: both; text-align: center;&quot;&gt;
&lt;br /&gt;&lt;/div&gt;
&lt;div class=&quot;separator&quot; style=&quot;clear: both; text-align: left;&quot;&gt;
&lt;a href=&quot;https://blogger.googleusercontent.com/img/b/R29vZ2xl/AVvXsEglRSUEPMTI9-oEthnK8Vxey_GqJyP8wrOgr9AxAuk7Xyul0BRBP7PzZ305J0N-qiOuwQG6C7Omq8F961Ri_sJw90wnslo3rtoVhGle_cDLl2CKx_q-G8eLZM__vPhNn8nshoqa/s1600/rtc-duplicateof-duplicatedby-link.png&quot; imageanchor=&quot;1&quot; style=&quot;clear: right; float: right; margin-bottom: 1em; margin-left: 1em; text-align: center;&quot;&gt;&lt;img border=&quot;0&quot; src=&quot;https://blogger.googleusercontent.com/img/b/R29vZ2xl/AVvXsEglRSUEPMTI9-oEthnK8Vxey_GqJyP8wrOgr9AxAuk7Xyul0BRBP7PzZ305J0N-qiOuwQG6C7Omq8F961Ri_sJw90wnslo3rtoVhGle_cDLl2CKx_q-G8eLZM__vPhNn8nshoqa/s1600/rtc-duplicateof-duplicatedby-link.png&quot; /&gt;&lt;/a&gt;The &lt;b&gt;Duplicated By / Duplicate Of&lt;/b&gt; pair, indicate that one task or defect is an exact duplicate of another. This type of link is common when two different people have entered the same defect (perhaps worded slightly different). In this scenario, simply choose one as the duplicate. When one defect is marked as resolved, RTC will mark the duplicate resolved as well.&amp;nbsp;&lt;/div&gt;
&lt;/div&gt;
&lt;div class=&quot;separator&quot; style=&quot;clear: both; text-align: center;&quot;&gt;
&lt;br /&gt;&lt;/div&gt;
&lt;div class=&quot;separator&quot; style=&quot;clear: both; text-align: left;&quot;&gt;
&lt;a href=&quot;https://blogger.googleusercontent.com/img/b/R29vZ2xl/AVvXsEh-iVlPRZu-cZW8s6ekGR55M7itjrH5sc4lTjwKaeSmWczAUiSTVRrvy313KHgUSnG_SslUo1M_U69JqAbQaewHLVS4dodn9jkwBi0mEfx5BQTxsFrN_P9VeSGsRJ_eJXgxBeD1/s1600/rtc-parent-children-link.png&quot; imageanchor=&quot;1&quot; style=&quot;clear: left; display: inline !important; float: left; margin-bottom: 1em; margin-right: 1em; text-align: center;&quot;&gt;&lt;img border=&quot;0&quot; src=&quot;https://blogger.googleusercontent.com/img/b/R29vZ2xl/AVvXsEh-iVlPRZu-cZW8s6ekGR55M7itjrH5sc4lTjwKaeSmWczAUiSTVRrvy313KHgUSnG_SslUo1M_U69JqAbQaewHLVS4dodn9jkwBi0mEfx5BQTxsFrN_P9VeSGsRJ_eJXgxBeD1/s1600/rtc-parent-children-link.png&quot; /&gt;&lt;/a&gt;Lastly, we have the &lt;b&gt;parent/child link&lt;/b&gt; types. These are special in that a work item can only have one parent (did you know work items were asexual?). &amp;nbsp;A work item, however, can have multiple children. Child work items, in turn can have children, and so on. These also have special behavior properties in RTC, such that the RTC Project Administration (or JazzAdmin), can restrict the parent work item from being closed until all the children have also been closed. This is typically a good practice to have, especially for Stories with multiple tasks. A Story should not be closed until all the children have been completed.&amp;nbsp;&lt;/div&gt;
&lt;div class=&quot;separator&quot; style=&quot;clear: both; text-align: left;&quot;&gt;
&lt;br /&gt;&lt;/div&gt;
&lt;h3 style=&quot;clear: both; text-align: left;&quot;&gt;
Planning Links&lt;/h3&gt;
&lt;div class=&quot;&quot; style=&quot;clear: both; text-align: left;&quot;&gt;
&lt;a href=&quot;https://blogger.googleusercontent.com/img/b/R29vZ2xl/AVvXsEiyeM_vnYV8eqWTG4DNMgi9ocA_vxwWwJWIND91H_EmWBKv4-tDzwzCoY99Or7TAslCDbhcT50XvYghlvuEB5wAiEcr2-Ro60zNnbK9am6zXlWhdJ1GBnoei6rLms4IyeoV2HAv/s1600/rtc-link-types-affecting-plans.png&quot; imageanchor=&quot;1&quot; style=&quot;clear: right; float: right; margin-bottom: 1em; margin-left: 1em;&quot;&gt;&lt;img border=&quot;0&quot; src=&quot;https://blogger.googleusercontent.com/img/b/R29vZ2xl/AVvXsEiyeM_vnYV8eqWTG4DNMgi9ocA_vxwWwJWIND91H_EmWBKv4-tDzwzCoY99Or7TAslCDbhcT50XvYghlvuEB5wAiEcr2-Ro60zNnbK9am6zXlWhdJ1GBnoei6rLms4IyeoV2HAv/s1600/rtc-link-types-affecting-plans.png&quot; /&gt;&lt;/a&gt;The next group of links that are specific to RTC, are those that affect project planning. This means that work items with these link types will affect project plans and reports.&amp;nbsp;&lt;/div&gt;
&lt;div class=&quot;&quot; style=&quot;clear: both; text-align: left;&quot;&gt;
Let&#39;s start with the &lt;b&gt;Affects Plan Item&lt;/b&gt; link type. This is typically used on a defect, to indicate that if affects a story or epic. Stories and Epics are &lt;i&gt;plan items, &lt;/i&gt;whereas tasks and defects are &lt;i&gt;execution items&lt;/i&gt;. A plan item is the when part of a requirement, as in &quot;when is the requirement going to be implemented&quot;. The execution items are the &quot;how do we implement the requirement&quot;. Plan items are measured in story points, whereas execution items are measured in hours. &amp;nbsp;This link type is the reciprocal link type as &lt;b&gt;Affected By Defect&lt;/b&gt;&amp;nbsp;link type. This really should only be put on a story or epic to indicate that it is affected by a defect, and on the linked defect, it would have the &lt;b&gt;Affects Plan Item&lt;/b&gt; link.&lt;/div&gt;
&lt;div class=&quot;&quot; style=&quot;clear: both; text-align: left;&quot;&gt;
&lt;br /&gt;&lt;/div&gt;
&lt;div class=&quot;&quot; style=&quot;clear: both; text-align: left;&quot;&gt;
Next is the Contributes To and Tracks link types. This are linkages between cross-project plans, and allows you to have a work item track another &lt;u&gt;Plan item&lt;/u&gt; in another plan or project area. The Contributes To allows you to indicate that a given work item (such as a task), contributes effort to another Plan item. That plan item may be in the current project, or in another project. For example, if you have two project areas, for two very different software projects, and there is a task to install infrastructure that both projects will be running on, we can say that the task &quot;Contributes To&quot; the stories in both project areas. This will allow the work item to show up in project plans in both project areas.&amp;nbsp;&lt;/div&gt;
&lt;div class=&quot;separator&quot; style=&quot;clear: both; text-align: left;&quot;&gt;
&lt;br /&gt;&lt;/div&gt;
&lt;h3 style=&quot;clear: both; text-align: left;&quot;&gt;
Formal Training for RTC&lt;/h3&gt;
&lt;div&gt;
If you&#39;ve been slogging around trying to learn RTC on your own, we recommend that you get some formal instruction on the product by a knowledgeable vendor who actually works with the product in the field.&amp;nbsp;&lt;/div&gt;
&lt;div&gt;
&lt;br /&gt;&lt;/div&gt;
&lt;div class=&quot;separator&quot; style=&quot;clear: both; text-align: center;&quot;&gt;
&lt;br /&gt;&lt;/div&gt;
&lt;div style=&quot;text-align:center&quot;&gt;&lt;a href=&quot;http://www.strongback.us/w3/training/rtc&quot; title=&quot;Rational Team Concert Training&quot; style=&quot;display:inline-block;color:white;background-color:#d04d2e;padding:10px;font-size:1.75em;border-radius:5px;&quot;&gt;Find out about RTC Training&lt;/a&gt;&lt;/div&gt;&lt;div class=&quot;blogger-post-footer&quot;&gt;&lt;a href=&quot;http://www.strongback.us&quot;&gt;&amp;copy;2016 Strongback Consulting&lt;/a&gt;&lt;/div&gt;</content><link rel='replies' type='application/atom+xml' href='http://blog.strongbackconsulting.com/feeds/8383182883095642654/comments/default' title='Post Comments'/><link rel='replies' type='text/html' href='http://www.blogger.com/comment/fullpage/post/33508082/8383182883095642654?isPopup=true' title='0 Comments'/><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/33508082/posts/default/8383182883095642654'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/33508082/posts/default/8383182883095642654'/><link rel='alternate' type='text/html' href='http://blog.strongbackconsulting.com/2016/06/link-types-in-rational-team-concert.html' title='What do the various link types in Rational Team Concert mean?'/><author><name>Anonymous</name><uri>http://www.blogger.com/profile/13189925413502750170</uri><email>noreply@blogger.com</email><gd:image rel='http://schemas.google.com/g/2005#thumbnail' width='16' height='16' src='https://img1.blogblog.com/img/b16-rounded.gif'/></author><media:thumbnail xmlns:media="http://search.yahoo.com/mrss/" url="https://blogger.googleusercontent.com/img/b/R29vZ2xl/AVvXsEifFK3VsZdal4ca59Mez1hc8OF4S_p3d7Jo4rbcPjQaEgH4f2zWsS2wIb3RfOIBZJrGJbu3OX9g5EHNHBND8X8AKKicWHhyphenhyphenkUQHtE6u0ngoTbeoV9G47tEMQ46fKeg_Ph3KLlqT/s72-c/rtc-link-types.png" height="72" width="72"/><thr:total>0</thr:total></entry><entry><id>tag:blogger.com,1999:blog-33508082.post-3570597659614630292</id><published>2016-05-16T15:37:00.001-04:00</published><updated>2016-05-16T15:37:46.354-04:00</updated><category scheme="http://www.blogger.com/atom/ns#" term="DevOps"/><category scheme="http://www.blogger.com/atom/ns#" term="java"/><category scheme="http://www.blogger.com/atom/ns#" term="WAS"/><category scheme="http://www.blogger.com/atom/ns#" term="WebSphere"/><title type='text'>Stop manual deployment or scripting deployments to WebSphere App Server - there is a better way</title><content type='html'>&lt;h2&gt;
Manual deployments suck&lt;/h2&gt;
Lets face it, we&#39;ve all had the &quot;deployment weekend&quot; nightmare. You plan for a half day of deployment, but it ends up turning into a day and half of wasted time because you&#39;ve either missed something, deployed the wrong version, set the wrong environment parameter, or a late defect showed up that QA did not catch in the past week.Then you go home Sunday afternoon wiped out, and have to answer to your significant other (or your kids), why you were not at the event last night, or why you had to miss the kids game, etc. Manual deployments are error prone, weak, and frankly are a thief to your personal time. 

&lt;br /&gt;
&lt;h2&gt;
Jython scripts work but are fragile&lt;/h2&gt;
Hand scripting deployments to WebSphere application server using Jython (or JACL) can be time consuming, and are commonly fragile. As the application changes, so do the scripts that are used to deploy them. Then, if the developer who wrote them leaves the company (and you DO need a developer to maintain them), then how long do you think it will take to get a replacement up to speed? That is a skill that is hard to recruit. 
&lt;br /&gt;
&lt;h2&gt;
Automate Deployment to WebSphere&lt;/h2&gt;
While you may shake your head at purchasing a commercial product to do this, ask yourself this: &quot;How much does it cost us in labor to do manual deployments?&quot;, or &quot;How much does it cost us in lost revenue if we screw up a manual deployment?&quot; There is a tool we have been working with and have been deploying at our customers. Its IBM Urbancode. Its simple to use and understand, thus there&#39;s no long ramp up time required to learn it. This means you can distribute the responsibility to kick of the builds across all the members of your team, and they won&#39;t have to sacrifice a weekend to run it. We love this because it allows your development and operations group to:&lt;br /&gt;
&lt;ul&gt;
&lt;li&gt;Reduce the amount of manual labor, resource wait-time, and rework by eliminating errors and providing self-service environments&lt;/li&gt;
&lt;li&gt;Increase frequency of software delivery through automated, repeatable deployment processes across development, test and production&lt;/li&gt;
&lt;li&gt;Deliver higher quality application releases with increased compliance through end-to-end transparency, auditability and reduced time to feedback&lt;/li&gt;
&lt;/ul&gt;
Oh, and while this post is in the context of Java/WebSphere, it also works on z/OS to deploy COBOL apps, Windows for .NET apps, Linux for LAMP apps and more. It also works with AWS, Softlayer, and more. &lt;br /&gt;
&lt;iframe allowfullscreen=&quot;&quot; frameborder=&quot;0&quot; height=&quot;485&quot; marginheight=&quot;0&quot; marginwidth=&quot;0&quot; scrolling=&quot;no&quot; src=&quot;//www.slideshare.net/slideshow/embed_code/key/K4ac2kVBq5uazL&quot; style=&quot;border-width: 1px; border: 1px solid #ccc; margin-bottom: 5px; max-width: 100%;&quot; width=&quot;595&quot;&gt; &lt;/iframe&gt; &lt;br /&gt;
&lt;div style=&quot;margin-bottom: 5px;&quot;&gt;
&lt;strong&gt; &lt;a href=&quot;https://www.slideshare.net/strongback/ibm-urbancode-for-websphere-application-server&quot; target=&quot;_blank&quot; title=&quot;IBM Urbancode for WebSphere Application Server&quot;&gt;IBM Urbancode for WebSphere Application Server&lt;/a&gt; &lt;/strong&gt; from &lt;strong&gt;&lt;a href=&quot;https://www.slideshare.net/strongback&quot; target=&quot;_blank&quot;&gt;Strongback Consulting&lt;/a&gt;&lt;/strong&gt; &lt;/div&gt;

&lt;div class=&quot;blogger-post-footer&quot;&gt;&lt;a href=&quot;http://www.strongback.us&quot;&gt;&amp;copy;2016 Strongback Consulting&lt;/a&gt;&lt;/div&gt;</content><link rel='replies' type='application/atom+xml' href='http://blog.strongbackconsulting.com/feeds/3570597659614630292/comments/default' title='Post Comments'/><link rel='replies' type='text/html' href='http://www.blogger.com/comment/fullpage/post/33508082/3570597659614630292?isPopup=true' title='0 Comments'/><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/33508082/posts/default/3570597659614630292'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/33508082/posts/default/3570597659614630292'/><link rel='alternate' type='text/html' href='http://blog.strongbackconsulting.com/2016/05/stop-manual-websphere-deployment-or-scripting.html' title='Stop manual deployment or scripting deployments to WebSphere App Server - there is a better way'/><author><name>Anonymous</name><uri>http://www.blogger.com/profile/13189925413502750170</uri><email>noreply@blogger.com</email><gd:image rel='http://schemas.google.com/g/2005#thumbnail' width='16' height='16' src='https://img1.blogblog.com/img/b16-rounded.gif'/></author><thr:total>0</thr:total></entry><entry><id>tag:blogger.com,1999:blog-33508082.post-9118919511518343236</id><published>2016-04-22T14:58:00.001-04:00</published><updated>2016-04-22T14:58:40.639-04:00</updated><category scheme="http://www.blogger.com/atom/ns#" term="clm"/><category scheme="http://www.blogger.com/atom/ns#" term="DevOps"/><category scheme="http://www.blogger.com/atom/ns#" term="doors"/><category scheme="http://www.blogger.com/atom/ns#" term="RQM"/><category scheme="http://www.blogger.com/atom/ns#" term="RTC"/><title type='text'>Easy peasy cross project linking and traceability in IBM CLM (RTC, DOORs, and RQM)</title><content type='html'>For years, you&#39;ve probably heard about &quot;traceability&quot;, that mysterious shangri-la that are read about in case studies. Well, obtaining traceability is not rocket science in &lt;a href=&quot;http://www.strongback.us/w3/solutions/clm&quot; target=&quot;_blank&quot;&gt;IBM&#39;s CLM tools&lt;/a&gt;. This video below shows you how to set it up at an atomic level, meaning, between specific artifacts between the three CLM applications. 
In a nutshell, you need to think of traceability as WHO, WHAT, WHEN, and HOW. 
&lt;br /&gt;
&lt;h3&gt;
WHAT = Requirement in DOORs NG&lt;/h3&gt;
A requirement defines &lt;em&gt;what&lt;/em&gt; we are going to develop. It is the definition, the description of the software feature that gets implemented. This is most commonly done using User Stories (sometimes use cases). While DOORs NG has several other artifact types, the User Story Elaboration is the glue we want to adhere to. 
&lt;br /&gt;
&lt;br /&gt;
&lt;h3&gt;
WHEN/WHO = Story work item in RTC&lt;/h3&gt;
If you have the full CLM stack, you&#39;ll likely be putting the full requirement text in the DOORs artifact. If you only have RTC, then follow our previous advice on &lt;a href=&quot;http://blog.strongbackconsulting.com/2016/03/writing-user-stories-within-ibm.html&quot; target=&quot;_blank&quot;&gt;Writing User Stories within IBM Rational Team Concert&lt;/a&gt;. In the case of full CLM, however, the Story merely represents &lt;i&gt;&lt;u&gt;when &lt;/u&gt;&lt;/i&gt;the requirement gets implemented, and &lt;i&gt;who &lt;/i&gt;is responsible for completing it. The details of the Story work item in RTC are linked to the User Story Elaboration in DOORs. We will leave to your team&#39;s discretion to copy the details into the body of the story work item, however, we do encourage you to copy the acceptance criteria into the acceptance area, if you have not already captured it.&lt;br /&gt;
&lt;br /&gt;
&lt;h3&gt;
HOW = Test case in RQM&lt;/h3&gt;
Finally, the HOW is the test case that confirms &lt;i&gt;how (or if)&lt;/i&gt; the story implemented the requirement. The test case depends upon good acceptance criteria. If provided, the test case and scripts can be written in short order.&lt;br /&gt;
&lt;br /&gt;
&lt;h4&gt;
BONUS: WHERE = deployment via UrbanCode&lt;/h4&gt;
&lt;div&gt;
So, as a final bonus, you may be thinking &amp;nbsp;&quot;but you forgot the where part&quot;. While Urbancode is not part of the official package, it certainly should be part of the solution. This defines &lt;i&gt;where&lt;/i&gt; the code gets deployed. If you are unfamiliar with it, Urbancode is a &lt;a href=&quot;http://www.strongback.us/w3/solutions/continuous-release-deployment&quot; target=&quot;_blank&quot;&gt;deployment automation&lt;/a&gt; tool, that can handle deployment to multiple environments. It can reduce your deployment time by as much as 95% by automating all the manual tasks required to push a product into an environment.&amp;nbsp;&lt;/div&gt;
&lt;br /&gt;
&lt;iframe allowfullscreen=&quot;&quot; frameborder=&quot;0&quot; height=&quot;359&quot; mozallowfullscreen=&quot;&quot; src=&quot;https://player.vimeo.com/video/163015079&quot; webkitallowfullscreen=&quot;&quot; width=&quot;640&quot;&gt;&lt;/iframe&gt;

&lt;a href=&quot;https://vimeo.com/163015079&quot;&gt;IBM CLM Linking And Traceability&lt;/a&gt; from &lt;a href=&quot;https://about.me/smithkenny&quot;&gt;Kenny Smith&lt;/a&gt; on &lt;a href=&quot;https://vimeo.com/&quot;&gt;Vimeo&lt;/a&gt;.

&lt;p&gt;
In a future video, I&#39;ll demonstrate a scenario where we can link at a higher level using Requirements Collections, Sprint Plans, and Test Plans. This level of linking helps to visualize gaps in a test strategy, ensure accountability on the implementation of requirements, and identify stories that are affected by defects. 

&lt;/p&gt;&lt;div class=&quot;blogger-post-footer&quot;&gt;&lt;a href=&quot;http://www.strongback.us&quot;&gt;&amp;copy;2016 Strongback Consulting&lt;/a&gt;&lt;/div&gt;</content><link rel='replies' type='application/atom+xml' href='http://blog.strongbackconsulting.com/feeds/9118919511518343236/comments/default' title='Post Comments'/><link rel='replies' type='text/html' href='http://www.blogger.com/comment/fullpage/post/33508082/9118919511518343236?isPopup=true' title='0 Comments'/><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/33508082/posts/default/9118919511518343236'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/33508082/posts/default/9118919511518343236'/><link rel='alternate' type='text/html' href='http://blog.strongbackconsulting.com/2016/04/easy-peasy-cross-project-linking-and.html' title='Easy peasy cross project linking and traceability in IBM CLM (RTC, DOORs, and RQM)'/><author><name>Anonymous</name><uri>http://www.blogger.com/profile/13189925413502750170</uri><email>noreply@blogger.com</email><gd:image rel='http://schemas.google.com/g/2005#thumbnail' width='16' height='16' src='https://img1.blogblog.com/img/b16-rounded.gif'/></author><thr:total>0</thr:total></entry><entry><id>tag:blogger.com,1999:blog-33508082.post-5877606340245380791</id><published>2016-04-15T17:23:00.000-04:00</published><updated>2016-04-15T17:23:00.683-04:00</updated><category scheme="http://www.blogger.com/atom/ns#" term="CI"/><category scheme="http://www.blogger.com/atom/ns#" term="DevOps"/><category scheme="http://www.blogger.com/atom/ns#" term="teamconcert"/><title type='text'>Configuring Release Numbers in Rational Team Concert</title><content type='html'>The defect work item in Team Concert has a attribute labeled &quot;Found In&quot;. This field is not populated by default, and often causes confusion for new users. The intention for this field is to tell the development which release the defect was found in. Thus it&#39;s important to understand, that RTC will certainly not know what your release numbering is when you install it. This has to be configured by the RTC project admin or release engineer. This video shows how to configure the release numbers in the project settings of Team Concert. If you have not configured a release nomenclature, it is best to do so before configuring this section. Also, if you are using &lt;a href=&quot;http://www.strongback.us/w3/solutions/continuous-release-deployment&quot; target=&quot;_blank&quot;&gt;IBM Urbancode&lt;/a&gt;, you will want to use the release names as they are deployed from Urbancode.&lt;br /&gt;
&lt;br /&gt;
&lt;iframe allowfullscreen=&quot;&quot; frameborder=&quot;0&quot; height=&quot;358&quot; mozallowfullscreen=&quot;&quot; src=&quot;https://player.vimeo.com/video/163026840&quot; webkitallowfullscreen=&quot;&quot; width=&quot;640&quot;&gt;&lt;/iframe&gt;

&lt;a href=&quot;https://vimeo.com/163026840&quot;&gt;Release Numbering&lt;/a&gt; from &lt;a href=&quot;https://vimeo.com/smithkenny&quot;&gt;Kenny Smith&lt;/a&gt; on &lt;a href=&quot;https://vimeo.com/&quot;&gt;Vimeo&lt;/a&gt;.
&lt;br /&gt;
For more information on RTC, see our &lt;a href=&quot;http://www.strongback.us/w3/solutions/clm&quot; target=&quot;_blank&quot;&gt;Collaborative Lifecycle Management&lt;/a&gt; solutions, and &lt;a href=&quot;http://www.strongback.us/w3/solutions/devops&quot; target=&quot;_blank&quot;&gt;DevOps&lt;/a&gt; solutions over on our website. 
&lt;div class=&quot;blogger-post-footer&quot;&gt;&lt;a href=&quot;http://www.strongback.us&quot;&gt;&amp;copy;2016 Strongback Consulting&lt;/a&gt;&lt;/div&gt;</content><link rel='replies' type='application/atom+xml' href='http://blog.strongbackconsulting.com/feeds/5877606340245380791/comments/default' title='Post Comments'/><link rel='replies' type='text/html' href='http://www.blogger.com/comment/fullpage/post/33508082/5877606340245380791?isPopup=true' title='0 Comments'/><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/33508082/posts/default/5877606340245380791'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/33508082/posts/default/5877606340245380791'/><link rel='alternate' type='text/html' href='http://blog.strongbackconsulting.com/2016/04/configuring-release-numbers-in-rational.html' title='Configuring Release Numbers in Rational Team Concert'/><author><name>Anonymous</name><uri>http://www.blogger.com/profile/13189925413502750170</uri><email>noreply@blogger.com</email><gd:image rel='http://schemas.google.com/g/2005#thumbnail' width='16' height='16' src='https://img1.blogblog.com/img/b16-rounded.gif'/></author><thr:total>0</thr:total></entry><entry><id>tag:blogger.com,1999:blog-33508082.post-8760407874762444887</id><published>2016-04-07T14:58:00.003-04:00</published><updated>2016-04-07T14:58:49.069-04:00</updated><category scheme="http://www.blogger.com/atom/ns#" term="DevOps"/><title type='text'>Strongback Website Update: new Devops solutions</title><content type='html'>We have finally updated our website to address the services we&#39;ve actually been doing over the past few years. For so long, we&#39;ve neglected the content on the website, frankly, because we were too busy. Now, after a couple of weeks of intensive work, we finally have content that reflects what we &lt;i&gt;really &lt;/i&gt;do and what want to do. Yes, we still do Enterprise Modernization, including advanced deployment and customization of HATS applications and adoption strategies for RDz and RDi. However, we&#39;ve expanded our whole &lt;a href=&quot;http://www.strongback.us/w3/solutions/devops&quot; target=&quot;_blank&quot;&gt;DevOps &lt;/a&gt;approach to include service offerings such as:&lt;div&gt;
&lt;ul&gt;
&lt;li&gt;&lt;a href=&quot;http://www.strongback.us/w3/solutions/clm&quot; target=&quot;_blank&quot;&gt;Collaborative Lifecycle Management (CLM)&lt;/a&gt;&lt;/li&gt;
&lt;li&gt;&lt;a href=&quot;http://www.strongback.us/w3/solutions/continuous-release-deployment&quot; target=&quot;_blank&quot;&gt;Continuous Build and Deployment (CI)&lt;/a&gt;&lt;/li&gt;
&lt;li&gt;&lt;a href=&quot;http://www.strongback.us/w3/solutions/continuous-testing&quot; target=&quot;_blank&quot;&gt;Continuous Testing&lt;/a&gt;&lt;/li&gt;
&lt;li&gt;&lt;a href=&quot;http://www.strongback.us/w3/solutions/application-monitoring&quot; target=&quot;_blank&quot;&gt;Application Performance Monitoring&lt;/a&gt;&lt;/li&gt;
&lt;/ul&gt;
&lt;div&gt;
&lt;br /&gt;&lt;/div&gt;
&lt;div&gt;
We also have some rather new offerings that are purely services oriented. We now offer &lt;a href=&quot;http://www.strongback.us/w3/solutions/websphere-support&quot; target=&quot;_blank&quot;&gt;extended WebSphere Application Server 6.1&lt;/a&gt; support for customers who cannot migrate to later editions due to third party software limitations. We also now offer remote &lt;a href=&quot;http://www.strongback.us/w3/solutions/managed-devops&quot; target=&quot;_blank&quot;&gt;DevOps Software Management&lt;/a&gt; for customers that cannot justify hiring a full time resource just to manage their RTC, RQM, DNG, or Urbancode servers.&amp;nbsp;&lt;/div&gt;
&lt;div&gt;
&lt;br /&gt;&lt;/div&gt;
&lt;div&gt;
There are other goodies in there as well that you may or may not notice. Of course, we spent some time on better URL navigation, analytics, and SEO. But it should be much easier to find out exactly what solutions we offer.&amp;nbsp;&lt;/div&gt;
&lt;div&gt;
&lt;br /&gt;&lt;/div&gt;
&lt;div&gt;
In the coming weeks/months, we&#39;ll also be adding new pages to the Industries area, as well as more case studies. In the meantime. Go ahead. Take a peek and let us know what you think!&lt;/div&gt;
&lt;div&gt;
&lt;br /&gt;&lt;/div&gt;
&lt;div&gt;
&lt;br /&gt;&lt;/div&gt;
&lt;div&gt;
&lt;br /&gt;&lt;/div&gt;
&lt;/div&gt;
&lt;div class=&quot;blogger-post-footer&quot;&gt;&lt;a href=&quot;http://www.strongback.us&quot;&gt;&amp;copy;2016 Strongback Consulting&lt;/a&gt;&lt;/div&gt;</content><link rel='replies' type='application/atom+xml' href='http://blog.strongbackconsulting.com/feeds/8760407874762444887/comments/default' title='Post Comments'/><link rel='replies' type='text/html' href='http://www.blogger.com/comment/fullpage/post/33508082/8760407874762444887?isPopup=true' title='0 Comments'/><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/33508082/posts/default/8760407874762444887'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/33508082/posts/default/8760407874762444887'/><link rel='alternate' type='text/html' href='http://blog.strongbackconsulting.com/2016/04/strongback-website-update.html' title='Strongback Website Update: new Devops solutions'/><author><name>Anonymous</name><uri>http://www.blogger.com/profile/13189925413502750170</uri><email>noreply@blogger.com</email><gd:image rel='http://schemas.google.com/g/2005#thumbnail' width='16' height='16' src='https://img1.blogblog.com/img/b16-rounded.gif'/></author><thr:total>0</thr:total></entry><entry><id>tag:blogger.com,1999:blog-33508082.post-4525517162726519564</id><published>2016-03-28T11:29:00.000-04:00</published><updated>2016-03-28T11:29:03.166-04:00</updated><category scheme="http://www.blogger.com/atom/ns#" term="DevOps"/><category scheme="http://www.blogger.com/atom/ns#" term="IBM"/><category scheme="http://www.blogger.com/atom/ns#" term="mainframe"/><category scheme="http://www.blogger.com/atom/ns#" term="systemz"/><title type='text'>InterConnect 2016: Tips for Developing and Testing IBM HATS Applications</title><content type='html'>&lt;br /&gt;
&lt;br /&gt;
This is from our presentation at the InterConnect 2016 conference in Las Vegas, February 2016.&lt;br /&gt;
IBM Rational Host Access Transformation Services (HATS) can dynamically transform your terminal-based applications into rich web pages. It is highly customizable and built on Java EE technology. We discussed some lessons learned from a very (very) complex HATS engagement. We also discussed proper development strategies, and how to distribute workload across team members. We&#39;ll introduce a novel approach to unit testing advanced customizations using JUnit, and will also talk about how to address functional testing.&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
&lt;iframe allowfullscreen=&quot;&quot; frameborder=&quot;0&quot; height=&quot;485&quot; marginheight=&quot;0&quot; marginwidth=&quot;0&quot; scrolling=&quot;no&quot; src=&quot;//www.slideshare.net/slideshow/embed_code/key/yCphJBY8mBl5h7&quot; style=&quot;border-width: 1px; border: 1px solid #ccc; margin-bottom: 5px; max-width: 100%;&quot; width=&quot;595&quot;&gt; &lt;/iframe&gt; &lt;br /&gt;
&lt;div style=&quot;margin-bottom: 5px;&quot;&gt;
&lt;strong&gt; &lt;a href=&quot;https://www.slideshare.net/strongback/tips-for-developing-and-testing-ibm-hats-applications&quot; target=&quot;_blank&quot; title=&quot;Tips for Developing and Testing IBM HATS Applications&quot;&gt;Tips for Developing and Testing IBM HATS Applications&lt;/a&gt; &lt;/strong&gt; from &lt;strong&gt;&lt;a href=&quot;https://www.slideshare.net/strongback&quot; target=&quot;_blank&quot;&gt;Strongback Consulting&lt;/a&gt;&lt;/strong&gt; &lt;br /&gt;
&lt;br /&gt;
If you would like the source code examples used in this presentation, &lt;a href=&quot;http://www.strongbackconsulting.com/w3/contact.tiles&quot; target=&quot;_blank&quot;&gt;please contact us&lt;/a&gt;.&amp;nbsp;&lt;/div&gt;
&lt;div class=&quot;blogger-post-footer&quot;&gt;&lt;a href=&quot;http://www.strongback.us&quot;&gt;&amp;copy;2016 Strongback Consulting&lt;/a&gt;&lt;/div&gt;</content><link rel='replies' type='application/atom+xml' href='http://blog.strongbackconsulting.com/feeds/4525517162726519564/comments/default' title='Post Comments'/><link rel='replies' type='text/html' href='http://www.blogger.com/comment/fullpage/post/33508082/4525517162726519564?isPopup=true' title='0 Comments'/><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/33508082/posts/default/4525517162726519564'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/33508082/posts/default/4525517162726519564'/><link rel='alternate' type='text/html' href='http://blog.strongbackconsulting.com/2016/03/Tips-for-developing-hats-apps.html' title='InterConnect 2016: Tips for Developing and Testing IBM HATS Applications'/><author><name>Anonymous</name><uri>http://www.blogger.com/profile/13189925413502750170</uri><email>noreply@blogger.com</email><gd:image rel='http://schemas.google.com/g/2005#thumbnail' width='16' height='16' src='https://img1.blogblog.com/img/b16-rounded.gif'/></author><thr:total>0</thr:total></entry><entry><id>tag:blogger.com,1999:blog-33508082.post-8681950481236565725</id><published>2016-03-15T14:37:00.000-04:00</published><updated>2016-03-15T14:37:36.686-04:00</updated><category scheme="http://www.blogger.com/atom/ns#" term="DevOps"/><category scheme="http://www.blogger.com/atom/ns#" term="rational"/><category scheme="http://www.blogger.com/atom/ns#" term="teamconcert"/><title type='text'>Creating and Sharing Work Item Queries in Rational Team Concert</title><content type='html'>&lt;br /&gt;
Rational Team Concert uses work items as the &quot;glue&quot; to bind various artifacts together. It links source code change sets to tasks, tasks to user stories, defects to test plans, stories to requirements.&lt;br /&gt;
&lt;br /&gt;
Work item queries allow you to easily create repeatable searches into the RTC system for just about any work item type and attribute that you can imagine. Queries, once created, can then be shared with colleagues, other teams, or the entire project.&lt;br /&gt;
&lt;br /&gt;
This video demonstration shows you the following:&lt;br /&gt;
&lt;br /&gt;
&lt;ul&gt;
&lt;li&gt;Where to find work item queries&lt;/li&gt;
&lt;li&gt;How to create and save a query&lt;/li&gt;
&lt;li&gt;Sharing queries with individuals or teams&lt;/li&gt;
&lt;li&gt;Work with query conditions&lt;/li&gt;
&lt;li&gt;Full text queries&lt;/li&gt;
&lt;li&gt;Querying on traceability links&lt;/li&gt;
&lt;li&gt;Change column orders and column sorting&lt;/li&gt;
&lt;/ul&gt;
&lt;br /&gt;
&lt;br /&gt;
&lt;iframe allowfullscreen=&quot;&quot; frameborder=&quot;0&quot; height=&quot;282&quot; mozallowfullscreen=&quot;&quot; src=&quot;https://player.vimeo.com/video/159079859&quot; webkitallowfullscreen=&quot;&quot; width=&quot;500&quot;&gt;&lt;/iframe&gt;

&lt;a href=&quot;https://vimeo.com/159079859&quot;&gt;Rational Team Concert: Managing Work Item Queries&lt;/a&gt; from &lt;a href=&quot;https://vimeo.com/user7519232&quot;&gt;Kenny Smith&lt;/a&gt; on &lt;a href=&quot;https://vimeo.com/&quot;&gt;Vimeo&lt;/a&gt;.&lt;br /&gt;
&lt;br /&gt;
If your organization is just evaluating team concert and would like to learn more, or understand what it will take to implement RTC successfully in your DevOps organization, then please &lt;a href=&quot;http://www.strongback.us/w3/contact.tiles&quot; target=&quot;_blank&quot;&gt;contact us&lt;/a&gt;.&lt;br /&gt;
&lt;h4&gt;
Additional helpful links on work items and queries:&lt;/h4&gt;
&lt;div&gt;
&lt;a href=&quot;https://jazz.net/products/rational-team-concert/features/wi&quot; rel=&quot;nofollow&quot; target=&quot;_blank&quot;&gt;Work Item Tracking in RTC&lt;/a&gt;&lt;/div&gt;
&lt;div&gt;
&lt;a href=&quot;https://jazz.net/help-dev/clm/index.jsp?re=1&amp;amp;topic=/com.ibm.team.concert.dotnet.doc/topics/t_creating_a_query.html&amp;amp;scope=null&quot; rel=&quot;nofollow&quot; target=&quot;_blank&quot;&gt;IBM InfoCenter: Creating work item queries&lt;/a&gt;&lt;/div&gt;
&lt;div&gt;
&lt;a href=&quot;https://jazz.net/help-dev/clm/index.jsp?re=1&amp;amp;topic=/com.ibm.team.apt.doc/topics/r_quick_query_syntax.html&amp;amp;scope=null&quot; rel=&quot;nofollow&quot; target=&quot;_blank&quot;&gt;Quick Query Syntax for the My Work View in Quick Planner (v6)&lt;/a&gt;&lt;/div&gt;
&lt;a href=&quot;https://jazz.net/library/article/1007&quot; rel=&quot;nofollow&quot; target=&quot;_blank&quot;&gt;Advanced User&#39;s Guide to Querying Work Items in Rational Team Concert&lt;/a&gt;&lt;div class=&quot;blogger-post-footer&quot;&gt;&lt;a href=&quot;http://www.strongback.us&quot;&gt;&amp;copy;2016 Strongback Consulting&lt;/a&gt;&lt;/div&gt;</content><link rel='replies' type='application/atom+xml' href='http://blog.strongbackconsulting.com/feeds/8681950481236565725/comments/default' title='Post Comments'/><link rel='replies' type='text/html' href='http://www.blogger.com/comment/fullpage/post/33508082/8681950481236565725?isPopup=true' title='0 Comments'/><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/33508082/posts/default/8681950481236565725'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/33508082/posts/default/8681950481236565725'/><link rel='alternate' type='text/html' href='http://blog.strongbackconsulting.com/2016/03/creating-and-sharing-work-item-queries.html' title='Creating and Sharing Work Item Queries in Rational Team Concert'/><author><name>Anonymous</name><uri>http://www.blogger.com/profile/13189925413502750170</uri><email>noreply@blogger.com</email><gd:image rel='http://schemas.google.com/g/2005#thumbnail' width='16' height='16' src='https://img1.blogblog.com/img/b16-rounded.gif'/></author><thr:total>0</thr:total></entry><entry><id>tag:blogger.com,1999:blog-33508082.post-5839401152713572599</id><published>2016-03-14T12:07:00.001-04:00</published><updated>2016-03-14T12:07:52.381-04:00</updated><category scheme="http://www.blogger.com/atom/ns#" term="DevOps"/><category scheme="http://www.blogger.com/atom/ns#" term="teamconcert"/><title type='text'>Video: Creating and using personal dashboards in IBM Team Concert</title><content type='html'>This video was requested by a customer to show their employees how to create a personal dashboard from a project area. These videos are in the public domain by intention, and thus our ability to share it with you. In this situation, we created a custom dashboard template in the project area&#39;s configuration. Widgets were placed in a 3 column layout, and the widgets settings are automatically created using mementos (which are predefined settings for the widget). This allows us to have a single, consistent dashboard that provides a common instrumentation for everyone to understand. We can place widgets that are backed by our team&#39;s work item queries, specific to this project.&lt;br /&gt;
&lt;br /&gt;
&lt;iframe allowfullscreen=&quot;&quot; frameborder=&quot;0&quot; height=&quot;282&quot; mozallowfullscreen=&quot;&quot; src=&quot;https://player.vimeo.com/video/158915504&quot; webkitallowfullscreen=&quot;&quot; width=&quot;500&quot;&gt;&lt;/iframe&gt;

&lt;a href=&quot;https://vimeo.com/158915504&quot;&gt;Creating a Personal Dashboard in Rational Team Concert&lt;/a&gt; from &lt;a href=&quot;https://vimeo.com/user7519232&quot;&gt;Kenny Smith&lt;/a&gt; on &lt;a href=&quot;https://vimeo.com/&quot;&gt;Vimeo&lt;/a&gt;.&lt;div class=&quot;blogger-post-footer&quot;&gt;&lt;a href=&quot;http://www.strongback.us&quot;&gt;&amp;copy;2016 Strongback Consulting&lt;/a&gt;&lt;/div&gt;</content><link rel='replies' type='application/atom+xml' href='http://blog.strongbackconsulting.com/feeds/5839401152713572599/comments/default' title='Post Comments'/><link rel='replies' type='text/html' href='http://www.blogger.com/comment/fullpage/post/33508082/5839401152713572599?isPopup=true' title='0 Comments'/><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/33508082/posts/default/5839401152713572599'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/33508082/posts/default/5839401152713572599'/><link rel='alternate' type='text/html' href='http://blog.strongbackconsulting.com/2016/03/video-creating-and-using-personal.html' title='Video: Creating and using personal dashboards in IBM Team Concert'/><author><name>Anonymous</name><uri>http://www.blogger.com/profile/13189925413502750170</uri><email>noreply@blogger.com</email><gd:image rel='http://schemas.google.com/g/2005#thumbnail' width='16' height='16' src='https://img1.blogblog.com/img/b16-rounded.gif'/></author><thr:total>0</thr:total></entry><entry><id>tag:blogger.com,1999:blog-33508082.post-3536643297361440274</id><published>2016-03-11T09:33:00.000-05:00</published><updated>2016-03-11T09:33:01.109-05:00</updated><category scheme="http://www.blogger.com/atom/ns#" term="agile"/><category scheme="http://www.blogger.com/atom/ns#" term="DevOps"/><category scheme="http://www.blogger.com/atom/ns#" term="IBM"/><category scheme="http://www.blogger.com/atom/ns#" term="teamconcert"/><title type='text'>Writing User Stories within IBM Rational Team Concert</title><content type='html'>&lt;div style=&quot;font-family: Tahoma; font-size: medium;&quot;&gt;
&lt;br /&gt;&lt;/div&gt;
&lt;h3 style=&quot;font-family: Tahoma; font-size: medium;&quot;&gt;
First Rule: Write Good User Stories&lt;/h3&gt;
&lt;a href=&quot;http://www.amazon.com/gp/product/0321205685/ref=as_li_tl?ie=UTF8&amp;amp;camp=1789&amp;amp;creative=9325&amp;amp;creativeASIN=0321205685&amp;amp;linkCode=as2&amp;amp;tag=st0edbf-20&amp;amp;linkId=7ZELSDIHGHGQ5XTU&quot; style=&quot;clear: right; float: right; margin-bottom: 1em; margin-left: 1em;&quot;&gt;&lt;img alt=&quot;User Stories Applied: For Agile Software Development&quot; border=&quot;0&quot; src=&quot;http://ws-na.amazon-adsystem.com/widgets/q?_encoding=UTF8&amp;amp;ASIN=0321205685&amp;amp;Format=_SL110_&amp;amp;ID=AsinImage&amp;amp;MarketPlace=US&amp;amp;ServiceVersion=20070822&amp;amp;WS=1&amp;amp;tag=st0edbf-20&quot; title=&quot;User Stories Applied: For Agile Software Development&quot; /&gt;&lt;/a&gt;If you are just getting started with writing user stories, I highly recommend Mike Cohn&#39;s book &lt;a href=&quot;http://www.amazon.com/gp/product/0321205685/ref=as_li_tl?ie=UTF8&amp;amp;camp=1789&amp;amp;creative=9325&amp;amp;creativeASIN=0321205685&amp;amp;linkCode=as2&amp;amp;tag=st0edbf-20&amp;amp;linkId=7ZELSDIHGHGQ5XTU&quot; rel=&quot;nofollow&quot; target=&quot;_blank&quot;&gt;User Stories Applied: For Agile Software Development&lt;/a&gt;&lt;img alt=&quot;&quot; border=&quot;0&quot; src=&quot;http://ir-na.amazon-adsystem.com/e/ir?t=st0edbf-20&amp;amp;l=as2&amp;amp;o=1&amp;amp;a=0321205685&quot; height=&quot;1&quot; style=&quot;border: none !important; margin: 0px !important;&quot; width=&quot;1&quot; /&gt;. Perhaps you&#39;re coming from a background of writing large use cases. Perhaps you&#39;re fresh out of school and not familiar with requirements management.&lt;br /&gt;
&lt;br /&gt;
&lt;a href=&quot;http://www.amazon.com/gp/product/0321635841/ref=as_li_tl?ie=UTF8&amp;amp;camp=1789&amp;amp;creative=9325&amp;amp;creativeASIN=0321635841&amp;amp;linkCode=as2&amp;amp;tag=st0edbf-20&amp;amp;linkId=PWHJ4UE2BA7HVBYO&quot; style=&quot;clear: right; float: right; margin-bottom: 1em; margin-left: 1em;&quot;&gt;&lt;img border=&quot;0&quot; src=&quot;http://ws-na.amazon-adsystem.com/widgets/q?_encoding=UTF8&amp;amp;ASIN=0321635841&amp;amp;Format=_SL110_&amp;amp;ID=AsinImage&amp;amp;MarketPlace=US&amp;amp;ServiceVersion=20070822&amp;amp;WS=1&amp;amp;tag=st0edbf-20&quot; /&gt;&lt;/a&gt;If you&#39;re already familiar with user stories and want to take requirements management to the next level, check out Dean Leffingwell&#39;s book &lt;a href=&quot;http://www.amazon.com/gp/product/0321635841/ref=as_li_tl?ie=UTF8&amp;amp;camp=1789&amp;amp;creative=9325&amp;amp;creativeASIN=0321635841&amp;amp;linkCode=as2&amp;amp;tag=st0edbf-20&amp;amp;linkId=VQ7VXESJJML57DSY&quot;&gt;Agile Software Requirements: Lean Requirements Practices for Teams, Programs, and the Enterprise (Agile Software Development Series)&lt;/a&gt;&lt;img alt=&quot;&quot; border=&quot;0&quot; src=&quot;http://ir-na.amazon-adsystem.com/e/ir?t=st0edbf-20&amp;amp;l=as2&amp;amp;o=1&amp;amp;a=0321635841&quot; height=&quot;1&quot; style=&quot;border: none !important; margin: 0px !important;&quot; width=&quot;1&quot; /&gt;&lt;img alt=&quot;&quot; border=&quot;0&quot; src=&quot;http://ir-na.amazon-adsystem.com/e/ir?t=st0edbf-20&amp;amp;l=as2&amp;amp;o=1&amp;amp;a=0321635841&quot; height=&quot;1&quot; style=&quot;border: none !important; margin: 0px !important;&quot; width=&quot;1&quot; /&gt;

&lt;br /&gt;
&lt;h4&gt;
INVEST in the content of the user story&lt;/h4&gt;
While I won&#39;t cover the book here in this blog, I will emphasise a few key points that are important to understand when working with RTC. In it you will learn about the &lt;a href=&quot;https://en.wikipedia.org/wiki/INVEST_(mnemonic)&quot; rel=&quot;nofollow&quot; target=&quot;_blank&quot;&gt;INVEST mnemonic&lt;/a&gt;, which is an acronym to describe the quality of the user story.&lt;br /&gt;
&lt;table class=&quot;wikitable&quot; style=&quot;background-color: #f9f9f9; border-collapse: collapse; border: 1px solid rgb(170, 170, 170); color: black; font-family: sans-serif; font-size: 14px; line-height: 11.2px; margin: 1em 0px;&quot;&gt;&lt;tbody&gt;
&lt;tr&gt;&lt;th style=&quot;background-color: #f2f2f2; border: 1px solid rgb(170, 170, 170); padding: 0.2em 0.4em; text-align: center;&quot;&gt;Letter&lt;/th&gt;&lt;th style=&quot;background-color: #f2f2f2; border: 1px solid rgb(170, 170, 170); padding: 0.2em 0.4em; text-align: center;&quot;&gt;Meaning&lt;/th&gt;&lt;th style=&quot;background-color: #f2f2f2; border: 1px solid rgb(170, 170, 170); padding: 0.2em 0.4em; text-align: center;&quot;&gt;Description&lt;/th&gt;&lt;/tr&gt;
&lt;tr&gt;&lt;td style=&quot;border: 1px solid rgb(170, 170, 170); padding: 0.2em 0.4em;&quot;&gt;&lt;b&gt;I&lt;/b&gt;&lt;/td&gt;&lt;td style=&quot;border: 1px solid rgb(170, 170, 170); padding: 0.2em 0.4em;&quot;&gt;&lt;a href=&quot;https://en.wikipedia.org/wiki/INVEST_(mnemonic)#Independent&quot; style=&quot;background: none; color: #0b0080; text-decoration: none;&quot;&gt;Independent&lt;/a&gt;&lt;/td&gt;&lt;td style=&quot;border: 1px solid rgb(170, 170, 170); padding: 0.2em 0.4em;&quot;&gt;The user story should be self-contained, in a way that there is no inherent dependency on another user story.&lt;/td&gt;&lt;/tr&gt;
&lt;tr&gt;&lt;td style=&quot;border: 1px solid rgb(170, 170, 170); padding: 0.2em 0.4em;&quot;&gt;&lt;b&gt;N&lt;/b&gt;&lt;/td&gt;&lt;td style=&quot;border: 1px solid rgb(170, 170, 170); padding: 0.2em 0.4em;&quot;&gt;&lt;a href=&quot;https://en.wikipedia.org/wiki/INVEST_(mnemonic)#Negotiable&quot; style=&quot;background: none; color: #0b0080; text-decoration: none;&quot;&gt;Negotiable&lt;/a&gt;&lt;/td&gt;&lt;td style=&quot;border: 1px solid rgb(170, 170, 170); padding: 0.2em 0.4em;&quot;&gt;User stories, up until they are part of an iteration, can always be changed and rewritten.&lt;/td&gt;&lt;/tr&gt;
&lt;tr&gt;&lt;td style=&quot;border: 1px solid rgb(170, 170, 170); padding: 0.2em 0.4em;&quot;&gt;&lt;b&gt;V&lt;/b&gt;&lt;/td&gt;&lt;td style=&quot;border: 1px solid rgb(170, 170, 170); padding: 0.2em 0.4em;&quot;&gt;&lt;a href=&quot;https://en.wikipedia.org/wiki/INVEST_(mnemonic)#Valuable&quot; style=&quot;background: none; color: #0b0080; text-decoration: none;&quot;&gt;Valuable&lt;/a&gt;&lt;/td&gt;&lt;td style=&quot;border: 1px solid rgb(170, 170, 170); padding: 0.2em 0.4em;&quot;&gt;A user story must deliver value to the end user.&lt;/td&gt;&lt;/tr&gt;
&lt;tr&gt;&lt;td style=&quot;border: 1px solid rgb(170, 170, 170); padding: 0.2em 0.4em;&quot;&gt;&lt;b&gt;E&lt;/b&gt;&lt;/td&gt;&lt;td style=&quot;border: 1px solid rgb(170, 170, 170); padding: 0.2em 0.4em;&quot;&gt;&lt;a href=&quot;https://en.wikipedia.org/wiki/INVEST_(mnemonic)#Estimable&quot; style=&quot;background: none; color: #0b0080; text-decoration: none;&quot;&gt;Estimable&lt;/a&gt;&lt;/td&gt;&lt;td style=&quot;border: 1px solid rgb(170, 170, 170); padding: 0.2em 0.4em;&quot;&gt;You must always be able to estimate the size of a user story.&lt;/td&gt;&lt;/tr&gt;
&lt;tr&gt;&lt;td style=&quot;border: 1px solid rgb(170, 170, 170); padding: 0.2em 0.4em;&quot;&gt;&lt;b&gt;S&lt;/b&gt;&lt;/td&gt;&lt;td style=&quot;border: 1px solid rgb(170, 170, 170); padding: 0.2em 0.4em;&quot;&gt;&lt;a href=&quot;https://en.wikipedia.org/wiki/INVEST_(mnemonic)#Small&quot; style=&quot;background: none; color: #0b0080; text-decoration: none;&quot;&gt;Small&lt;/a&gt;&lt;/td&gt;&lt;td style=&quot;border: 1px solid rgb(170, 170, 170); padding: 0.2em 0.4em;&quot;&gt;User stories should not be so big as to become impossible to plan/task/prioritize with a certain level of certainty.&lt;/td&gt;&lt;/tr&gt;
&lt;tr&gt;&lt;td style=&quot;border: 1px solid rgb(170, 170, 170); padding: 0.2em 0.4em;&quot;&gt;&lt;b&gt;T&lt;/b&gt;&lt;/td&gt;&lt;td style=&quot;border: 1px solid rgb(170, 170, 170); padding: 0.2em 0.4em;&quot;&gt;&lt;a href=&quot;https://en.wikipedia.org/wiki/INVEST_(mnemonic)#Testable&quot; style=&quot;background: none; color: #0b0080; text-decoration: none;&quot;&gt;Testable&lt;/a&gt;&lt;/td&gt;&lt;td style=&quot;border: 1px solid rgb(170, 170, 170); padding: 0.2em 0.4em;&quot;&gt;The user story or its related description must provide the necessary information to make test development possible.&lt;/td&gt;&lt;/tr&gt;
&lt;/tbody&gt;&lt;/table&gt;
RTC itself is merely a tool. The content of the tool is only as good as what the analyst puts into the tool. Garbage in - garbage out. If you learn anything from this blog, learn the INVEST mnemonic and stick to it.&lt;br /&gt;
&lt;br /&gt;
Here is an example of what a simple user story would look like. A story has 3 C&#39;s: &amp;nbsp;the card, the conversation, and the criteria. At the top of the index cards is the name of the story. On the front of the card is the conversation with the stakeholders, elaborating on this need.&lt;br /&gt;
&lt;br /&gt;
&lt;div class=&quot;separator&quot; style=&quot;clear: both; text-align: center;&quot;&gt;
&lt;a href=&quot;https://blogger.googleusercontent.com/img/b/R29vZ2xl/AVvXsEhIpPJSoMQECbJte1_t8BaM5mVJA-vHVKyPBo1-1aaacO-fOf87jbgphwmbN38mspS5gLbqtidDFF_UAC8dRnPcSDwt6Do7L7YY3txq1b0ToobI7DwJSsTlAecnewndqc6IKOc7/s1600/user-story-example.jpg&quot; imageanchor=&quot;1&quot; style=&quot;margin-left: 1em; margin-right: 1em;&quot;&gt;&lt;img border=&quot;0&quot; height=&quot;362&quot; src=&quot;https://blogger.googleusercontent.com/img/b/R29vZ2xl/AVvXsEhIpPJSoMQECbJte1_t8BaM5mVJA-vHVKyPBo1-1aaacO-fOf87jbgphwmbN38mspS5gLbqtidDFF_UAC8dRnPcSDwt6Do7L7YY3txq1b0ToobI7DwJSsTlAecnewndqc6IKOc7/s640/user-story-example.jpg&quot; width=&quot;640&quot; /&gt;&lt;/a&gt;&lt;/div&gt;
&lt;div class=&quot;separator&quot; style=&quot;clear: both; text-align: left;&quot;&gt;
&lt;br /&gt;&lt;/div&gt;
&lt;div class=&quot;separator&quot; style=&quot;clear: both; text-align: left;&quot;&gt;
Taking this approach, here is what this user story would look like in the RTC story:&lt;/div&gt;
&lt;div class=&quot;separator&quot; style=&quot;clear: both; text-align: center;&quot;&gt;
&lt;a href=&quot;https://blogger.googleusercontent.com/img/b/R29vZ2xl/AVvXsEi8ynKkFeMxBflCIhQ-bWwUY6WrAiL3Q-zIcYXiN9j9JgvQCFYHJv0kjSpnFmDfjQgqwi1J9NrTSmZL6l5a1LEb9iq9JxsAXPA5JLkYomxePTqAUz7dhjGyiqOgvN4jSvdqdinu/s1600/rtc-user-story-example-2.jpg&quot; imageanchor=&quot;1&quot; style=&quot;margin-left: 1em; margin-right: 1em;&quot;&gt;&lt;img border=&quot;0&quot; height=&quot;416&quot; src=&quot;https://blogger.googleusercontent.com/img/b/R29vZ2xl/AVvXsEi8ynKkFeMxBflCIhQ-bWwUY6WrAiL3Q-zIcYXiN9j9JgvQCFYHJv0kjSpnFmDfjQgqwi1J9NrTSmZL6l5a1LEb9iq9JxsAXPA5JLkYomxePTqAUz7dhjGyiqOgvN4jSvdqdinu/s640/rtc-user-story-example-2.jpg&quot; width=&quot;640&quot; /&gt;&lt;/a&gt;&lt;/div&gt;
&lt;br /&gt;
&lt;div class=&quot;separator&quot; style=&quot;clear: both; text-align: center;&quot;&gt;
&lt;/div&gt;
&lt;div class=&quot;separator&quot; style=&quot;clear: both; text-align: left;&quot;&gt;
&lt;br /&gt;&lt;/div&gt;
As you can see from above, the the entire content of the front of the card is placed in the Description field. We&#39;ve put the &quot;what&quot; of the card in the Summary line for brevity (this makes it easier to find in work item queries). &amp;nbsp;But what about the back of the index card (i.e. the criteria)?&lt;br /&gt;
&lt;h4&gt;
Acceptance criteria&lt;/h4&gt;
&lt;div&gt;
&lt;a href=&quot;https://blogger.googleusercontent.com/img/b/R29vZ2xl/AVvXsEjQN0uRs2nHRKgpetLhXjw_ZzJGJfBvNYK1FEdtGpaKNwR5Y7obi7M2GzKD4b8TP7Lq6iOuEYgLcEsDkctaVePZkvSeF2wpaS1cfXl4fZZyRB241zN1SxHWGcDtfDKJDnwzDTag/s1600/user-story-format.jpg&quot; imageanchor=&quot;1&quot; style=&quot;clear: right; float: right; margin-bottom: 1em; margin-left: 1em;&quot;&gt;&lt;img border=&quot;0&quot; height=&quot;154&quot; src=&quot;https://blogger.googleusercontent.com/img/b/R29vZ2xl/AVvXsEjQN0uRs2nHRKgpetLhXjw_ZzJGJfBvNYK1FEdtGpaKNwR5Y7obi7M2GzKD4b8TP7Lq6iOuEYgLcEsDkctaVePZkvSeF2wpaS1cfXl4fZZyRB241zN1SxHWGcDtfDKJDnwzDTag/s320/user-story-format.jpg&quot; width=&quot;320&quot; /&gt;&lt;/a&gt;This is likely the most neglected step in writing a user story. The back of the index card is where we should be putting acceptance criteria. This has the format of the card shown here to our right. This establishes conditions for when a person interacts and performs a series of operations, what should be expected out of the system.&lt;br /&gt;
&lt;br /&gt;
We can take the acceptance criteria content and put it on the RTC user story like this:&lt;br /&gt;
&lt;div class=&quot;separator&quot; style=&quot;clear: both; text-align: center;&quot;&gt;
&lt;a href=&quot;https://blogger.googleusercontent.com/img/b/R29vZ2xl/AVvXsEhr5OLScXkm3YI7B6gjsuXqdtCO-KabbUkfuSizRiXXzPmm8QVG4ufIV6m2Y4Q-zEXWnAfT7T81cUJA5lbuUdqPH3fU4vd304HhyBFO5bqNeNUzaBsaN4AGvYuW4zjiSTNTV47C/s1600/rtc-user-story-example.jpg&quot; imageanchor=&quot;1&quot; style=&quot;clear: left; float: left; margin-bottom: 1em; margin-right: 1em;&quot;&gt;&lt;img border=&quot;0&quot; height=&quot;274&quot; src=&quot;https://blogger.googleusercontent.com/img/b/R29vZ2xl/AVvXsEhr5OLScXkm3YI7B6gjsuXqdtCO-KabbUkfuSizRiXXzPmm8QVG4ufIV6m2Y4Q-zEXWnAfT7T81cUJA5lbuUdqPH3fU4vd304HhyBFO5bqNeNUzaBsaN4AGvYuW4zjiSTNTV47C/s640/rtc-user-story-example.jpg&quot; width=&quot;640&quot; /&gt;&lt;/a&gt;&lt;/div&gt;
&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;&lt;/div&gt;
&lt;div&gt;
&lt;br /&gt;
Acceptance criteria makes it much easier to create test cases. Whether you manage your test cases in spreadsheets, in HP ALM, or (our preference) Rational Quality Manager, having the analyst and stakeholders document what their criteria for acceptance is, makes writing the test case &lt;b&gt;much&lt;/b&gt; more efficient. While it is easy to write test cases that test conditions that the stakeholders may never think of, if you don&#39;t test for the conditions they &lt;i&gt;require&lt;/i&gt;, you&#39;ll never deliver a product that satisfies the target audience.&lt;/div&gt;
&lt;div style=&quot;font-family: &#39;Sans Serif&#39;, Verdana, Arial, Helvetica, sans-serif; font-size: small;&quot;&gt;
&lt;div style=&quot;font-family: Tahoma; font-size: medium;&quot;&gt;
&lt;h3&gt;
Additional References for User Stories&lt;/h3&gt;
&lt;div&gt;
These links below are to help you with the content of your use cases. Again, the &#39;bible&#39; of user story authoring is &lt;a href=&quot;http://www.amazon.com/gp/product/0321205685/ref=as_li_tl?ie=UTF8&amp;amp;camp=1789&amp;amp;creative=9325&amp;amp;creativeASIN=0321205685&amp;amp;linkCode=as2&amp;amp;tag=st0edbf-20&amp;amp;linkId=7ZELSDIHGHGQ5XTU&quot; rel=&quot;nofollow&quot; target=&quot;_blank&quot;&gt;Mike Cohn&#39;s book listed above&lt;/a&gt;. All the information below follow from its cannon.&amp;nbsp;&lt;/div&gt;
&lt;/div&gt;
&lt;iframe allowfullscreen=&quot;&quot; frameborder=&quot;0&quot; height=&quot;485&quot; marginheight=&quot;0&quot; marginwidth=&quot;0&quot; scrolling=&quot;no&quot; src=&quot;//www.slideshare.net/slideshow/embed_code/key/thFt6HRvL0URr3&quot; style=&quot;border-width: 1px; border: 1px solid #ccc; margin-bottom: 5px; max-width: 100%;&quot; width=&quot;595&quot;&gt; &lt;/iframe&gt; &lt;br /&gt;
&lt;div style=&quot;margin-bottom: 5px;&quot;&gt;
&lt;strong&gt; &lt;a href=&quot;https://www.slideshare.net/rickdaustin/agile-requirements-decomposition&quot; target=&quot;_blank&quot; title=&quot;Agile Requirements Decomposition&quot;&gt;Agile Requirements Decomposition&lt;/a&gt; &lt;/strong&gt; from &lt;strong&gt;&lt;a href=&quot;https://www.slideshare.net/rickdaustin&quot; target=&quot;_blank&quot;&gt;Rick Austin&lt;/a&gt;&lt;/strong&gt; &lt;/div&gt;
&lt;iframe allowfullscreen=&quot;&quot; frameborder=&quot;0&quot; height=&quot;485&quot; marginheight=&quot;0&quot; marginwidth=&quot;0&quot; scrolling=&quot;no&quot; src=&quot;//www.slideshare.net/slideshow/embed_code/key/c4OmTXwRxmTrdn&quot; style=&quot;border-width: 1px; border: 1px solid #ccc; margin-bottom: 5px; max-width: 100%;&quot; width=&quot;595&quot;&gt; &lt;/iframe&gt; &lt;br /&gt;
&lt;div style=&quot;margin-bottom: 5px;&quot;&gt;
&lt;strong&gt; &lt;a href=&quot;https://www.slideshare.net/JennyWong8/slicing-and-dicing-your-user-stories&quot; target=&quot;_blank&quot; title=&quot;Slicing and dicing your user stories&quot;&gt;Slicing and dicing your user stories&lt;/a&gt; &lt;/strong&gt; from &lt;strong&gt;&lt;a href=&quot;https://www.slideshare.net/JennyWong8&quot; target=&quot;_blank&quot;&gt;Jenny Wong&lt;/a&gt;&lt;/strong&gt; &lt;/div&gt;
&lt;/div&gt;
&lt;div style=&quot;font-family: &#39;Sans Serif&#39;, Verdana, Arial, Helvetica, sans-serif; font-size: small;&quot;&gt;
&lt;h4&gt;
Other useful resources:&lt;/h4&gt;
&lt;a href=&quot;http://www.scrumalliance.org/community/articles/2011/august/5-common-mistakes-we-make-writing-user-stories&quot; style=&quot;color: blue; font-family: Tahoma; font-size: medium;&quot;&gt;http://www.scrumalliance.org/community/articles/2011/august/5-common-mistakes-we-make-writing-user-stories&lt;/a&gt;&lt;br /&gt;
&lt;div style=&quot;font-family: Tahoma; font-size: medium;&quot;&gt;
&lt;a href=&quot;http://www.softed.com/Resources/Docs/A%20rough%20guide%20to%20elaborating%20stories%20on%20agile%20projects.pdf&quot; style=&quot;color: blue;&quot;&gt;http://www.softed.com/Resources/Docs/A%20rough%20guide%20to%20elaborating%20stories%20on%20agile%20projects.pdf&lt;/a&gt;&lt;/div&gt;
&lt;/div&gt;
&lt;div style=&quot;font-family: Tahoma; font-size: medium;&quot;&gt;
&lt;a href=&quot;http://kingsinsight.com/2010/12/03/elaborating-user-stories-by-using-acceptance-tests/&quot; style=&quot;color: blue;&quot;&gt;&lt;/a&gt;&lt;a href=&quot;http://kingsinsight.com/2010/12/03/elaborating-user-stories-by-using-acceptance-tests/&quot;&gt;http://kingsinsight.com/2010/12/03/elaborating-user-stories-by-using-acceptance-tests/&lt;/a&gt;&lt;/div&gt;
&lt;div style=&quot;font-family: Tahoma; font-size: medium;&quot;&gt;
&lt;br /&gt;&lt;/div&gt;
&lt;div style=&quot;font-family: Tahoma; font-size: medium;&quot;&gt;
&lt;br /&gt;&lt;/div&gt;
&lt;div&gt;
&lt;br /&gt;&lt;/div&gt;
&lt;div&gt;
&lt;br /&gt;&lt;/div&gt;
&lt;div&gt;
&lt;br /&gt;&lt;/div&gt;
&lt;div&gt;
&lt;br /&gt;&lt;/div&gt;
&lt;br /&gt;
&lt;div style=&quot;font-family: Tahoma; font-size: medium;&quot;&gt;
&lt;br /&gt;&lt;/div&gt;
&lt;div class=&quot;blogger-post-footer&quot;&gt;&lt;a href=&quot;http://www.strongback.us&quot;&gt;&amp;copy;2016 Strongback Consulting&lt;/a&gt;&lt;/div&gt;</content><link rel='replies' type='application/atom+xml' href='http://blog.strongbackconsulting.com/feeds/3536643297361440274/comments/default' title='Post Comments'/><link rel='replies' type='text/html' href='http://www.blogger.com/comment/fullpage/post/33508082/3536643297361440274?isPopup=true' title='0 Comments'/><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/33508082/posts/default/3536643297361440274'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/33508082/posts/default/3536643297361440274'/><link rel='alternate' type='text/html' href='http://blog.strongbackconsulting.com/2016/03/writing-user-stories-within-ibm.html' title='Writing User Stories within IBM Rational Team Concert'/><author><name>Anonymous</name><uri>http://www.blogger.com/profile/13189925413502750170</uri><email>noreply@blogger.com</email><gd:image rel='http://schemas.google.com/g/2005#thumbnail' width='16' height='16' src='https://img1.blogblog.com/img/b16-rounded.gif'/></author><media:thumbnail xmlns:media="http://search.yahoo.com/mrss/" url="https://blogger.googleusercontent.com/img/b/R29vZ2xl/AVvXsEhIpPJSoMQECbJte1_t8BaM5mVJA-vHVKyPBo1-1aaacO-fOf87jbgphwmbN38mspS5gLbqtidDFF_UAC8dRnPcSDwt6Do7L7YY3txq1b0ToobI7DwJSsTlAecnewndqc6IKOc7/s72-c/user-story-example.jpg" height="72" width="72"/><thr:total>0</thr:total></entry><entry><id>tag:blogger.com,1999:blog-33508082.post-3444112091855922487</id><published>2016-02-25T18:31:00.000-05:00</published><updated>2016-02-25T18:31:58.471-05:00</updated><category scheme="http://www.blogger.com/atom/ns#" term="#Agile"/><category scheme="http://www.blogger.com/atom/ns#" term="#DevOps"/><category scheme="http://www.blogger.com/atom/ns#" term="#IBMInterConnect"/><title type='text'>Lessons in how NOT to implement IBM DevOps tools (Antipatterns)</title><content type='html'>&lt;p&gt;This week we presented at the IBM InterConnect conference in Vegas. This was information compiled from multiple customer engagements over the past few years. &lt;/p&gt;


&lt;iframe src=&quot;//www.slideshare.net/slideshow/embed_code/key/Qse8aiR3no5mA&quot; width=&quot;595&quot; height=&quot;485&quot; frameborder=&quot;0&quot; marginwidth=&quot;0&quot; marginheight=&quot;0&quot; scrolling=&quot;no&quot; style=&quot;border:1px solid #CCC; border-width:1px; margin-bottom:5px; max-width: 100%;&quot; allowfullscreen&gt; &lt;/iframe&gt; &lt;div style=&quot;margin-bottom:5px&quot;&gt; &lt;strong&gt; &lt;a href=&quot;//www.slideshare.net/strongback/patterns-and-antipatterns-for-adopting-ibm-devops-ttools&quot; title=&quot;Patterns and Antipatterns for Adopting IBM DevOps Ttools&quot; target=&quot;_blank&quot;&gt;Patterns and Antipatterns for Adopting IBM DevOps Ttools&lt;/a&gt; &lt;/strong&gt; from &lt;strong&gt;&lt;a target=&quot;_blank&quot; href=&quot;//www.slideshare.net/strongback&quot;&gt;Strongback Consulting&lt;/a&gt;&lt;/strong&gt; &lt;/div&gt;

&lt;p&gt;If you are looking to implement the IBM platform as your Application Lifecycle Management platform of choice, and need help or direction, please contact us. We&#39;ll help you get it deployed right, the first time.  &lt;/p&gt;&lt;div class=&quot;blogger-post-footer&quot;&gt;&lt;a href=&quot;http://www.strongback.us&quot;&gt;&amp;copy;2016 Strongback Consulting&lt;/a&gt;&lt;/div&gt;</content><link rel='replies' type='application/atom+xml' href='http://blog.strongbackconsulting.com/feeds/3444112091855922487/comments/default' title='Post Comments'/><link rel='replies' type='text/html' href='http://www.blogger.com/comment/fullpage/post/33508082/3444112091855922487?isPopup=true' title='0 Comments'/><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/33508082/posts/default/3444112091855922487'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/33508082/posts/default/3444112091855922487'/><link rel='alternate' type='text/html' href='http://blog.strongbackconsulting.com/2016/02/lessons-in-how-not-to-implement-ibm.html' title='Lessons in how NOT to implement IBM DevOps tools (Antipatterns)'/><author><name>Anonymous</name><uri>http://www.blogger.com/profile/13189925413502750170</uri><email>noreply@blogger.com</email><gd:image rel='http://schemas.google.com/g/2005#thumbnail' width='16' height='16' src='https://img1.blogblog.com/img/b16-rounded.gif'/></author><thr:total>0</thr:total></entry><entry><id>tag:blogger.com,1999:blog-33508082.post-991375968708680793</id><published>2016-02-22T20:49:00.001-05:00</published><updated>2016-02-22T20:49:03.244-05:00</updated><category scheme="http://www.blogger.com/atom/ns#" term="IBMInterConnect"/><category scheme="http://www.blogger.com/atom/ns#" term="ShiftLeft"/><title type='text'>What does it mean to &quot;Shift Left&quot;?</title><content type='html'>If you are at &lt;b&gt;IBM InterConnect&lt;/b&gt;, you&#39;ll frequently hear the phrase &quot;shift left&quot;. Its meaning may go over your head at first, but here is what it means.&lt;br /&gt;
&lt;br /&gt;
First, take this chart:&lt;br /&gt;
&lt;div class=&quot;separator&quot; style=&quot;clear: both; text-align: center;&quot;&gt;
&lt;a href=&quot;https://wzekry.files.wordpress.com/2012/12/cost-per-defect.jpg&quot; imageanchor=&quot;1&quot; style=&quot;margin-left: 1em; margin-right: 1em;&quot;&gt;&lt;img border=&quot;0&quot; height=&quot;137&quot; src=&quot;https://wzekry.files.wordpress.com/2012/12/cost-per-defect.jpg&quot; width=&quot;320&quot; /&gt;&lt;/a&gt;&lt;/div&gt;
Everyone has heard this before, but the latter in the development cycle a defect is caught, the more expensive it is to fix. In the chart above, as you move from left to right, the cost goes up. Thus, when we say &quot;shift left&quot;, we mean, reducing the cost of development and maintenance of software by invoking testing earlier in the development cycle.&lt;br /&gt;
&lt;h4&gt;
How do we do shift left?&amp;nbsp;&lt;/h4&gt;
The farthest left we can push is to Unit testing. Unit testing is the process of a developer creating a code to test other code. It is &lt;i&gt;developer &lt;/i&gt;driven, but is something that can be automated as part of the build cycle. There are numerous open source and commercial unit testing solutions out there, including JUnit, cppUnit, xmlUnit, nUnit, and zUnit. Oh... you don&#39;t know what zUnit is? Well, that is a xUnit type framework for unit testing COBOL and PL/I on the z/OS (mainframe). Yes. I you read that correct. Mainframe unit tests. &amp;nbsp;Watch the video conducted by our friend Jon Sayles for more information:&lt;br /&gt;
&lt;div class=&quot;separator&quot; style=&quot;clear: both; text-align: center;&quot;&gt;
&lt;iframe width=&quot;320&quot; height=&quot;266&quot; class=&quot;YOUTUBE-iframe-video&quot; data-thumbnail-src=&quot;https://i.ytimg.com/vi/g1tCohSp6nE/0.jpg&quot; src=&quot;https://www.youtube.com/embed/g1tCohSp6nE?feature=player_embedded&quot; frameborder=&quot;0&quot; allowfullscreen&gt;&lt;/iframe&gt;&lt;/div&gt;
&lt;br /&gt;
Unit testing is an amazing, misunderstood and grossly undervalued type of testing. It BY FAR is the most valuable testing that you can do. It will actually &lt;i&gt;accelerate &lt;/i&gt;development, not retard it, which may be contrary to your initial thought.&lt;br /&gt;
&lt;br /&gt;
However, unit testing may not cover every possible scenario. It certainly may not catch security, or performance testing needs, nor will it solve the overall &#39;black box&#39;, or user acceptance testing &amp;nbsp;(UAT) need. This is where commercial tools such as &lt;a href=&quot;http://www.strongbackconsulting.com/w3/ibm/?svpage=Software-Rational-DevOps&quot; target=&quot;_blank&quot;&gt;Rational Test Workbench&lt;/a&gt;, and &lt;a href=&quot;http://www.strongbackconsulting.com/w3/ibm/?svpage=Software-Rational-DevOps&quot; target=&quot;_blank&quot;&gt;Rational Test Virtualization Server&lt;/a&gt; come into play. Test Workbench can test the UI from the browser perspective and run through various scenarios with multiple data points. Service virtualization creates stubs of the dependent systems (such as MQ, or the DB2 instance) such that you can call the the system under test, without invoking the dependent systems. The stubbing features work on all systems (including mainframe) and can stub entire subsystems (MQ, DB2, CICS, etc). This lets you you truly test the software you are developing in isolation.&lt;br /&gt;
&lt;br /&gt;
The next pillar to shift left is automation. Automating this into your DevOps continuous deployment pipeline such that these tests are conducted before &lt;i&gt;&lt;u&gt;any &lt;/u&gt;&lt;/i&gt;manual tests are conducted means spending le$$ money on regression testing, and thus catching the defects earlier in the cycle. This is shifting left.&lt;br /&gt;
&lt;br /&gt;
If this sounds of interest to you, let us set up a &lt;a href=&quot;http://www.strongbackconsulting.com/w3/contact.tiles&quot; target=&quot;_blank&quot;&gt;demo or consultation&lt;/a&gt; and show you how it can benefit your organization.&lt;br /&gt;
&lt;br /&gt;&lt;div class=&quot;blogger-post-footer&quot;&gt;&lt;a href=&quot;http://www.strongback.us&quot;&gt;&amp;copy;2016 Strongback Consulting&lt;/a&gt;&lt;/div&gt;</content><link rel='replies' type='application/atom+xml' href='http://blog.strongbackconsulting.com/feeds/991375968708680793/comments/default' title='Post Comments'/><link rel='replies' type='text/html' href='http://www.blogger.com/comment/fullpage/post/33508082/991375968708680793?isPopup=true' title='0 Comments'/><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/33508082/posts/default/991375968708680793'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/33508082/posts/default/991375968708680793'/><link rel='alternate' type='text/html' href='http://blog.strongbackconsulting.com/2016/02/what-does-it-mean-to-shift-left.html' title='What does it mean to &quot;Shift Left&quot;?'/><author><name>Anonymous</name><uri>http://www.blogger.com/profile/13189925413502750170</uri><email>noreply@blogger.com</email><gd:image rel='http://schemas.google.com/g/2005#thumbnail' width='16' height='16' src='https://img1.blogblog.com/img/b16-rounded.gif'/></author><media:thumbnail xmlns:media="http://search.yahoo.com/mrss/" url="https://img.youtube.com/vi/g1tCohSp6nE/default.jpg" height="72" width="72"/><thr:total>0</thr:total></entry><entry><id>tag:blogger.com,1999:blog-33508082.post-8503974875910721962</id><published>2016-02-19T10:49:00.001-05:00</published><updated>2016-02-19T10:49:47.149-05:00</updated><category scheme="http://www.blogger.com/atom/ns#" term="IBMInterConnect"/><title type='text'>Our sessions at IBM InterConnect 2016</title><content type='html'>&lt;span style=&quot;font-family: inherit;&quot;&gt;For those of you going to IBM &lt;a href=&quot;http://www.ibm.com/cloud-computing/us/en/interconnect/&quot; rel=&quot;nofollow&quot; target=&quot;_blank&quot;&gt;InterConnect&lt;/a&gt; next week, we will be presenting the following sessions.&amp;nbsp;&lt;/span&gt;&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
&lt;h2 class=&quot;ibm-rule&quot; id=&quot;scheduleTable&quot; style=&quot;background-color: white; border-top-color: rgb(102, 102, 102); border-top-style: solid; border-width: 2px 0px 0px; font-family: HelveticaNeue-Light, &#39;Helvetica Neue Light&#39;, &#39;Helvetica Neue&#39;, Helvetica, Arial; font-size: 1.3em; margin: 5px 0px; outline: 0px; padding: 6px 0px 0px; vertical-align: baseline;&quot;&gt;
Session Schedule&lt;/h2&gt;
&lt;div class=&quot;ibm-container-body&quot; style=&quot;background-color: white; border: 0px; clear: both; font-family: Arial, sans-serif; font-size: 12.8px; line-height: 12.288px; margin: 0px; outline: 0px; padding: 0px; vertical-align: baseline;&quot;&gt;
&lt;table class=&quot;ibm-data-table&quot; id=&quot;kitForm:scheduledSessionsTable&quot; style=&quot;border-bottom-color: rgb(204, 204, 204); border-bottom-style: solid; border-bottom-width: 1px; border-collapse: collapse; font-size: inherit; margin: 0px 0px 20px; outline: 0px; padding: 0px; vertical-align: baseline; width: 620px;&quot;&gt;&lt;thead style=&quot;font-size: inherit; margin: 0px; outline: 0px; padding: 0px; vertical-align: baseline;&quot;&gt;
&lt;tr style=&quot;border-top-color: rgb(221, 221, 221); border-top-style: solid; border-top-width: 1px; font-size: inherit; margin: 0px; outline: 0px; padding: 0px; vertical-align: baseline;&quot;&gt;&lt;th scope=&quot;col&quot; style=&quot;border-top-color: rgb(221, 221, 221); border-top-style: solid; border-top-width: 1px; font-size: inherit; margin: 0px; outline: 0px; padding: 10px 5px 10px 3px; vertical-align: top;&quot;&gt;Number&lt;/th&gt;&lt;th scope=&quot;col&quot; style=&quot;border-top-color: rgb(221, 221, 221); border-top-style: solid; border-top-width: 1px; font-size: inherit; margin: 0px; outline: 0px; padding: 10px 5px 10px 3px; vertical-align: top;&quot;&gt;Title&lt;/th&gt;&lt;th scope=&quot;col&quot; style=&quot;border-top-color: rgb(221, 221, 221); border-top-style: solid; border-top-width: 1px; font-size: inherit; margin: 0px; outline: 0px; padding: 10px 5px 10px 3px; vertical-align: top;&quot;&gt;Where&lt;/th&gt;&lt;th scope=&quot;col&quot; style=&quot;border-top-color: rgb(221, 221, 221); border-top-style: solid; border-top-width: 1px; font-size: inherit; margin: 0px; outline: 0px; padding: 10px 5px 10px 3px; vertical-align: top;&quot;&gt;When&lt;/th&gt;&lt;/tr&gt;
&lt;/thead&gt;&lt;tbody id=&quot;kitForm:scheduledSessionsTable:tbody_element&quot; style=&quot;font-size: inherit; margin: 0px; outline: 0px; padding: 0px; vertical-align: baseline;&quot;&gt;
&lt;tr style=&quot;font-size: inherit; margin: 0px; outline: 0px; padding: 0px; vertical-align: baseline;&quot;&gt;&lt;td class=&quot;colNumber&quot; style=&quot;border-left-style: none; border-left-width: 0px; border-top-color: rgb(153, 153, 153); border-top-style: solid; border-top-width: 2px; color: #555555; font-size: inherit; margin: 0px; outline: 0px; padding: 8px 10px 5px 3px; vertical-align: top;&quot;&gt;2365A&lt;/td&gt;&lt;td class=&quot;colTitle&quot; style=&quot;border-left-color: rgb(255, 255, 255); border-left-style: solid; border-left-width: 3px; border-top-color: rgb(153, 153, 153); border-top-style: solid; border-top-width: 2px; color: #555555; font-size: inherit; margin: 0px; outline: 0px; padding: 8px 5px 5px 3px; vertical-align: top;&quot;&gt;Patterns and Antipatterns for Adopting IBM DevOps Tools&lt;/td&gt;&lt;td class=&quot;colStatus&quot; style=&quot;border-left-color: rgb(255, 255, 255); border-left-style: solid; border-left-width: 3px; border-top-color: rgb(153, 153, 153); border-top-style: solid; border-top-width: 2px; color: #555555; font-size: inherit; margin: 0px; outline: 0px; padding: 8px 5px 5px 3px; vertical-align: top;&quot;&gt;&lt;span id=&quot;kitForm:scheduledSessionsTable:0:where&quot; style=&quot;border: 0px; font-size: inherit; margin: 0px; outline: 0px; padding: 0px; vertical-align: baseline;&quot;&gt;Mandalay Bay SOUTH - Surf Ballroom A&lt;/span&gt;&lt;/td&gt;&lt;td class=&quot;&quot; style=&quot;border-left-color: rgb(255, 255, 255); border-left-style: solid; border-left-width: 3px; border-top-color: rgb(153, 153, 153); border-top-style: solid; border-top-width: 2px; color: #555555; font-size: inherit; margin: 0px; outline: 0px; padding: 8px 5px 5px 3px; vertical-align: top;&quot;&gt;&lt;span id=&quot;kitForm:scheduledSessionsTable:0:when&quot; style=&quot;border: 0px; font-size: inherit; margin: 0px; outline: 0px; padding: 0px; vertical-align: baseline;&quot;&gt;Wed, 24-Feb 08:30 AM - 09:30 AM&lt;/span&gt;&lt;/td&gt;&lt;/tr&gt;
&lt;tr style=&quot;font-size: inherit; margin: 0px; outline: 0px; padding: 0px; vertical-align: baseline;&quot;&gt;&lt;td class=&quot;colNumber&quot; style=&quot;border-left-style: none; border-left-width: 0px; border-top-color: rgb(221, 221, 221); border-top-style: solid; border-top-width: 1px; color: #555555; font-size: inherit; margin: 0px; outline: 0px; padding: 8px 10px 5px 3px; vertical-align: top;&quot;&gt;2381A&lt;/td&gt;&lt;td class=&quot;colTitle&quot; style=&quot;border-left-color: rgb(255, 255, 255); border-left-style: solid; border-left-width: 3px; border-top-color: rgb(221, 221, 221); border-top-style: solid; border-top-width: 1px; color: #555555; font-size: inherit; margin: 0px; outline: 0px; padding: 8px 5px 5px 3px; vertical-align: top;&quot;&gt;Tips for Developing and Testing IBM Host Access Transformation Services Applications&lt;/td&gt;&lt;td class=&quot;colStatus&quot; style=&quot;border-left-color: rgb(255, 255, 255); border-left-style: solid; border-left-width: 3px; border-top-color: rgb(221, 221, 221); border-top-style: solid; border-top-width: 1px; color: #555555; font-size: inherit; margin: 0px; outline: 0px; padding: 8px 5px 5px 3px; vertical-align: top;&quot;&gt;&lt;span id=&quot;kitForm:scheduledSessionsTable:1:where&quot; style=&quot;border: 0px; font-size: inherit; margin: 0px; outline: 0px; padding: 0px; vertical-align: baseline;&quot;&gt;Mandalay Bay SOUTH - Surf Ballroom A&lt;/span&gt;&lt;/td&gt;&lt;td class=&quot;&quot; style=&quot;border-left-color: rgb(255, 255, 255); border-left-style: solid; border-left-width: 3px; border-top-color: rgb(221, 221, 221); border-top-style: solid; border-top-width: 1px; color: #555555; font-size: inherit; margin: 0px; outline: 0px; padding: 8px 5px 5px 3px; vertical-align: top;&quot;&gt;&lt;span id=&quot;kitForm:scheduledSessionsTable:1:when&quot; style=&quot;border: 0px; font-size: inherit; margin: 0px; outline: 0px; padding: 0px; vertical-align: baseline;&quot;&gt;Mon, 22-Feb 10:30 AM - 11:30 AM&lt;/span&gt;&lt;/td&gt;&lt;/tr&gt;
&lt;tr style=&quot;font-size: inherit; margin: 0px; outline: 0px; padding: 0px; vertical-align: baseline;&quot;&gt;&lt;td class=&quot;colNumber&quot; style=&quot;border-left-style: none; border-left-width: 0px; border-top-color: rgb(221, 221, 221); border-top-style: solid; border-top-width: 1px; color: #555555; font-size: inherit; margin: 0px; outline: 0px; padding: 8px 10px 5px 3px; vertical-align: top;&quot;&gt;2496A&lt;/td&gt;&lt;td class=&quot;colTitle&quot; style=&quot;border-left-color: rgb(255, 255, 255); border-left-style: solid; border-left-width: 3px; border-top-color: rgb(221, 221, 221); border-top-style: solid; border-top-width: 1px; color: #555555; font-size: inherit; margin: 0px; outline: 0px; padding: 8px 5px 5px 3px; vertical-align: top;&quot;&gt;The Skills Dilemma: A Panel Discussion with Peers and IBM Experts&lt;/td&gt;&lt;td class=&quot;colStatus&quot; style=&quot;border-left-color: rgb(255, 255, 255); border-left-style: solid; border-left-width: 3px; border-top-color: rgb(221, 221, 221); border-top-style: solid; border-top-width: 1px; color: #555555; font-size: inherit; margin: 0px; outline: 0px; padding: 8px 5px 5px 3px; vertical-align: top;&quot;&gt;&lt;span id=&quot;kitForm:scheduledSessionsTable:2:where&quot; style=&quot;border: 0px; font-size: inherit; margin: 0px; outline: 0px; padding: 0px; vertical-align: baseline;&quot;&gt;Mandalay Bay SOUTH - Lagoon L&lt;/span&gt;&lt;/td&gt;&lt;td class=&quot;&quot; style=&quot;border-left-color: rgb(255, 255, 255); border-left-style: solid; border-left-width: 3px; border-top-color: rgb(221, 221, 221); border-top-style: solid; border-top-width: 1px; color: #555555; font-size: inherit; margin: 0px; outline: 0px; padding: 8px 5px 5px 3px; vertical-align: top;&quot;&gt;&lt;span id=&quot;kitForm:scheduledSessionsTable:2:when&quot; style=&quot;border: 0px; font-size: inherit; margin: 0px; outline: 0px; padding: 0px; vertical-align: baseline;&quot;&gt;Tue, 23-Feb 10:00 AM - 11:00 AM&lt;/span&gt;&lt;/td&gt;&lt;/tr&gt;
&lt;/tbody&gt;&lt;/table&gt;
&lt;/div&gt;
&lt;h3 style=&quot;background-color: white; border: 0px; clear: both; font-family: Arial, sans-serif; font-size: 12.8px; line-height: 12.288px; margin: 0px; outline: 0px; padding: 0px; vertical-align: baseline;&quot;&gt;
What are these sessions about?&lt;/h3&gt;
&lt;h4 style=&quot;background-color: white; border: 0px; clear: both; font-family: Arial, sans-serif; font-size: 12.8px; line-height: 12.288px; margin: 0px; outline: 0px; padding: 0px; vertical-align: baseline;&quot;&gt;
&lt;span style=&quot;color: #555555; font-size: 12.8px; line-height: normal;&quot;&gt;Patterns and Antipatterns for Adopting IBM DevOps Tools&lt;/span&gt;&lt;/h4&gt;
&lt;div class=&quot;ibm-container-body&quot; style=&quot;background-color: white; border: 0px; clear: both; line-height: 12.288px; margin: 0px; outline: 0px; padding: 0px; vertical-align: baseline;&quot;&gt;
&lt;span style=&quot;color: #555555; line-height: normal;&quot;&gt;&lt;span style=&quot;font-family: inherit;&quot;&gt;In this, we discuss our experience implementing various DevOps tools including Rational Team Concert, DOORs Next Generation, RDz, RDi, and other editors, as well as concepts regarding Agile adoption. We&#39;ll cover what you should do, as well as examples of what not to do.&lt;/span&gt;&lt;/span&gt;&lt;/div&gt;
&lt;div class=&quot;ibm-container-body&quot; style=&quot;background-color: white; border: 0px; clear: both; font-family: Arial, sans-serif; font-size: 12.8px; line-height: 12.288px; margin: 0px; outline: 0px; padding: 0px; vertical-align: baseline;&quot;&gt;
&lt;span style=&quot;color: #555555; font-size: 12.8px; line-height: normal;&quot;&gt;&lt;br /&gt;&lt;/span&gt;&lt;/div&gt;
&lt;div class=&quot;ibm-container-body&quot; style=&quot;background-color: white; border: 0px; clear: both; font-family: Arial, sans-serif; font-size: 12.8px; line-height: 12.288px; margin: 0px; outline: 0px; padding: 0px; vertical-align: baseline;&quot;&gt;
&lt;span style=&quot;color: #555555; font-size: 12.8px; line-height: normal;&quot;&gt;&lt;br /&gt;&lt;/span&gt;&lt;/div&gt;
&lt;h4 style=&quot;background-color: white; border: 0px; clear: both; font-family: Arial, sans-serif; font-size: 12.8px; line-height: 12.288px; margin: 0px; outline: 0px; padding: 0px; vertical-align: baseline;&quot;&gt;
&lt;span style=&quot;color: #555555; font-size: 12.8px; line-height: normal;&quot;&gt;Tips for Developing and Testing IBM Host Access Transformation Services Applications&lt;/span&gt;&lt;/h4&gt;
&lt;div&gt;
&lt;span style=&quot;color: #555555; font-family: inherit;&quot;&gt;This is geared towards the audience with a general familiarity with IBM HATS. We&#39;ll go over the general flow of &amp;nbsp;designing different types of HATS apps from the simple to the complex. We&#39;ll&amp;nbsp;also&amp;nbsp;cover testing strategies and introduce a&amp;nbsp;Unit Testing framework we wrote to test custom HATS Java code in isolation from the host system. This unit test framework saves a HUGE amount of wasted time from regression errors and helps to promote and ensure quality deep in the system. We also cover some gotchas on performance testing.&amp;nbsp;&lt;/span&gt;&lt;/div&gt;
&lt;div&gt;
&lt;span style=&quot;color: #555555; font-family: inherit;&quot;&gt;&lt;br /&gt;&lt;/span&gt;&lt;/div&gt;
&lt;div&gt;
&lt;span style=&quot;color: #555555; font-family: inherit;&quot;&gt;&lt;br /&gt;&lt;/span&gt;&lt;/div&gt;
&lt;h4&gt;
&lt;span style=&quot;background-color: white; color: #555555; font-family: Arial, sans-serif; font-size: 12.8px;&quot;&gt;The Skills Dilemma: A Panel Discussion with Peers and IBM Experts&lt;/span&gt;&lt;/h4&gt;
&lt;div&gt;
&lt;span style=&quot;background-color: white; color: #555555;&quot;&gt;&lt;span style=&quot;font-family: inherit;&quot;&gt;Here, we&#39;re on a panel with others members of the IBM community (business partners and IBM&#39;ers) discussing how to get over the skills hurdle, how outsourcing is not a panacea, and how your organization can better prepare for the business challenges ahead.&lt;/span&gt;&lt;/span&gt;&lt;/div&gt;
&lt;div&gt;
&lt;span style=&quot;background-color: white; color: #555555;&quot;&gt;&lt;span style=&quot;font-family: inherit;&quot;&gt;&lt;br /&gt;&lt;/span&gt;&lt;/span&gt;&lt;/div&gt;
&lt;div&gt;
&lt;span style=&quot;background-color: white; color: #555555;&quot;&gt;&lt;span style=&quot;font-family: inherit;&quot;&gt;We look forward to seeing you next week!!&lt;/span&gt;&lt;/span&gt;&lt;/div&gt;
&lt;div class=&quot;blogger-post-footer&quot;&gt;&lt;a href=&quot;http://www.strongback.us&quot;&gt;&amp;copy;2016 Strongback Consulting&lt;/a&gt;&lt;/div&gt;</content><link rel='replies' type='application/atom+xml' href='http://blog.strongbackconsulting.com/feeds/8503974875910721962/comments/default' title='Post Comments'/><link rel='replies' type='text/html' href='http://www.blogger.com/comment/fullpage/post/33508082/8503974875910721962?isPopup=true' title='0 Comments'/><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/33508082/posts/default/8503974875910721962'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/33508082/posts/default/8503974875910721962'/><link rel='alternate' type='text/html' href='http://blog.strongbackconsulting.com/2016/02/our-sessions-at-ibm-interconnect-2016.html' title='Our sessions at IBM InterConnect 2016'/><author><name>Anonymous</name><uri>http://www.blogger.com/profile/13189925413502750170</uri><email>noreply@blogger.com</email><gd:image rel='http://schemas.google.com/g/2005#thumbnail' width='16' height='16' src='https://img1.blogblog.com/img/b16-rounded.gif'/></author><thr:total>0</thr:total></entry><entry><id>tag:blogger.com,1999:blog-33508082.post-7509041308635112512</id><published>2015-10-20T10:52:00.001-04:00</published><updated>2015-10-20T10:52:05.151-04:00</updated><category scheme="http://www.blogger.com/atom/ns#" term="DevOps"/><category scheme="http://www.blogger.com/atom/ns#" term="IBM"/><category scheme="http://www.blogger.com/atom/ns#" term="OSLC"/><category scheme="http://www.blogger.com/atom/ns#" term="rational"/><title type='text'>Anti-pattern: Using the IBM Rational Jazz Tools in Place of a Help Desk Suite</title><content type='html'>&lt;div&gt;
A common anti-pattern for the Jazz tools (&lt;abbr title=&quot;Rational Team Concert&quot;&gt;RTC&lt;/abbr&gt;, &lt;abbr title=&quot;Rational Quality Manager&quot;&gt;RQM&lt;/abbr&gt;, and &lt;abbr title=&quot;Rational DOORs Next Generation&quot;&gt;DNG&lt;/abbr&gt;) is using them in place of a true help desk application. Help desk apps are designed to handle the recording of calls to the desk, categorizing the problems, and assisting the call agent with remediating those problems. In some cases a help desk system can offer self-service functions to the end user, alleviating the load on the help desk.&amp;nbsp;&lt;/div&gt;
&lt;div&gt;
&lt;br /&gt;&lt;/div&gt;
&lt;div&gt;
The Jazz tools are designed to manage software application development lifecycle, collaboratively. As such they have specific functions, and subsequent licensing that should not be exposed directly to the end user (these&amp;nbsp;licenses&amp;nbsp;are not cheap). Rather, a role of the help desk should be separating help desk calls from true software defects. With a help desk system, an organization wants to capture the nature of EVERY call. Using RTC to capture the contents of every call is ludicrous (and expensive). It is like using a screwdriver, when you need a hammer.&amp;nbsp;RTC makes for a mediocre (at best) help desk.&amp;nbsp;&lt;/div&gt;
&lt;div&gt;
&lt;br /&gt;&lt;/div&gt;
&lt;div&gt;
Help desk items tend to have multiple different types of calls:&lt;/div&gt;
&lt;ul&gt;
&lt;li&gt;User error (RTFM)&lt;/li&gt;
&lt;li&gt;Inquiry (&quot;How do I do this? Where are the manuals? When is training?&quot;)&lt;/li&gt;
&lt;li&gt;Facilities management questions (&quot;The accounting department&#39;s A/C is not working&quot;)&lt;/li&gt;
&lt;li&gt;Occasional wrong number&lt;/li&gt;
&lt;li&gt;Defect in COTS (which requires remediation by the vendor of the product)&amp;nbsp;&lt;/li&gt;
&lt;li&gt;&lt;span style=&quot;background-color: yellow;&quot;&gt;Defect in actual software that is written by the organization, and needs to be remediated&lt;/span&gt;&lt;/li&gt;
&lt;li&gt;&lt;span style=&quot;background-color: yellow;&quot;&gt;Request for enhancement (which can be further categorized)&lt;/span&gt;&lt;/li&gt;
&lt;/ul&gt;
&lt;div&gt;
&lt;br /&gt;&lt;/div&gt;
&lt;div&gt;
As you can see, all but the last two categories are not relevant to &lt;i&gt;any&lt;/i&gt; of the Jazz tools. As such, the Jazz tools should not be used as a first line of defense for help desk. However, for these two last issues, there is an opportunity for collaboration, whereby the data entered into the help desk can go right into RTC as a defect, or task and save on data entry errors, while capturing linkage between the RTC defect and the help desk ticket.&amp;nbsp;&lt;/div&gt;
&lt;div&gt;
&lt;br /&gt;&lt;/div&gt;
&lt;br /&gt;
&lt;div&gt;
The key here is having a help desk system that is capable of doing just that. That is where the IBM Control Desk comes into play. Control Desk is a suite of components including one that integrates with the Jazz tools via OSLC. The Service Request Management feature provides full help desk management functions, including routing of tickets to appropriate queues.&amp;nbsp;&lt;/div&gt;
&lt;div&gt;
&lt;br /&gt;&lt;/div&gt;
&lt;div&gt;
Here is an overview of Control Desk&#39;s Service Management features:&lt;/div&gt;
&lt;div&gt;
&lt;br /&gt;&lt;/div&gt;
&lt;div class=&quot;separator&quot; style=&quot;clear: both; text-align: center;&quot;&gt;
&lt;iframe allowfullscreen=&quot;&quot; class=&quot;YOUTUBE-iframe-video&quot; data-thumbnail-src=&quot;https://i.ytimg.com/vi/7NgGszaEwNI/0.jpg&quot; frameborder=&quot;0&quot; height=&quot;266&quot; src=&quot;https://www.youtube.com/embed/7NgGszaEwNI?feature=player_embedded&quot; width=&quot;320&quot;&gt;&lt;/iframe&gt;&lt;/div&gt;
&lt;div class=&quot;separator&quot; style=&quot;clear: both; text-align: center;&quot;&gt;
&lt;br /&gt;&lt;/div&gt;
&lt;div class=&quot;separator&quot; style=&quot;clear: both; text-align: left;&quot;&gt;
The Tivioli Service Request Management is a piece of Control Desk that allows integration with the Jazz tools. This video belows describes how, in the process of a help desk call, the CCR can route a ticket into RTC as a software defect. By using the OSLC interface, the CCR creates a defect in RTC, via Control Desk. The work item is linked to the ticket and vice versa. This is very helpful for the software developer, as he/she can navigate bidirectionally to understand the nature of the problem, and the collaboration that has taken place previously (without having to wade through hundreds of email chains).&lt;/div&gt;
&lt;div class=&quot;separator&quot; style=&quot;clear: both; text-align: left;&quot;&gt;
&lt;br /&gt;&lt;/div&gt;
&lt;div style=&quot;text-align: center;&quot;&gt;
&lt;iframe allowfullscreen=&quot;&quot; class=&quot;YOUTUBE-iframe-video&quot; data-thumbnail-src=&quot;https://i.ytimg.com/vi/vQ4hKU6YYXI/0.jpg&quot; frameborder=&quot;0&quot; height=&quot;266&quot; src=&quot;https://www.youtube.com/embed/vQ4hKU6YYXI?feature=player_embedded&quot; width=&quot;320&quot;&gt;&lt;/iframe&gt;&lt;/div&gt;
&lt;div class=&quot;separator&quot; style=&quot;clear: both; text-align: left;&quot;&gt;
&lt;br /&gt;&lt;/div&gt;
&lt;div class=&quot;separator&quot; style=&quot;clear: both; text-align: left;&quot;&gt;
The cost of Control Desk makes this a highly competitive solution, and considering its features, a more complete solution than using RTC as a help desk. While you can customize RTC to act like a help desk, it will never provide sufficient features for the audience. When one considers the licensing cost, it especially makes sense.&amp;nbsp;&lt;/div&gt;
&lt;div class=&quot;separator&quot; style=&quot;clear: both; text-align: left;&quot;&gt;
&lt;br /&gt;&lt;/div&gt;
&lt;div class=&quot;separator&quot; style=&quot;clear: both; text-align: left;&quot;&gt;
If your organization has another help desk system, it is possible to integrate the two via the OSLC bridge API, which we have worked with in several prior engagements. However, it is important to understand that one must use the right tool for the right job, not customize a tool designed for a different job, when a cheaper, and more appropriate tool is already available.&amp;nbsp;&lt;/div&gt;
&lt;div class=&quot;separator&quot; style=&quot;clear: both; text-align: left;&quot;&gt;
&lt;br /&gt;&lt;/div&gt;
&lt;div class=&quot;separator&quot; style=&quot;clear: both; text-align: left;&quot;&gt;
For more information on RTC customization and help desk integration, &lt;a href=&quot;http://www.strongback.us/w3/contact.tiles&quot; target=&quot;_blank&quot;&gt;contact us&lt;/a&gt;, and we&#39;ll be happy to work with your needs.&amp;nbsp;&lt;/div&gt;
&lt;div&gt;
&lt;br /&gt;&lt;/div&gt;
&lt;div class=&quot;blogger-post-footer&quot;&gt;&lt;a href=&quot;http://www.strongback.us&quot;&gt;&amp;copy;2016 Strongback Consulting&lt;/a&gt;&lt;/div&gt;</content><link rel='replies' type='application/atom+xml' href='http://blog.strongbackconsulting.com/feeds/7509041308635112512/comments/default' title='Post Comments'/><link rel='replies' type='text/html' href='http://www.blogger.com/comment/fullpage/post/33508082/7509041308635112512?isPopup=true' title='0 Comments'/><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/33508082/posts/default/7509041308635112512'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/33508082/posts/default/7509041308635112512'/><link rel='alternate' type='text/html' href='http://blog.strongbackconsulting.com/2015/10/anti-pattern-using-ibm-rational-jazz.html' title='Anti-pattern: Using the IBM Rational Jazz Tools in Place of a Help Desk Suite'/><author><name>Anonymous</name><uri>http://www.blogger.com/profile/13189925413502750170</uri><email>noreply@blogger.com</email><gd:image rel='http://schemas.google.com/g/2005#thumbnail' width='16' height='16' src='https://img1.blogblog.com/img/b16-rounded.gif'/></author><media:thumbnail xmlns:media="http://search.yahoo.com/mrss/" url="https://img.youtube.com/vi/7NgGszaEwNI/default.jpg" height="72" width="72"/><thr:total>0</thr:total></entry><entry><id>tag:blogger.com,1999:blog-33508082.post-8418850423283373173</id><published>2015-08-31T13:50:00.001-04:00</published><updated>2015-08-31T13:51:49.946-04:00</updated><category scheme="http://www.blogger.com/atom/ns#" term="DevOps"/><category scheme="http://www.blogger.com/atom/ns#" term="IBM"/><category scheme="http://www.blogger.com/atom/ns#" term="rational"/><title type='text'>How to Install IBM DevOps tools with IBM Packaging Utility and Installation Manager</title><content type='html'>IBM has an extensive catalog of desktop products, especially for application and database development. Some of those tools offer features and functions that can only be realized when combined with another product. In such cases, the products need to be installed into the same Eclipse package. This presentation shows you how to combine, deploy, and update these packages in a centralized manner.&lt;br /&gt;
&lt;br /&gt;
&lt;iframe allowfullscreen=&quot;&quot; frameborder=&quot;0&quot; height=&quot;355&quot; marginheight=&quot;0&quot; marginwidth=&quot;0&quot; scrolling=&quot;no&quot; src=&quot;//www.slideshare.net/slideshow/embed_code/key/7Mxjp2kf7GEjvc&quot; style=&quot;border-width: 1px; border: 1px solid #CCC; margin-bottom: 5px; max-width: 100%;&quot; width=&quot;425&quot;&gt; &lt;/iframe&gt; &lt;br /&gt;
&lt;div style=&quot;margin-bottom: 5px;&quot;&gt;
&lt;strong&gt; &lt;a href=&quot;https://www.slideshare.net/strongback/creating-installationswithpackagingutility&quot; target=&quot;_blank&quot; title=&quot;Creating installations-with-packaging-utility&quot;&gt;Creating installations-with-packaging-utility&lt;/a&gt; &lt;/strong&gt; from &lt;strong&gt;&lt;a href=&quot;https://www.slideshare.net/strongback&quot; target=&quot;_blank&quot;&gt;Strongback Consulting&lt;/a&gt;&lt;/strong&gt; &lt;br /&gt;
&lt;br /&gt;
For more information on Tivoli Endpoint Manager, or if you need help deploying your IBM Rational DevOps tools, &lt;a href=&quot;http://www.strongback.us/w3/contact.tiles&quot; target=&quot;_blank&quot;&gt;contact us&lt;/a&gt;.&amp;nbsp;&lt;/div&gt;
&lt;div class=&quot;blogger-post-footer&quot;&gt;&lt;a href=&quot;http://www.strongback.us&quot;&gt;&amp;copy;2016 Strongback Consulting&lt;/a&gt;&lt;/div&gt;</content><link rel='replies' type='application/atom+xml' href='http://blog.strongbackconsulting.com/feeds/8418850423283373173/comments/default' title='Post Comments'/><link rel='replies' type='text/html' href='http://www.blogger.com/comment/fullpage/post/33508082/8418850423283373173?isPopup=true' title='0 Comments'/><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/33508082/posts/default/8418850423283373173'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/33508082/posts/default/8418850423283373173'/><link rel='alternate' type='text/html' href='http://blog.strongbackconsulting.com/2015/08/ibm-has-extensive-catalog-of-desktop.html' title='How to Install IBM DevOps tools with IBM Packaging Utility and Installation Manager'/><author><name>Anonymous</name><uri>http://www.blogger.com/profile/13189925413502750170</uri><email>noreply@blogger.com</email><gd:image rel='http://schemas.google.com/g/2005#thumbnail' width='16' height='16' src='https://img1.blogblog.com/img/b16-rounded.gif'/></author><thr:total>0</thr:total></entry><entry><id>tag:blogger.com,1999:blog-33508082.post-6336008781733076278</id><published>2015-08-17T13:49:00.001-04:00</published><updated>2015-08-17T13:49:19.692-04:00</updated><category scheme="http://www.blogger.com/atom/ns#" term="IBM"/><category scheme="http://www.blogger.com/atom/ns#" term="rational"/><title type='text'>Unpacking IBM Software from Passport Advantage the easy way</title><content type='html'>&lt;br /&gt;
Some of the IBM software can include multiple multi-gigabyte files, all of which are required for installation. IBM Rational Application Developer is good example. Using the normal windows unzip functionality can make for a bit of a tangled mess of a download directory if you&#39;re not careful. I&#39;ve been working with this software for over a decade and have a pretty simple way to make it go much easier.&lt;br /&gt;
&lt;br /&gt;
First, make sure you have Java installed. Open a command line and type java -version. If you get a proper version report, you should be good to go. Otherwise,&lt;a href=&quot;http://www.oracle.com/technetwork/java/javase/downloads/index.html&quot; rel=&quot;nofollow&quot; target=&quot;_blank&quot;&gt; install a Java JRE&lt;/a&gt;, and ensure you have also installed the browser plugin to make the next step go easier.&lt;br /&gt;
&lt;br /&gt;
Log into &lt;a href=&quot;http://www-01.ibm.com/software/passportadvantage/pao_customer.html&quot; rel=&quot;nofollow&quot; target=&quot;_blank&quot;&gt;Passport Advantage&lt;/a&gt; and locate the software you&#39;ve purchased. If you can, when downloading, use the Download Director option to make sure all the software is delivered into the same directory, and downloaded as fast as possible. Download Director uses a Java task to open multiple HTTP ports back to IBM to download multiple streams simultaneously. &amp;nbsp;This can mean the difference between downloading at 200Kbps vs. 1200 Kbps.&lt;br /&gt;
&lt;br /&gt;
Once the download has completed, open a command line and navigate to your DownloadDirector directory on your hard drive. Assuming you are using Windows, enter this command:&lt;br /&gt;
&lt;br /&gt;
&lt;span style=&quot;background-color: black; color: white; font-family: Courier New, Courier, monospace; font-size: large;&quot;&gt;dir /b &amp;gt; unpack.bat&lt;/span&gt;&lt;br /&gt;
&lt;br /&gt;
This will print the contents of the directory (mostly zip files) without any other attributes. Now, open the batch file in Notepad or &lt;a href=&quot;http://www.flos-freeware.ch/notepad2.html&quot; rel=&quot;nofollow&quot; target=&quot;_blank&quot;&gt;Notepad2&lt;/a&gt;. Here is an example where I downloaded the &lt;a href=&quot;https://www.ibm.com/developerworks/community/blogs/e4210f90-a515-41c9-a487-8fc7d79d7f61/entry/what_s_new_in_rational_application_developer_v9_5_beta?lang=en&quot; rel=&quot;nofollow&quot; target=&quot;_blank&quot;&gt;RAD 9.5 beta&lt;/a&gt;.&lt;br /&gt;
&lt;div class=&quot;separator&quot; style=&quot;clear: both; text-align: center;&quot;&gt;
&lt;a href=&quot;https://blogger.googleusercontent.com/img/b/R29vZ2xl/AVvXsEgFcx7V2IyXbcs-mn0Dc8Y9SKqq1GKwWvLwKCLE8GLRJtZ4Q7chdE48FNoggQ4KUsKoZYVvEtg5sE6QAABDurVmNAxCIfX3S1JORfgfC6bwWgno64RuMA-_XEiVp91W7dlYY2Tf/s1600/jarxfv.jpg&quot; imageanchor=&quot;1&quot; style=&quot;margin-left: 1em; margin-right: 1em;&quot;&gt;&lt;img border=&quot;0&quot; height=&quot;143&quot; src=&quot;https://blogger.googleusercontent.com/img/b/R29vZ2xl/AVvXsEgFcx7V2IyXbcs-mn0Dc8Y9SKqq1GKwWvLwKCLE8GLRJtZ4Q7chdE48FNoggQ4KUsKoZYVvEtg5sE6QAABDurVmNAxCIfX3S1JORfgfC6bwWgno64RuMA-_XEiVp91W7dlYY2Tf/s320/jarxfv.jpg&quot; width=&quot;320&quot; /&gt;&lt;/a&gt;&lt;/div&gt;
&lt;br /&gt;
Prepend jar -xvf in front of each file name. This calls the java jar command, which is much like a linux/unix tar command. In fact it uses nearly identical parameters (xvf).&lt;br /&gt;
&lt;b&gt;x&amp;nbsp;&lt;/b&gt;= extract&lt;br /&gt;
&lt;b&gt;v&amp;nbsp;&lt;/b&gt;= verbose (not really needed, but makes you feel like its actually doing something as the content whizzes by)&lt;br /&gt;
&lt;b&gt;f&amp;nbsp;&lt;/b&gt;= force&lt;br /&gt;
&lt;br /&gt;
This will then extract the contents of the zip files into the correct directory structure. You can then run the installer or launchpad.exe to install the software. In the case of the RAD 9.5, the installer is located in the RAD_SETUP directory:&lt;br /&gt;
&lt;div class=&quot;separator&quot; style=&quot;clear: both; text-align: center;&quot;&gt;
&lt;a href=&quot;https://blogger.googleusercontent.com/img/b/R29vZ2xl/AVvXsEh9hVsX42UhP2bz9XdoUspJleSnmLzkoaaQtlz0TqdL0aUqjAuB4GboThtu4h442oj_RRCQkznuJmKJQey3p6xOa0zFnwGEzBzZNAENcrZlNKkm1HZh-JqlHByZYmDCEZH6uzFU/s1600/directory.jpg&quot; imageanchor=&quot;1&quot; style=&quot;clear: right; float: right; margin-bottom: 1em; margin-left: 1em;&quot;&gt;&lt;img border=&quot;0&quot; src=&quot;https://blogger.googleusercontent.com/img/b/R29vZ2xl/AVvXsEh9hVsX42UhP2bz9XdoUspJleSnmLzkoaaQtlz0TqdL0aUqjAuB4GboThtu4h442oj_RRCQkznuJmKJQey3p6xOa0zFnwGEzBzZNAENcrZlNKkm1HZh-JqlHByZYmDCEZH6uzFU/s1600/directory.jpg&quot; /&gt;&lt;/a&gt;&lt;/div&gt;
&lt;div class=&quot;separator&quot; style=&quot;clear: both; text-align: center;&quot;&gt;
&lt;br /&gt;&lt;/div&gt;
Once extracted, you can then delete the zips. However, I often archive the zips to a separate drive for further reference if needed. I never archive the extracted files - too much to navigate through and too fat to store.&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;&lt;div class=&quot;blogger-post-footer&quot;&gt;&lt;a href=&quot;http://www.strongback.us&quot;&gt;&amp;copy;2016 Strongback Consulting&lt;/a&gt;&lt;/div&gt;</content><link rel='replies' type='application/atom+xml' href='http://blog.strongbackconsulting.com/feeds/6336008781733076278/comments/default' title='Post Comments'/><link rel='replies' type='text/html' href='http://www.blogger.com/comment/fullpage/post/33508082/6336008781733076278?isPopup=true' title='0 Comments'/><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/33508082/posts/default/6336008781733076278'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/33508082/posts/default/6336008781733076278'/><link rel='alternate' type='text/html' href='http://blog.strongbackconsulting.com/2015/08/unpacking-ibm-software-from-passport.html' title='Unpacking IBM Software from Passport Advantage the easy way'/><author><name>Anonymous</name><uri>http://www.blogger.com/profile/13189925413502750170</uri><email>noreply@blogger.com</email><gd:image rel='http://schemas.google.com/g/2005#thumbnail' width='16' height='16' src='https://img1.blogblog.com/img/b16-rounded.gif'/></author><media:thumbnail xmlns:media="http://search.yahoo.com/mrss/" url="https://blogger.googleusercontent.com/img/b/R29vZ2xl/AVvXsEgFcx7V2IyXbcs-mn0Dc8Y9SKqq1GKwWvLwKCLE8GLRJtZ4Q7chdE48FNoggQ4KUsKoZYVvEtg5sE6QAABDurVmNAxCIfX3S1JORfgfC6bwWgno64RuMA-_XEiVp91W7dlYY2Tf/s72-c/jarxfv.jpg" height="72" width="72"/><thr:total>0</thr:total></entry><entry><id>tag:blogger.com,1999:blog-33508082.post-8401616914974109631</id><published>2015-07-21T13:51:00.001-04:00</published><updated>2015-07-21T13:51:32.592-04:00</updated><category scheme="http://www.blogger.com/atom/ns#" term="HATS"/><category scheme="http://www.blogger.com/atom/ns#" term="IBM"/><category scheme="http://www.blogger.com/atom/ns#" term="junit"/><category scheme="http://www.blogger.com/atom/ns#" term="rational"/><title type='text'>Using JUnit to unit test IBM Rational HATS applications</title><content type='html'>&lt;h3&gt;
&lt;span style=&quot;font-family: Tahoma; orphans: 2; text-align: -webkit-auto; widows: 2;&quot;&gt;Why unit testing?&lt;/span&gt;&lt;/h3&gt;
&lt;h3&gt;
&lt;span style=&quot;font-size: small;&quot;&gt;&lt;span style=&quot;font-weight: normal;&quot;&gt;Any developer worth their salt, uses unit tests to validate that their code satisfies the task or tasks the code is supposed to do. Unit testing encourages modular development. &lt;a href=&quot;https://en.wikipedia.org/wiki/JUnit&quot; rel=&quot;nofollow&quot; target=&quot;_blank&quot;&gt;Junit &lt;/a&gt;for Java was one the first and certainly the most well known. Other frameworks for other languages have popped up all over the industry for other languages (nUnit for .NET, cppUnit for C++, etc). I won&#39;t lecture on the benefits, but will refer you to other sites for proof:&lt;/span&gt;&lt;br /&gt;
&lt;span style=&quot;font-weight: normal;&quot;&gt;&lt;a href=&quot;http://junit.org/faq.html#best_6&quot; rel=&quot;nofollow&quot; target=&quot;_blank&quot;&gt;Why not just use a debugger?&lt;/a&gt;&lt;/span&gt;&lt;br /&gt;
&lt;span style=&quot;font-weight: normal;&quot;&gt;&lt;a href=&quot;http://junit.org/faq.html#best_6&quot; target=&quot;_blank&quot;&gt;Why not just use System.out.println()?&lt;/a&gt;&lt;/span&gt;&lt;br /&gt;
&lt;span style=&quot;font-weight: normal;&quot;&gt;&lt;a href=&quot;http://stackoverflow.com/questions/10858990/why-use-junit-for-testing&quot; target=&quot;_blank&quot;&gt;Why use JUnit for testing?&lt;/a&gt;&lt;/span&gt;&lt;/span&gt;&lt;br /&gt;
&lt;br /&gt;
&lt;span style=&quot;font-family: Tahoma; orphans: 2; text-align: -webkit-auto; widows: 2;&quot;&gt;Why it&#39;s difficult to unit test HATS&lt;/span&gt;&lt;/h3&gt;
&lt;div&gt;
&lt;span style=&quot;font-family: Tahoma; orphans: 2; text-align: -webkit-auto; widows: 2;&quot;&gt;Not all HATS applications require complex testing. Many (and I mean MANY) HATS applications just use some simple customizations and one of the existing out of the box templates. Very few use anything more complex than a custom page template, and rarely ever use any custom Java code. This is quite normal. IF this is your scenario, and you have no custom Java code, then skip down to the bottom of the article.&amp;nbsp;&lt;/span&gt;&lt;/div&gt;
&lt;div&gt;
&lt;span style=&quot;font-family: Tahoma; orphans: 2; text-align: -webkit-auto; widows: 2;&quot;&gt;&lt;br /&gt;&lt;/span&gt;&lt;/div&gt;
&lt;div&gt;
&lt;span style=&quot;font-family: Tahoma; orphans: 2; text-align: -webkit-auto; widows: 2;&quot;&gt;However, some shops might need more customization than what is available out of the box. This is where some unit testing may be needed.&lt;/span&gt;&lt;/div&gt;
&lt;div&gt;
&lt;span style=&quot;font-family: Tahoma; orphans: 2; text-align: -webkit-auto; widows: 2;&quot;&gt;&lt;br /&gt;&lt;/span&gt;&lt;/div&gt;
&lt;span style=&quot;font-weight: normal;&quot;&gt;HATS relies on a runtime (Telnet connection) back to a host system. With JUnit, you really do not want to have to run a test that only tests a single class while having the whole system running and connected to the host. This is similar to issues with unit testing EJB 2.x, where you could really only test in a live environment and it required a secondary framework such as Cactus to get the results out of the live environment.&lt;/span&gt;&lt;br /&gt;
&lt;span style=&quot;font-weight: normal;&quot;&gt;&lt;br /&gt;&lt;/span&gt;
&lt;span style=&quot;font-weight: normal;&quot;&gt;This can be overcome by using what&#39;s called mocking and stubbing. By that, I mean mocking the runtime connection and stubbing the API&#39;s results. Mockito and Powermock are excellent tools for mocking, and can be used with HATS to mock the runtime. However, there is a major hurdle in using this, it is because when running a JUnit test that uses the mocking framework, you&#39;ll run into a NoClassFoundException issue, where the mocking framework cannot stub a return result because it cannot find the class to stub. Fear not, however, as we&#39;ve found the solution. Keep reading.&lt;/span&gt;&lt;br /&gt;
&lt;br /&gt;
&lt;h3&gt;
&lt;span style=&quot;font-family: Tahoma; orphans: 2; text-align: -webkit-auto; widows: 2;&quot;&gt;Introducing Mocking and Stubbing with Mockito&lt;/span&gt;&lt;/h3&gt;
&lt;div&gt;
&lt;span style=&quot;font-family: Tahoma; orphans: 2; text-align: -webkit-auto; widows: 2;&quot;&gt;This presentation (courtesy of Richard Paul), covers Mockito pretty well. Mockito also has EXCELLENT JavaDoc detailing the ins and outs of using the framework (it is such excellent JavaDoc, I use it as an example of how a developer should be creating Javadoc for his/her custom code).&amp;nbsp;&lt;/span&gt;&lt;/div&gt;
&lt;h3&gt;
&lt;div style=&quot;font-size: medium; font-weight: normal;&quot;&gt;
&lt;iframe allowfullscreen=&quot;&quot; frameborder=&quot;0&quot; height=&quot;355&quot; marginheight=&quot;0&quot; marginwidth=&quot;0&quot; scrolling=&quot;no&quot; src=&quot;https://www.slideshare.net/slideshow/embed_code/key/EPdE47kteH6hGT&quot; style=&quot;border: 1px solid rgb(204, 204, 204); margin-bottom: 5px; max-width: 100%;&quot; width=&quot;425&quot;&gt;&lt;/iframe&gt;&lt;/div&gt;
&lt;div style=&quot;font-size: medium; font-weight: normal; margin-bottom: 5px;&quot;&gt;
&lt;strong&gt;&lt;a href=&quot;https://www.slideshare.net/rapaul/mockito-presentation&quot; target=&quot;_blank&quot; title=&quot;Mocking in Java with Mockito&quot;&gt;Mocking in Java with Mockito&lt;/a&gt;&amp;nbsp;&lt;/strong&gt;from&amp;nbsp;&lt;strong&gt;&lt;a href=&quot;https://www.slideshare.net/rapaul&quot; target=&quot;_blank&quot;&gt;Richard Paul&lt;/a&gt;&lt;/strong&gt;&lt;br /&gt;
&lt;br /&gt;
Mockito is excellent at creating concrete mock objects. One of the first things you may want to mock, is a specific host screen. This is detailed below. Mockito cannot, however, mock static classes. Those must be handled by PowerMock. Keep in mind, that there are several HATS API objects that are &lt;i&gt;&lt;u&gt;static&lt;/u&gt;&lt;/i&gt;, and you will have to use PowerMock to mock those items (such as the ECLPS class).&lt;/div&gt;
&lt;/h3&gt;
&lt;h3&gt;
&lt;/h3&gt;
&lt;h3&gt;
&lt;span style=&quot;font-family: Tahoma; orphans: 2; text-align: -webkit-auto; widows: 2;&quot;&gt;Mocking i or z Screens&lt;/span&gt;&lt;/h3&gt;
&lt;div&gt;
&lt;span style=&quot;font-family: Tahoma; orphans: 2; text-align: -webkit-auto; widows: 2;&quot;&gt;When we were creating this framework, we came across a neat little constructor in the HATS API, that allows you to create a HostScreen object from an XML file. If you pass in an XML Document object &amp;nbsp;to the constructor &lt;span style=&quot;font-family: Courier New, Courier, monospace;&quot;&gt;&lt;span style=&quot;color: purple;&quot;&gt;&lt;b&gt;new &lt;/b&gt;&lt;/span&gt;HostScreen()&lt;/span&gt;, you will get an object you can then interact with.&amp;nbsp;&lt;/span&gt;&lt;span style=&quot;font-family: Tahoma; orphans: 2; text-align: -webkit-auto; widows: 2;&quot;&gt;The HATS Screen Captures are XML files, but you must read them in, and get them into a&amp;nbsp;&lt;/span&gt;org.w3c.dom.Document object. This little snippet above will do that for you.&amp;nbsp;&lt;/div&gt;
&lt;div&gt;
&lt;span style=&quot;font-family: Tahoma; orphans: 2; text-align: -webkit-auto; widows: 2;&quot;&gt;&lt;br /&gt;&lt;/span&gt;&lt;/div&gt;
&lt;div&gt;
&lt;span style=&quot;font-family: Courier New, Courier, monospace; orphans: 2; text-align: -webkit-auto; widows: 2;&quot;&gt;&lt;/span&gt;&lt;br /&gt;
&lt;div&gt;
&lt;span style=&quot;font-family: Courier New, Courier, monospace; orphans: 2; text-align: -webkit-auto; widows: 2;&quot;&gt;&lt;span style=&quot;color: purple;&quot;&gt;&lt;b&gt;protected &lt;/b&gt;&lt;/span&gt;HostScreen buildHostScreen(String fileName)&amp;nbsp;&lt;/span&gt;&lt;/div&gt;
&lt;span style=&quot;font-family: Courier New, Courier, monospace; orphans: 2; text-align: -webkit-auto; widows: 2;&quot;&gt;
&lt;div&gt;
&amp;nbsp; &amp;nbsp; &lt;span class=&quot;Apple-tab-span&quot; style=&quot;white-space: pre;&quot;&gt;  &lt;/span&gt;&lt;span style=&quot;color: purple;&quot;&gt;&lt;b&gt;throws &lt;/b&gt;&lt;/span&gt;UnsupportedEncodingException, ParserConfigurationException, IOException , SAXException &amp;nbsp;{&lt;/div&gt;
&lt;div&gt;
&amp;nbsp; &amp;nbsp; &amp;nbsp; &lt;span style=&quot;color: #38761d;&quot;&gt;//Courtesy of Strongback Consulting - www.strongback.us &lt;/span&gt;&amp;nbsp; &amp;nbsp; &amp;nbsp;&lt;/div&gt;
&lt;div&gt;
&amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; URL url=this.getClass().getResource(fileName); &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp;&lt;/div&gt;
&lt;div&gt;
&amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; String file= URLDecoder.decode(url.getFile(), &quot;UTF-8&quot;);&lt;/div&gt;
&lt;div&gt;
&amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; DocumentBuilderFactory factory = DocumentBuilderFactory.newInstance();&lt;/div&gt;
&lt;div&gt;
&amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; DocumentBuilder builder = factory.newDocumentBuilder();&lt;/div&gt;
&lt;div&gt;
&amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; Document screencapture = builder.parse(file);&lt;/div&gt;
&lt;div&gt;
&amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; HostScreen hostscreen = &lt;b&gt;&lt;span style=&quot;color: purple;&quot;&gt;new &lt;/span&gt;&lt;/b&gt;HostScreen(screencapture); &amp;nbsp; &amp;nbsp;&lt;/div&gt;
&lt;div&gt;
&amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; return hostscreen;&lt;/div&gt;
&lt;div&gt;
&amp;nbsp; &amp;nbsp; }&lt;/div&gt;
&lt;/span&gt;&lt;/div&gt;
&lt;div&gt;
&lt;br /&gt;&lt;/div&gt;
&lt;h3&gt;
&lt;span style=&quot;font-family: Tahoma; orphans: 2; text-align: -webkit-auto; widows: 2;&quot;&gt;Overcoming a key HATS impediments (missing code)&lt;/span&gt;&lt;/h3&gt;
&lt;h3&gt;
&lt;span style=&quot;font-weight: normal;&quot;&gt;&lt;span style=&quot;font-size: small;&quot;&gt;So, if you&#39;ve attempted to mock and stub, you will eventually run into a NoClassFoundException on com.ibm.eNetwork.HOD. You can try and look in the HATS runtime jar files (any of them), but you will not find it.&lt;/span&gt;&lt;/span&gt;&lt;br /&gt;
&lt;span style=&quot;font-weight: normal;&quot;&gt;&lt;span style=&quot;font-size: small;&quot;&gt;&lt;br /&gt;&lt;/span&gt;&lt;/span&gt;
&lt;span style=&quot;font-weight: normal;&quot;&gt;&lt;span style=&quot;font-size: small;&quot;&gt;On a recent project, we were working with one of the HATS product architects and asked about this particular&amp;nbsp;dilemma. As it turned out, the reference to this object is never&amp;nbsp;used, and thus not ever included in the hatsruntime.jar, nor any included HATS jar files. It is a class that is part of the Host on Demand API, and only parts of that API are actually included in the HATS toolkit - only those that are actually used. By simply creating an empty class, we were finally able to get this mock to work!&amp;nbsp;&lt;/span&gt;&lt;/span&gt;&lt;br /&gt;
&lt;span style=&quot;font-weight: normal;&quot;&gt;&lt;span style=&quot;font-size: small;&quot;&gt;&lt;br /&gt;&lt;/span&gt;&lt;/span&gt;
&lt;span style=&quot;font-weight: normal;&quot;&gt;&lt;span style=&quot;font-size: small;&quot;&gt;Just create a new package, and a new class in the package as follows:&lt;/span&gt;&lt;/span&gt;&lt;br /&gt;
&lt;span style=&quot;font-weight: normal;&quot;&gt;&lt;span style=&quot;font-size: small;&quot;&gt;&lt;br /&gt;&lt;/span&gt;&lt;/span&gt;
&lt;span style=&quot;font-family: Courier New, Courier, monospace; font-size: small;&quot;&gt;&lt;span style=&quot;color: purple;&quot;&gt;package&lt;/span&gt;&lt;span style=&quot;font-weight: normal;&quot;&gt; com.ibm.eNetwork.HOD;&lt;/span&gt;&lt;/span&gt;&lt;br /&gt;
&lt;span style=&quot;font-weight: normal;&quot;&gt;&lt;span style=&quot;font-family: Courier New, Courier, monospace; font-size: small;&quot;&gt;&lt;br /&gt;&lt;/span&gt;&lt;/span&gt;
&lt;span style=&quot;font-family: Courier New, Courier, monospace; font-size: small;&quot;&gt;&lt;span style=&quot;color: purple;&quot;&gt;public class ScreenHistory&lt;/span&gt;&lt;span style=&quot;font-weight: normal;&quot;&gt; {&lt;/span&gt;&lt;/span&gt;&lt;br /&gt;
&lt;span style=&quot;font-weight: normal;&quot;&gt;&lt;span style=&quot;font-family: Courier New, Courier, monospace;&quot;&gt;&lt;span style=&quot;color: #38761d; font-size: small;&quot;&gt;//this is never used, but required to complete&amp;nbsp;&lt;/span&gt;&lt;/span&gt;&lt;/span&gt;&lt;br /&gt;
&lt;span style=&quot;font-weight: normal;&quot;&gt;&lt;span style=&quot;font-family: Courier New, Courier, monospace;&quot;&gt;&lt;span style=&quot;color: #38761d; font-size: small;&quot;&gt;//a mock object&lt;/span&gt;&lt;/span&gt;&lt;/span&gt;&lt;br /&gt;
&lt;span style=&quot;font-weight: normal;&quot;&gt;&lt;span style=&quot;font-family: Courier New, Courier, monospace; font-size: small;&quot;&gt;}&lt;/span&gt;&lt;/span&gt;&lt;/h3&gt;
&lt;h3&gt;
&lt;br /&gt;
&lt;div&gt;
&lt;span style=&quot;font-size: small; font-weight: normal;&quot;&gt;Now, you should be able to build your mock object.&lt;/span&gt;&lt;/div&gt;
&lt;div&gt;
&lt;span style=&quot;font-size: small; font-weight: normal;&quot;&gt;&lt;br /&gt;&lt;/span&gt;&lt;/div&gt;
&lt;span style=&quot;font-family: Tahoma; orphans: 2; text-align: -webkit-auto; widows: 2;&quot;&gt;What to test&lt;/span&gt;&lt;/h3&gt;
&lt;div&gt;
&lt;span style=&quot;font-family: Tahoma; orphans: 2; text-align: -webkit-auto; widows: 2;&quot;&gt;If you have a Java class that does not use any HATS API (such as a convenience class, a POJO, or utility class), then you likely do not need to mock it. However, there are several types of HATS objects that require mocking. These include:&lt;/span&gt;&lt;/div&gt;
&lt;ul style=&quot;font-family: Tahoma; orphans: 2; text-align: -webkit-auto; widows: 2;&quot;&gt;
&lt;ul&gt;
&lt;li&gt;Business logic - use the snippet of code above to help you create the HostScreen object&lt;/li&gt;
&lt;li&gt;Custom Widgets&amp;nbsp;&lt;/li&gt;
&lt;li&gt;Custom Components&lt;/li&gt;
&lt;li&gt;Custom Screen Recognition (yes, this is a real thing you can create to handle custom screen recognition if all the other options leave you dry)&lt;/li&gt;
&lt;li&gt;Macro Custom Actions (yep, another thing you can create custom)&lt;/li&gt;
&lt;/ul&gt;
&lt;/ul&gt;
&lt;div&gt;
In general, not only can you mock these items, but you should mock the objects above. Testing them in a mock framework will prove highly fruitful. You can debug the code in isolation, without being connected to a mainframe or AS/400. You do need to gather screen captures first. This is beneficial also, because in some conditions, you might have to have different test data everytime you go to a specific screen. Mocking, allows you to use the same screen capture for multiple tests. Also, you can run through multiple scenarios in a single unit test. Just grab screen capture for each scenario.&amp;nbsp;&lt;/div&gt;
&lt;h3&gt;
Guidelines&lt;/h3&gt;
&lt;div&gt;
Here are a few general guidelines to to help you with this process:&lt;/div&gt;
&lt;ul style=&quot;font-family: Tahoma; orphans: 2; text-align: -webkit-auto; widows: 2;&quot;&gt;
&lt;li style=&quot;display: inline; list-style: none;&quot;&gt;&lt;ul&gt;
&lt;li&gt;&quot;Pull up&quot; common code into a super class, so all subclasses can reuse the same code (keep it D.R.Y.)&lt;/li&gt;
&lt;li&gt;It may not seem like it at first, but unit testing is FASTER than debugging in a live environment.&lt;/li&gt;
&lt;li&gt;Debugging JUnit code is even faster.&amp;nbsp;&lt;/li&gt;
&lt;li&gt;Be sure to account for multiple scenarios.&lt;/li&gt;
&lt;li&gt;Make it part of your continuous integration plan - have Team Concert, or Jenkins run a build on every checkin of code.&lt;/li&gt;
&lt;/ul&gt;
&lt;/li&gt;
&lt;/ul&gt;
&lt;h3&gt;
Other types of testing to be concerned with&lt;/h3&gt;
&lt;div&gt;
Unit testing only goes so far. It is not a replacement for full system testing, or security testing. Keep these testing types in mind also:&lt;/div&gt;
&lt;ul style=&quot;font-family: Tahoma; orphans: 2; text-align: -webkit-auto; widows: 2;&quot;&gt;
&lt;li style=&quot;display: inline; list-style: none;&quot;&gt;&lt;ul&gt;
&lt;li&gt;Functional testing - &lt;abbr title=&quot;Rational Functional Tester&quot;&gt;RFT&lt;/abbr&gt;, and Selenium. RFT has the benefit of being able to run function tests against a telnet application (5250 or 3270). Reuse the same data in HATS&lt;/li&gt;
&lt;li&gt;Performance Testing&lt;/li&gt;
&lt;li&gt;Policy and compliance testing (ADA, screen readers, etc)&lt;/li&gt;
&lt;li&gt;Security testing (white box, and black box)&lt;/li&gt;
&lt;/ul&gt;
&lt;/li&gt;
&lt;/ul&gt;
&lt;div class=&quot;blogger-post-footer&quot;&gt;&lt;a href=&quot;http://www.strongback.us&quot;&gt;&amp;copy;2016 Strongback Consulting&lt;/a&gt;&lt;/div&gt;</content><link rel='replies' type='application/atom+xml' href='http://blog.strongbackconsulting.com/feeds/8401616914974109631/comments/default' title='Post Comments'/><link rel='replies' type='text/html' href='http://www.blogger.com/comment/fullpage/post/33508082/8401616914974109631?isPopup=true' title='0 Comments'/><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/33508082/posts/default/8401616914974109631'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/33508082/posts/default/8401616914974109631'/><link rel='alternate' type='text/html' href='http://blog.strongbackconsulting.com/2015/07/using-junit-to-unit-test-ibm-rational.html' title='Using JUnit to unit test IBM Rational HATS applications'/><author><name>Anonymous</name><uri>http://www.blogger.com/profile/13189925413502750170</uri><email>noreply@blogger.com</email><gd:image rel='http://schemas.google.com/g/2005#thumbnail' width='16' height='16' src='https://img1.blogblog.com/img/b16-rounded.gif'/></author><thr:total>0</thr:total></entry><entry><id>tag:blogger.com,1999:blog-33508082.post-4144062206859169094</id><published>2015-02-21T10:05:00.002-05:00</published><updated>2015-02-21T10:05:54.445-05:00</updated><category scheme="http://www.blogger.com/atom/ns#" term="IBMInterConnect"/><title type='text'>Strongback Presentations at IBM InterConnect 2015</title><content type='html'>Strongback will be hosting two presentations this year. These are in the DevOps tracks, and in the Mandalay Bay side of the conference. &lt;br /&gt;
&lt;br /&gt;
&lt;strong style=&quot;background-color: white; color: #222222; font-family: arial, sans-serif, verdana, helvetica; font-size: 13.3333330154419px;&quot;&gt;DAX-5162 :&lt;/strong&gt;&lt;span style=&quot;background-color: white; font-family: arial, sans-serif, verdana, helvetica; font-size: 13.3333330154419px;&quot;&gt;&lt;span style=&quot;color: #222222;&quot;&gt;&amp;nbsp;&lt;/span&gt;&lt;span style=&quot;color: blue;&quot;&gt;C-ing is Believing: Being Smart about C/C++ Development on AIX and Linux&amp;nbsp;&lt;/span&gt;&lt;/span&gt;&lt;br /&gt;
&lt;br style=&quot;background-color: white; color: #222222; font-family: arial, sans-serif, verdana, helvetica; font-size: 13.3333330154419px;&quot; /&gt;
&lt;strong style=&quot;background-color: white; color: #222222; font-family: arial, sans-serif, verdana, helvetica; font-size: 13.3333330154419px;&quot;&gt;Session Type :&amp;nbsp;&lt;/strong&gt;&lt;span style=&quot;background-color: white; color: #222222; font-family: arial, sans-serif, verdana, helvetica; font-size: 13.3333330154419px;&quot;&gt;Meet the Experts&lt;/span&gt;&lt;br /&gt;
&lt;strong style=&quot;background-color: white; color: #222222; font-family: arial, sans-serif, verdana, helvetica; font-size: 13.3333330154419px;&quot;&gt;Date/Time :&amp;nbsp;&lt;/strong&gt;&lt;span style=&quot;color: #38761d;&quot;&gt;&lt;strong style=&quot;background-color: white; font-family: arial, sans-serif, verdana, helvetica; font-size: 13.3333330154419px;&quot;&gt;Tuesday Feb 24, 12&amp;nbsp;&lt;/strong&gt;&lt;span style=&quot;background-color: white; font-family: arial, sans-serif, verdana, helvetica; font-size: 13.3333330154419px;&quot;&gt;-&lt;b&gt;12:50 PM&lt;/b&gt; (Pacific Time)&lt;/span&gt;&lt;/span&gt;&lt;br /&gt;
&lt;strong style=&quot;background-color: white; color: #222222; font-family: arial, sans-serif, verdana, helvetica; font-size: 13.3333330154419px;&quot;&gt;Venue :&amp;nbsp;&lt;/strong&gt;&lt;span style=&quot;background-color: white; color: #222222; font-family: arial, sans-serif, verdana, helvetica; font-size: 13.3333330154419px;&quot;&gt;Mandalay Bay Expo Hall&lt;/span&gt;&lt;br /&gt;
&lt;strong style=&quot;background-color: white; color: #222222; font-family: arial, sans-serif, verdana, helvetica; font-size: 13.3333330154419px;&quot;&gt;Room :&amp;nbsp;&lt;/strong&gt;&lt;span style=&quot;background-color: white; color: #222222; font-family: arial, sans-serif, verdana, helvetica; font-size: 13.3333330154419px;&quot;&gt;Dev Ops &amp;amp; CE Engagement Center&lt;/span&gt;&lt;br /&gt;
&lt;span style=&quot;background-color: white; color: #222222; font-family: arial, sans-serif, verdana, helvetica; font-size: 13.3333330154419px;&quot;&gt;&lt;br /&gt;&lt;/span&gt;
&lt;span style=&quot;background-color: white; color: #222222; font-family: arial, sans-serif, verdana, helvetica; font-size: 13.3333330154419px;&quot;&gt;&lt;b&gt;Abstract:&amp;nbsp;&lt;/b&gt;&lt;/span&gt;&lt;br /&gt;
Finding talent for C/C++ development for UNIX systems can be a challenge.
However, it does not have to be so difficult. Using Rational Developer, you can
have more junior developers or cross-skilled developers do the kind of slick
development that punches above their weight class. See how the productivity
features of the editors far exceed what vi can do. See how static code
analysis can reduce your defect cycle time to streamline code maintenance and
improve the performance of your applications.&lt;br /&gt;
&lt;br /&gt;&lt;span style=&quot;background-color: white; color: #222222; font-family: arial, sans-serif, verdana, helvetica; font-size: 13.3333330154419px;&quot;&gt;&lt;br /&gt;&lt;/span&gt;
&lt;span style=&quot;background-color: white; color: #222222; font-family: arial, sans-serif, verdana, helvetica; font-size: 13.3333330154419px;&quot;&gt;&lt;br /&gt;&lt;/span&gt;
&lt;span style=&quot;background-color: white; color: #222222; font-family: arial, sans-serif, verdana, helvetica; font-size: 13.3333330154419px;&quot;&gt;&lt;br /&gt;&lt;/span&gt;
&lt;strong style=&quot;background-color: white; color: #222222; font-family: arial, sans-serif, verdana, helvetica; font-size: 13.3333330154419px;&quot;&gt;DAX-3966 :&lt;/strong&gt;&lt;span style=&quot;background-color: white; font-family: arial, sans-serif, verdana, helvetica; font-size: 13.3333330154419px;&quot;&gt;&lt;span style=&quot;color: #222222;&quot;&gt;&amp;nbsp;&lt;/span&gt;&lt;span style=&quot;color: blue;&quot;&gt;Green Screens? Verde Screens? Internationalize and Modernize Your Green Screens with Rational HATS&lt;/span&gt;&lt;/span&gt;&lt;br /&gt;
&lt;br style=&quot;background-color: white; color: #222222; font-family: arial, sans-serif, verdana, helvetica; font-size: 13.3333330154419px;&quot; /&gt;
&lt;strong style=&quot;background-color: white; color: #222222; font-family: arial, sans-serif, verdana, helvetica; font-size: 13.3333330154419px;&quot;&gt;Session Type :&amp;nbsp;&lt;/strong&gt;&lt;span style=&quot;background-color: white; color: #222222; font-family: arial, sans-serif, verdana, helvetica; font-size: 13.3333330154419px;&quot;&gt;Breakout Session&lt;/span&gt;&lt;br /&gt;
&lt;strong style=&quot;background-color: white; color: #222222; font-family: arial, sans-serif, verdana, helvetica; font-size: 13.3333330154419px;&quot;&gt;Date/Time :&amp;nbsp;&lt;/strong&gt;&lt;span class=&quot;aBn&quot; data-term=&quot;goog_1298850746&quot; style=&quot;background-color: white; border-bottom-color: rgb(204, 204, 204); border-bottom-style: dashed; border-bottom-width: 1px; font-family: arial, sans-serif, verdana, helvetica; font-size: 13.3333330154419px; position: relative; top: -2px; z-index: 0;&quot; tabindex=&quot;0&quot;&gt;&lt;span class=&quot;aQJ&quot; style=&quot;color: #38761d; font-family: Arial, Helvetica, sans-serif; font-size: 10pt; position: relative; top: 2px; z-index: -1;&quot;&gt;&lt;b&gt;Thursday, 26-Feb, 10:30 AM-11:30 AM (Pacific Time)&lt;/b&gt;&lt;/span&gt;&lt;/span&gt;&lt;br /&gt;
&lt;strong style=&quot;background-color: white; color: #222222; font-family: arial, sans-serif, verdana, helvetica; font-size: 13.3333330154419px;&quot;&gt;Venue :&amp;nbsp;&lt;/strong&gt;&lt;span style=&quot;background-color: white; color: #222222; font-family: arial, sans-serif, verdana, helvetica; font-size: 13.3333330154419px;&quot;&gt;Mandalay Bay&lt;/span&gt;&lt;br /&gt;
&lt;strong style=&quot;background-color: white; color: #222222; font-family: arial, sans-serif, verdana, helvetica; font-size: 13.3333330154419px;&quot;&gt;Room :&amp;nbsp;&lt;/strong&gt;&lt;span style=&quot;background-color: white; color: #222222; font-family: arial, sans-serif, verdana, helvetica; font-size: 13.3333330154419px;&quot;&gt;Islander Ballroom H&lt;/span&gt;&lt;br /&gt;
&lt;span style=&quot;background-color: white; color: #222222; font-family: arial, sans-serif, verdana, helvetica; font-size: 13.3333330154419px;&quot;&gt;&lt;br /&gt;&lt;/span&gt;
&lt;span style=&quot;background-color: white; color: #222222; font-family: arial, sans-serif, verdana, helvetica; font-size: 13.3333330154419px;&quot;&gt;&lt;b&gt;Abstract:&lt;/b&gt;&lt;/span&gt;&lt;br /&gt;
Rational HATS is a solution to dynamically transform 3270 or 5250
green screens into rich web applications. It is a highly extensible product
written in Java EE. We will show you how to extend the product to
translate field labels on the fly into multiple languages. We&#39;ll also discuss
the product&#39;s support for different character sets.&lt;div class=&quot;blogger-post-footer&quot;&gt;&lt;a href=&quot;http://www.strongback.us&quot;&gt;&amp;copy;2016 Strongback Consulting&lt;/a&gt;&lt;/div&gt;</content><link rel='replies' type='application/atom+xml' href='http://blog.strongbackconsulting.com/feeds/4144062206859169094/comments/default' title='Post Comments'/><link rel='replies' type='text/html' href='http://www.blogger.com/comment/fullpage/post/33508082/4144062206859169094?isPopup=true' title='0 Comments'/><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/33508082/posts/default/4144062206859169094'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/33508082/posts/default/4144062206859169094'/><link rel='alternate' type='text/html' href='http://blog.strongbackconsulting.com/2015/02/strongback-presentations-at-ibm.html' title='Strongback Presentations at IBM InterConnect 2015'/><author><name>Anonymous</name><uri>http://www.blogger.com/profile/13189925413502750170</uri><email>noreply@blogger.com</email><gd:image rel='http://schemas.google.com/g/2005#thumbnail' width='16' height='16' src='https://img1.blogblog.com/img/b16-rounded.gif'/></author><thr:total>0</thr:total></entry><entry><id>tag:blogger.com,1999:blog-33508082.post-492111454248966042</id><published>2014-10-17T10:30:00.001-04:00</published><updated>2014-10-17T10:30:08.722-04:00</updated><category scheme="http://www.blogger.com/atom/ns#" term="HATS"/><category scheme="http://www.blogger.com/atom/ns#" term="IBM"/><category scheme="http://www.blogger.com/atom/ns#" term="mainframe"/><category scheme="http://www.blogger.com/atom/ns#" term="rational"/><title type='text'>Making IBM Rational HATS A Strategic Investment</title><content type='html'>Here is another presentation we did a the IBM Innovate conference in June 2014. Using HATS to create web services from 5250 or 3270 terminal applications is a common use case for HATS. You can also &lt;i&gt;consume &lt;/i&gt;services either in the interface (i.e. RESTful or JSON), or through HATS macros or Business Logic&amp;nbsp;(i.e. custom HATS Java code). HATS can also connect to relational databases using Business Logic. With the IBM i, &amp;nbsp;you can also integrate with PCML (Program Call Markup Language) interfaced IBM i apps.&lt;br /&gt;
&lt;br /&gt;
&lt;iframe allowfullscreen=&quot;&quot; frameborder=&quot;0&quot; height=&quot;355&quot; marginheight=&quot;0&quot; marginwidth=&quot;0&quot; scrolling=&quot;no&quot; src=&quot;//www.slideshare.net/slideshow/embed_code/40397253&quot; style=&quot;border-width: 1px; border: 1px solid #CCC; margin-bottom: 5px; max-width: 100%;&quot; width=&quot;425&quot;&gt; &lt;/iframe&gt; &lt;br /&gt;
&lt;div style=&quot;margin-bottom: 5px;&quot;&gt;
&lt;strong&gt; &lt;a href=&quot;https://www.slideshare.net/strongback/making-rational-hats-a-strategic-investment&quot; target=&quot;_blank&quot; title=&quot;Making Rational HATS a Strategic Investment&quot;&gt;Making Rational HATS a Strategic Investment&lt;/a&gt; &lt;/strong&gt; from &lt;strong&gt;&lt;a href=&quot;https://www.slideshare.net/strongback&quot; target=&quot;_blank&quot;&gt;Strongback Consulting&lt;/a&gt;&lt;/strong&gt; &lt;br /&gt;
&lt;br /&gt;
If you are interested in additional HATS related links and content, check out our Delicious.com links:&amp;nbsp;&lt;a href=&quot;https://delicious.com/strongback/hats&quot;&gt;https://delicious.com/strongback/hats&lt;/a&gt;. You can also find related content&amp;nbsp;using the labels on the right hand side of this blog.&lt;br /&gt;
&lt;br /&gt;
If you need assistance with your current HATS environment we can help there as well. Contact us!&amp;nbsp;&lt;/div&gt;
&lt;div style=&quot;text-align: right;&quot;&gt;
&lt;!-- Begin Zoho Form --&gt;

&lt;br /&gt;
&lt;form accept-charset=&quot;UTF-8&quot; action=&quot;https://crm.zoho.com/crm/WebToLeadForm&quot; method=&quot;POST&quot; name=&quot;WebToLeads1263889000000073003&quot; onsubmit=&quot;return validateSF(this)&quot;&gt;
&lt;div id=&quot;salesforce&quot;&gt;
&lt;link href=&quot;http://www.strongback.us/w3/styles/style.css&quot; rel=&quot;stylesheet&quot; type=&quot;text/css&quot;&gt;&lt;/link&gt;
&lt;script src=&quot;http://www.strongback.us/w3/js/functions.js&quot; type=&quot;text/javascript&quot;&gt;&lt;/script&gt;
          &lt;input name=&quot;xnQsjsdp&quot; style=&quot;display: none;&quot; type=&quot;text&quot; value=&quot;XQe9CPoAUGJthYo@kRl79w$$&quot; /&gt; &lt;input id=&quot;zc_gad&quot; name=&quot;zc_gad&quot; type=&quot;hidden&quot; value=&quot;&quot; /&gt; &lt;input name=&quot;xmIwtLD&quot; style=&quot;display: none;&quot; type=&quot;text&quot; value=&quot;pHfCjsLzbsmS-YKcGC2di0FBt4z5xwzr&quot; /&gt; &lt;input name=&quot;actionType&quot; style=&quot;display: none;&quot; type=&quot;text&quot; value=&quot;TGVhZHM=&quot; /&gt; &lt;input name=&quot;returnURL&quot; style=&quot;display: none;&quot; type=&quot;text&quot; value=&quot;&quot; /&gt;
          
          &lt;input name=&quot;Lead Source&quot; type=&quot;hidden&quot; value=&quot;http://blog.strongbackconsulting.com/&quot; /&gt;
          &lt;br /&gt;
&lt;div class=&quot;ask&quot;&gt;
&lt;/div&gt;
&lt;label for=&quot;first_name&quot;&gt;
               &lt;sup&gt;*&lt;/sup&gt;First Name
          &lt;/label&gt;
          &lt;input id=&quot;first_name&quot; maxlength=&quot;20&quot; name=&quot;First Name&quot; placeholder=&quot;John&quot; required=&quot;required&quot; size=&quot;20&quot; type=&quot;text&quot; /&gt; &lt;br /&gt;
&lt;label for=&quot;last_name&quot;&gt;Last Name&lt;/label&gt;
          &lt;input id=&quot;last_name&quot; maxlength=&quot;40&quot; name=&quot;Last Name&quot; placeholder=&quot;Doe&quot; size=&quot;20&quot; type=&quot;text&quot; /&gt; &lt;br /&gt;
&lt;label for=&quot;email&quot;&gt;
               &lt;sup&gt;*&lt;/sup&gt;Email
          &lt;/label&gt;
          &lt;input id=&quot;email&quot; maxlength=&quot;80&quot; name=&quot;Email&quot; placeholder=&quot;jdoe@strongback.com&quot; required=&quot;required&quot; size=&quot;20&quot; type=&quot;email&quot; /&gt; &lt;br /&gt;
&lt;label for=&quot;phone&quot;&gt;
               &lt;sup&gt;*&lt;/sup&gt;Phone
          &lt;/label&gt;
          &lt;input id=&quot;phone&quot; maxlength=&quot;30&quot; name=&quot;Phone&quot; placeholder=&quot;(555) 555-1212&quot; required=&quot;required&quot; size=&quot;20&quot; type=&quot;text&quot; /&gt; &lt;br /&gt;
&lt;label for=&quot;company&quot;&gt;Company&lt;/label&gt;
          &lt;input id=&quot;company&quot; maxlength=&quot;100&quot; name=&quot;Company&quot; placeholder=&quot;My company name&quot; size=&quot;20&quot; type=&quot;text&quot; /&gt; &lt;br /&gt;
&lt;label for=&quot;description&quot;&gt;Comments&lt;/label&gt;
          &lt;textarea cols=&quot;23&quot; id=&quot;Description&quot; maxlength=&quot;1000&quot; name=&quot;Description&quot; rows=&quot;6&quot;&gt;&lt;/textarea&gt;
&lt;br /&gt;
&lt;input id=&quot;gobutton&quot; name=&quot;submit&quot; type=&quot;submit&quot; value=&quot;Go!&quot; /&gt;
     &lt;/div&gt;
&lt;/form&gt;
&lt;!-- END ZOHO FORM --&gt;
&lt;/div&gt;
&lt;div class=&quot;blogger-post-footer&quot;&gt;&lt;a href=&quot;http://www.strongback.us&quot;&gt;&amp;copy;2016 Strongback Consulting&lt;/a&gt;&lt;/div&gt;</content><link rel='replies' type='application/atom+xml' href='http://blog.strongbackconsulting.com/feeds/492111454248966042/comments/default' title='Post Comments'/><link rel='replies' type='text/html' href='http://www.blogger.com/comment/fullpage/post/33508082/492111454248966042?isPopup=true' title='0 Comments'/><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/33508082/posts/default/492111454248966042'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/33508082/posts/default/492111454248966042'/><link rel='alternate' type='text/html' href='http://blog.strongbackconsulting.com/2014/10/making-ibm-rational-hats-strategic.html' title='Making IBM Rational HATS A Strategic Investment'/><author><name>Anonymous</name><uri>http://www.blogger.com/profile/13189925413502750170</uri><email>noreply@blogger.com</email><gd:image rel='http://schemas.google.com/g/2005#thumbnail' width='16' height='16' src='https://img1.blogblog.com/img/b16-rounded.gif'/></author><thr:total>0</thr:total></entry><entry><id>tag:blogger.com,1999:blog-33508082.post-5346495436564341558</id><published>2014-10-15T09:48:00.000-04:00</published><updated>2014-10-15T09:48:00.953-04:00</updated><category scheme="http://www.blogger.com/atom/ns#" term="rational"/><category scheme="http://www.blogger.com/atom/ns#" term="webdesign"/><category scheme="http://www.blogger.com/atom/ns#" term="WebSphere"/><title type='text'>13 steps you need to take to improve your web site performance</title><content type='html'>&lt;h4&gt;
&lt;span style=&quot;font-family: Tahoma; orphans: 2; text-align: -webkit-auto; widows: 2;&quot;&gt;Consolidate your CSS&lt;/span&gt;&lt;/h4&gt;
&lt;h4&gt;
&lt;div style=&quot;orphans: 2; widows: 2;&quot;&gt;
&lt;span style=&quot;font-family: Tahoma;&quot;&gt;&lt;span style=&quot;font-weight: normal;&quot;&gt;There is no reason to have more than 3 stylesheets in your application (with a few notable exceptions). In most cases, 1 will suffice. If you have a CSS for every page, you are doing it very very wrong. CSS should be reused across multiple pages. If the page is supposed to have the same theme as another, just different content, then why have a different CSS? Refactor your CSS so that it applies across your website. This not only makes it less to download, but makes it more manageable in the long term.&lt;/span&gt;&lt;/span&gt;&lt;/div&gt;
&lt;div style=&quot;orphans: 2; widows: 2;&quot;&gt;
&lt;span style=&quot;font-family: Tahoma;&quot;&gt;&lt;span style=&quot;font-weight: normal;&quot;&gt;&lt;br /&gt;&lt;/span&gt;&lt;/span&gt;&lt;/div&gt;
&lt;div style=&quot;orphans: 2; widows: 2;&quot;&gt;
&lt;span style=&quot;font-family: Tahoma;&quot;&gt;&lt;span style=&quot;font-weight: normal;&quot;&gt;What many neophyte web designers do not realize, is that every single Javascript, CSS file, and image file represents a separate HTTP call. A web page has to make multiple trips to a website, and does so serially. That means the more files from the same site, the more calls it has to make, and each call adds latency to the web page.&amp;nbsp;&lt;/span&gt;&lt;/span&gt;&lt;/div&gt;
&lt;div style=&quot;orphans: 2; widows: 2;&quot;&gt;
&lt;span style=&quot;font-family: Tahoma;&quot;&gt;&lt;span style=&quot;font-weight: normal;&quot;&gt;&lt;br /&gt;&lt;/span&gt;&lt;/span&gt;&lt;/div&gt;
&lt;span style=&quot;font-family: Tahoma; orphans: 2; text-align: -webkit-auto; widows: 2;&quot;&gt;Consolidate your JavaScript&lt;/span&gt;&lt;/h4&gt;
&lt;h4&gt;
&lt;span style=&quot;font-family: Tahoma; font-weight: normal; orphans: 2; text-align: -webkit-auto; widows: 2;&quot;&gt;First, read the second paragraph above.&lt;/span&gt;&lt;br /&gt;
&lt;span style=&quot;font-family: Tahoma; font-weight: normal; orphans: 2; text-align: -webkit-auto; widows: 2;&quot;&gt;Second, look to see how you can reuse some Javascript functions. You might also delight in using a Javascript framework such as JQuery, or Dojo, which will make your Javascript writing more efficient, and allow you to reuse code that has already been written and perfected by someone else.&amp;nbsp;&lt;/span&gt;&lt;br /&gt;
&lt;span style=&quot;font-family: Tahoma; font-weight: normal; orphans: 2; text-align: -webkit-auto; widows: 2;&quot;&gt;&lt;br /&gt;&lt;/span&gt;
&lt;span style=&quot;font-family: Tahoma; orphans: 2; text-align: -webkit-auto; widows: 2;&quot;&gt;Use a CDN to host your JavaScript frameworks&lt;/span&gt;&lt;/h4&gt;
&lt;h4&gt;
&lt;div style=&quot;orphans: 2; widows: 2;&quot;&gt;
&lt;span style=&quot;font-family: Tahoma;&quot;&gt;&lt;span style=&quot;font-weight: normal;&quot;&gt;Remember my comment about pulling down multiple files in serial? Well, its only serial if its from the same web site. If from another website, it can do so in parallel. If you are using a Javascript framework, you can pull it from a content delivery network (CDN) such as &lt;a href=&quot;https://developers.google.com/speed/libraries/devguide&quot; rel=&quot;nofollow&quot; target=&quot;_blank&quot;&gt;Google&#39;s Hosted Library&lt;/a&gt;. This also means less HTTP traffic on your network, and therefor less work on your servers. Keep in mind however, that this may not work well if your target audience is behind a firewall. Some firewall might prohibit access to these sites. In such situations, you could host a CDN behind your firewall, and even host your own customized Javascript libraries (or CSS libraries).&lt;/span&gt;&lt;/span&gt;&lt;/div&gt;
&lt;div style=&quot;orphans: 2; widows: 2;&quot;&gt;
&lt;span style=&quot;font-family: Tahoma;&quot;&gt;&lt;span style=&quot;font-weight: normal;&quot;&gt;&lt;br /&gt;&lt;/span&gt;&lt;/span&gt;&lt;/div&gt;
&lt;span style=&quot;font-family: Tahoma; orphans: 2; text-align: -webkit-auto; widows: 2;&quot;&gt;Minify your static files&lt;/span&gt;&lt;/h4&gt;
&lt;div&gt;
&lt;span style=&quot;font-family: Tahoma; orphans: 2; text-align: -webkit-auto; widows: 2;&quot;&gt;The &lt;a href=&quot;http://yui.github.io/yuicompressor/&quot; rel=&quot;nofollow&quot; target=&quot;_blank&quot;&gt;YUI Compressor&lt;/a&gt; is a great utility to compress static text files such as CSS, and Javascript. It can be run on a command line. This removes redundant whitespace from these files, and optionally&amp;nbsp;redundant&amp;nbsp;semicolons.&amp;nbsp;&lt;/span&gt;&lt;span style=&quot;font-family: Tahoma; orphans: 2; widows: 2;&quot;&gt;This can save as much as 70% in file size transfer. Now, your first objection might be &quot;but I can&#39;t read minified Javascript when I&#39;m debugging!&quot;.&amp;nbsp;&lt;/span&gt;&lt;/div&gt;
&lt;div&gt;
&lt;span style=&quot;font-family: Tahoma; orphans: 2; widows: 2;&quot;&gt;&lt;br /&gt;&lt;/span&gt;&lt;/div&gt;
&lt;div&gt;
&lt;span style=&quot;font-family: Tahoma; orphans: 2; widows: 2;&quot;&gt;Well... duh! Don&#39;t minify it in your IDE, and certainly don&#39;t check in minified code to your SCM. Rather, make this part of your build automation, and minify it right before you package your WAR file. Add the following ANT lines into an ANT target (replace the variables accordingly). Then it gets minified on build, but yet is fully readable in your source editors and source code management systems.&lt;/span&gt;&lt;/div&gt;
&lt;div&gt;
&lt;span style=&quot;font-family: Tahoma; orphans: 2; text-align: -webkit-auto; widows: 2;&quot;&gt;&lt;br /&gt;&lt;/span&gt;&lt;/div&gt;
&lt;div&gt;
&lt;div class=&quot;line&quot; style=&quot;font-family: monospace; font-size: 13px;&quot;&gt;
&lt;span class=&quot;webkit-html-tag&quot;&gt;&amp;lt;path&lt;span class=&quot;webkit-html-attribute&quot;&gt;&amp;nbsp;&lt;span class=&quot;webkit-html-attribute-name&quot;&gt;id&lt;/span&gt;=&quot;&lt;span class=&quot;webkit-html-attribute-value&quot;&gt;yui.classpath&lt;/span&gt;&quot;&lt;/span&gt;&amp;gt;&lt;/span&gt;&lt;/div&gt;
&lt;div class=&quot;collapsible-content&quot; style=&quot;font-family: monospace; font-size: 13px; margin-left: 1em;&quot;&gt;
&lt;span class=&quot;text&quot;&gt;&lt;/span&gt;&lt;div class=&quot;line&quot;&gt;
&lt;span class=&quot;webkit-html-tag&quot;&gt;&amp;lt;pathelement&lt;span class=&quot;webkit-html-attribute&quot;&gt;&amp;nbsp;&lt;span class=&quot;webkit-html-attribute-name&quot;&gt;location&lt;/span&gt;=&quot;&lt;span class=&quot;webkit-html-attribute-value&quot;&gt;${yuicompressor.jar}&lt;/span&gt;&quot;&lt;/span&gt;/&amp;gt;&lt;/span&gt;&lt;/div&gt;
&lt;span class=&quot;text&quot;&gt;&lt;/span&gt;&lt;div class=&quot;line&quot;&gt;
&lt;span class=&quot;webkit-html-tag&quot;&gt;&amp;lt;pathelement&lt;span class=&quot;webkit-html-attribute&quot;&gt;&amp;nbsp;&lt;span class=&quot;webkit-html-attribute-name&quot;&gt;location&lt;/span&gt;=&quot;&lt;span class=&quot;webkit-html-attribute-value&quot;&gt;${yuicompressor-ant-task.jar}&lt;/span&gt;&quot;&lt;/span&gt;/&amp;gt;&lt;/span&gt;&lt;/div&gt;
&lt;span class=&quot;text&quot;&gt;&lt;/span&gt;&lt;/div&gt;
&lt;div class=&quot;line&quot; style=&quot;font-family: monospace; font-size: 13px;&quot;&gt;
&lt;span class=&quot;webkit-html-tag&quot;&gt;&amp;lt;/path&amp;gt;&lt;/span&gt;&lt;/div&gt;
&lt;/div&gt;
&lt;div class=&quot;line&quot; style=&quot;font-family: monospace; font-size: 13px;&quot;&gt;
&lt;span class=&quot;webkit-html-tag&quot;&gt;&lt;br /&gt;&lt;/span&gt;&lt;/div&gt;
&lt;div&gt;
&lt;div class=&quot;line&quot; style=&quot;font-family: monospace; font-size: 13px;&quot;&gt;
&lt;span class=&quot;webkit-html-tag&quot;&gt;&amp;lt;yui-compressor&lt;span class=&quot;webkit-html-attribute&quot;&gt;&amp;nbsp;&lt;span class=&quot;webkit-html-attribute-name&quot;&gt;warn&lt;/span&gt;=&quot;&lt;span class=&quot;webkit-html-attribute-value&quot;&gt;false&lt;/span&gt;&quot;&lt;/span&gt;&lt;span class=&quot;webkit-html-attribute&quot;&gt;&amp;nbsp;&lt;span class=&quot;webkit-html-attribute-name&quot;&gt;munge&lt;/span&gt;=&quot;&lt;span class=&quot;webkit-html-attribute-value&quot;&gt;true&lt;/span&gt;&quot;&lt;/span&gt;&lt;span class=&quot;webkit-html-attribute&quot;&gt;&amp;nbsp;&lt;span class=&quot;webkit-html-attribute-name&quot;&gt;jsSuffix&lt;/span&gt;=&quot;&lt;span class=&quot;webkit-html-attribute-value&quot;&gt;.js&lt;/span&gt;&quot;&lt;/span&gt;&lt;span class=&quot;webkit-html-attribute&quot;&gt;&amp;nbsp;&lt;span class=&quot;webkit-html-attribute-name&quot;&gt;cssSuffix&lt;/span&gt;=&quot;&lt;span class=&quot;webkit-html-attribute-value&quot;&gt;.css&lt;/span&gt;&quot;&lt;/span&gt;&lt;span class=&quot;webkit-html-attribute&quot;&gt;&amp;nbsp;&lt;span class=&quot;webkit-html-attribute-name&quot;&gt;preserveAllSemiColons&lt;/span&gt;=&quot;&lt;span class=&quot;webkit-html-attribute-value&quot;&gt;false&lt;/span&gt;&quot;&lt;/span&gt;&lt;span class=&quot;webkit-html-attribute&quot;&gt;&amp;nbsp;&lt;span class=&quot;webkit-html-attribute-name&quot;&gt;fromDir&lt;/span&gt;=&quot;&lt;span class=&quot;webkit-html-attribute-value&quot;&gt;${path.web}/common/js&lt;/span&gt;&quot;&lt;/span&gt;&lt;span class=&quot;webkit-html-attribute&quot;&gt;&amp;nbsp;&lt;span class=&quot;webkit-html-attribute-name&quot;&gt;toDir&lt;/span&gt;=&quot;&lt;span class=&quot;webkit-html-attribute-value&quot;&gt;${basedir}/js&lt;/span&gt;&quot;&lt;/span&gt;&amp;gt;&lt;/span&gt;&lt;/div&gt;
&lt;div class=&quot;collapsible-content&quot; style=&quot;font-family: monospace; font-size: 13px; margin-left: 1em;&quot;&gt;
&lt;span class=&quot;text&quot;&gt;&lt;/span&gt;&lt;div class=&quot;line&quot;&gt;
&lt;span class=&quot;webkit-html-tag&quot;&gt;&amp;lt;include&lt;span class=&quot;webkit-html-attribute&quot;&gt;&amp;nbsp;&lt;span class=&quot;webkit-html-attribute-name&quot;&gt;name&lt;/span&gt;=&quot;&lt;span class=&quot;webkit-html-attribute-value&quot;&gt;*.js&lt;/span&gt;&quot;&lt;/span&gt;/&amp;gt;&lt;/span&gt;&lt;/div&gt;
&lt;span class=&quot;text&quot;&gt;&lt;/span&gt;&lt;/div&gt;
&lt;div class=&quot;line&quot; style=&quot;font-family: monospace; font-size: 13px;&quot;&gt;
&lt;span class=&quot;webkit-html-tag&quot;&gt;&amp;lt;/yui-compressor&amp;gt;&lt;/span&gt;&lt;/div&gt;
&lt;/div&gt;
&lt;div&gt;
&lt;span style=&quot;font-family: Tahoma; orphans: 2; text-align: -webkit-auto; widows: 2;&quot;&gt;&lt;br /&gt;&lt;/span&gt;&lt;/div&gt;
&lt;div&gt;
&lt;span style=&quot;font-family: Tahoma; orphans: 2; text-align: -webkit-auto; widows: 2;&quot;&gt;If you use CDN delivered Javascript frameworks, make sure you at least use the minified version in production.&amp;nbsp;&lt;/span&gt;&lt;/div&gt;
&lt;h4&gt;
&lt;span style=&quot;font-family: Tahoma; orphans: 2; text-align: -webkit-auto; widows: 2;&quot;&gt;Shrink your JSP&#39;s by moving styles into your style sheets&lt;/span&gt;&lt;/h4&gt;
&lt;h4&gt;
&lt;span style=&quot;font-family: Tahoma; font-weight: normal; orphans: 2; text-align: -webkit-auto; widows: 2;&quot;&gt;This is likely self descriptive, but the smaller your JSP, the less load on your application server. Move this into your CSS file. Same logic applies to Javascript functions in your JSP&#39;s. Move those functions into your JS files. Its easier to cache static content, than JSP&#39;s, thus taking further load off the application server. Also, only use an &amp;lt;img&amp;gt; tag if the image is part of the &lt;i&gt;&lt;u&gt;content&lt;/u&gt;&lt;/i&gt;. If its there for decoration, use a background-image attribute for a stylesheet.&amp;nbsp;&lt;/span&gt;&lt;/h4&gt;
&lt;h4&gt;
&lt;span style=&quot;font-family: Tahoma; orphans: 2; text-align: -webkit-auto; widows: 2;&quot;&gt;Combine smaller images into a single sprite&lt;/span&gt;&lt;/h4&gt;
&lt;div&gt;
&lt;span style=&quot;font-family: Tahoma; orphans: 2; text-align: -webkit-auto; widows: 2;&quot;&gt;Some web sites that have lots of small images that represent controls, or navigational elements. Many are less than 10px in width or height. These can be combined into a single sheet, and &lt;a href=&quot;http://www.w3schools.com/css/css_image_sprites.asp&quot; rel=&quot;nofollow&quot; target=&quot;_blank&quot;&gt;referenced as sprites&lt;/a&gt; in a stylesheet using the following syntax:&lt;/span&gt;&lt;/div&gt;
&lt;div&gt;
&lt;span class=&quot;highELE&quot; style=&quot;color: brown; font-family: Consolas, &#39;courier new&#39;; font-size: 14.3999996185303px;&quot;&gt;#home&amp;nbsp;&lt;/span&gt;&lt;span style=&quot;background-color: white; font-family: Consolas, &#39;courier new&#39;; font-size: 14.3999996185303px;&quot;&gt;{&lt;/span&gt;&lt;br style=&quot;font-family: Consolas, &#39;courier new&#39;; font-size: 14.3999996185303px;&quot; /&gt;&lt;span style=&quot;background-color: white; font-family: Consolas, &#39;courier new&#39;; font-size: 14.3999996185303px;&quot;&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&lt;/span&gt;&lt;span class=&quot;highATT&quot; style=&quot;color: crimson; font-family: Consolas, &#39;courier new&#39;; font-size: 14.3999996185303px;&quot;&gt;width:&lt;/span&gt;&lt;span class=&quot;highVAL&quot; style=&quot;color: mediumblue; font-family: Consolas, &#39;courier new&#39;; font-size: 14.3999996185303px;&quot;&gt;&amp;nbsp;46px;&lt;/span&gt;&lt;br style=&quot;font-family: Consolas, &#39;courier new&#39;; font-size: 14.3999996185303px;&quot; /&gt;&lt;span style=&quot;background-color: white; font-family: Consolas, &#39;courier new&#39;; font-size: 14.3999996185303px;&quot;&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&lt;/span&gt;&lt;span class=&quot;highATT&quot; style=&quot;color: crimson; font-family: Consolas, &#39;courier new&#39;; font-size: 14.3999996185303px;&quot;&gt;height:&lt;/span&gt;&lt;span class=&quot;highVAL&quot; style=&quot;color: mediumblue; font-family: Consolas, &#39;courier new&#39;; font-size: 14.3999996185303px;&quot;&gt;&amp;nbsp;44px;&lt;/span&gt;&lt;br style=&quot;font-family: Consolas, &#39;courier new&#39;; font-size: 14.3999996185303px;&quot; /&gt;&lt;span style=&quot;background-color: white; font-family: Consolas, &#39;courier new&#39;; font-size: 14.3999996185303px;&quot;&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&lt;/span&gt;&lt;span class=&quot;highATT&quot; style=&quot;color: crimson; font-family: Consolas, &#39;courier new&#39;; font-size: 14.3999996185303px;&quot;&gt;background:&lt;/span&gt;&lt;span class=&quot;highVAL&quot; style=&quot;color: mediumblue; font-family: Consolas, &#39;courier new&#39;; font-size: 14.3999996185303px;&quot;&gt;&amp;nbsp;url(img_navsprites.gif) 0 0;&lt;/span&gt;&lt;br style=&quot;font-family: Consolas, &#39;courier new&#39;; font-size: 14.3999996185303px;&quot; /&gt;&lt;span style=&quot;background-color: white; font-family: Consolas, &#39;courier new&#39;; font-size: 14.3999996185303px;&quot;&gt;}&lt;/span&gt;&lt;/div&gt;
&lt;div&gt;
&lt;span style=&quot;font-family: Tahoma; orphans: 2; text-align: -webkit-auto; widows: 2;&quot;&gt;&lt;br /&gt;&lt;/span&gt;&lt;/div&gt;
&lt;div&gt;
&lt;span style=&quot;font-family: Tahoma; orphans: 2; text-align: -webkit-auto; widows: 2;&quot;&gt;This can dramatically cut down on the number of HTTP calls and subsequently cut down on the total page load time.&lt;/span&gt;&lt;/div&gt;
&lt;h4&gt;
&lt;span style=&quot;font-family: Tahoma; orphans: 2; text-align: -webkit-auto; widows: 2;&quot;&gt;Shrink your images&lt;/span&gt;&lt;/h4&gt;
&lt;div&gt;
&lt;span style=&quot;font-family: Tahoma; orphans: 2; text-align: -webkit-auto; widows: 2;&quot;&gt;High resolution images are important, when they are part of the &lt;i&gt;&lt;u&gt;content&lt;/u&gt;&lt;/i&gt;. If they are merely decoration, such as in the case of stock images for a business web site, lose the resolution, and save some bandwidth. That image of people in business suits poised over a conference table does not need to be high definition 1920px wide. Such images can be as large as 2MB. When they load in a browser, they will typically buffer (i.e. slowly render from top to bottom). Worse, if they are as images, or in imported stylesheets, the whole site will wait until the entire image is loaded. This adds the most unneeded latency. In some cases, you might only need a portion of the image, but just dropped the entire stock image in the directory for&amp;nbsp;convenience. In this situation, crop the image to only the dimensions you actually use.&amp;nbsp;&lt;/span&gt;&lt;/div&gt;
&lt;h4&gt;
&lt;span style=&quot;font-family: Tahoma; orphans: 2; text-align: -webkit-auto; widows: 2;&quot;&gt;Replace images with CSS&lt;/span&gt;&lt;/h4&gt;
&lt;div&gt;
&lt;span style=&quot;font-family: Tahoma; orphans: 2; text-align: -webkit-auto; widows: 2;&quot;&gt;I have a huge pet peeve with creating images of words because you want to use a font that is only available in Photoshop, or because you want some effect on the text. HTML5 and CSS3 allow you to use&amp;nbsp;@font-face to load the font from a stylesheet on demand. The new standards also allow you to apply effects such as skew and text shadow Also, an image is not indexable, nor is it searchable by web crawlers, thus reducing your potential SEO. Remove the images, and put in simple text, decorated with &lt;a href=&quot;http://www.w3schools.com/css/css3_text_effects.asp&quot; rel=&quot;nofollow&quot; target=&quot;_blank&quot;&gt;CSS3 text effects&lt;/a&gt;.&amp;nbsp;&lt;/span&gt;&lt;/div&gt;
&lt;h4&gt;
&lt;span style=&quot;font-family: Tahoma; orphans: 2; text-align: -webkit-auto; widows: 2;&quot;&gt;Always, always, ALWAYS use an HTTP Server - never your application server transport chain&lt;/span&gt;&lt;/h4&gt;
&lt;div&gt;
&lt;span style=&quot;font-family: Tahoma; orphans: 2; text-align: -webkit-auto; widows: 2;&quot;&gt;No matter the Java application server you use, it will not be as efficient at HTTP transfer as a true HTTP server. Period. The WebSphere Application Server&#39;s HTTP&amp;nbsp;transport&amp;nbsp;chain is &lt;b&gt;&lt;i&gt;&lt;u&gt;not&amp;nbsp;&lt;/u&gt;&lt;/i&gt;&lt;/b&gt;an&amp;nbsp;HTTP server. It serves up content as HTTP, but this is a raw I/O channel. Rather, it is easy to setup the IBM HTTP Server (or Apache Web Server) to front end the traffic. It offers the benefits of URL Rewriting, caching, and load balancing to back end clusters. Even with Tomcat, you should use the mod_jk module (i.e. the AJP connector) to front end with Apache. I even recommend using an HTTP server in front of web services servers. This allows the web server to proxy information into one of possibly many servers in a WebSphere cell (if you use WAS), without having to call a specific port for a specific JVM member. This means that you can move applications around to different application servers to best meet the resource demands, without affecting the web services consumer.&amp;nbsp;&lt;/span&gt;&lt;/div&gt;
&lt;h4&gt;
&lt;span style=&quot;font-family: Tahoma; orphans: 2; text-align: -webkit-auto; widows: 2;&quot;&gt;Add a caching&amp;nbsp;&lt;/span&gt;&lt;span style=&quot;font-family: Tahoma; orphans: 2; text-align: -webkit-auto; widows: 2;&quot;&gt;proxy for static content&lt;/span&gt;&lt;/h4&gt;
&lt;div&gt;
&lt;span style=&quot;font-family: Tahoma; orphans: 2; text-align: -webkit-auto; widows: 2;&quot;&gt;When it comes to caching, the closer to the browser, the better. A caching proxy can cache images, style sheets, javascript files, and more for longer periods of time than a browser, and can intelligently cache it for multiple clients and applications. For example, if you have 50 applications in your environment and 20 of them use the same 10 images, and the same 5 Javascript libraries, then running traffic through an caching proxy means you save that much more traffic on your application server.&amp;nbsp;&lt;/span&gt;&lt;/div&gt;
&lt;h4&gt;
&lt;span style=&quot;font-family: Tahoma; orphans: 2; text-align: -webkit-auto; widows: 2;&quot;&gt;Move validation logic to the browser&lt;/span&gt;&lt;/h4&gt;
&lt;div style=&quot;orphans: 2; widows: 2;&quot;&gt;
&lt;span style=&quot;font-family: Tahoma;&quot;&gt;Form validation is now highly mature in Javascript frameworks, and while you shouldn&#39;t&amp;nbsp;necessarily&amp;nbsp;remove the validation from existing Java code, you are well served to add client side validation. This means less round-trips back to the server.&amp;nbsp;&lt;/span&gt;&lt;/div&gt;
&lt;h4&gt;
&lt;span style=&quot;font-family: Tahoma; orphans: 2; text-align: -webkit-auto; widows: 2;&quot;&gt;Use WebSphere Dynacache or eXtreme Scale for dynamic caching&lt;/span&gt;&lt;/h4&gt;
&lt;div&gt;
&lt;span style=&quot;font-family: Tahoma; orphans: 2; widows: 2;&quot;&gt;If you have data that cannot be cached, and must be calculated either on a session or application level, the WebSphere dynacache and eXtreme Scale are excellent tools to improve application response time. Both can be used to cache user session data, application context data, and more. Dynacache is included with all versions of WebSphere Application Server, but eXtreme Scale is bundled only with Network Deployment version. They do require some custom API calls to implement, and they do tie you to a specific application server. However, if you&#39;re going to need something this caliber, you&#39;re likely going to need the most scalable app server out there... which is WebSphere App Server.&amp;nbsp;&lt;/span&gt;&lt;/div&gt;
&lt;h4&gt;
&lt;span style=&quot;font-family: Tahoma; orphans: 2; text-align: -webkit-auto; widows: 2;&quot;&gt;Scan and analyze your Java based web app&lt;/span&gt;&lt;/h4&gt;
&lt;div&gt;
&lt;span style=&quot;font-family: Tahoma; orphans: 2; text-align: -webkit-auto; widows: 2;&quot;&gt;We could certainly go into great detail on application maintenance, but we can summarize all these steps in one category: static code analysis. If you are running Rational Application Developer (RAD), you have one of the most powerful static code analysis tools on the market. This best kept secret of RAD is extremely good at finding common anti-patterns.&amp;nbsp;&lt;/span&gt;&lt;/div&gt;
&lt;div&gt;
&lt;span style=&quot;font-family: Tahoma; orphans: 2; text-align: -webkit-auto; widows: 2;&quot;&gt;&lt;div&gt;
&lt;ul&gt;
&lt;li&gt;&lt;span style=&quot;text-align: -webkit-auto;&quot;&gt;541+ provided rules&lt;/span&gt;&lt;/li&gt;
&lt;li&gt;&lt;span style=&quot;text-align: -webkit-auto;&quot;&gt;Integrated results view with click-to-source navigation&lt;/span&gt;&lt;/li&gt;
&lt;li&gt;&lt;span style=&quot;text-align: -webkit-auto;&quot;&gt;Explanations, examples, and quick fixes&lt;/span&gt;&lt;/li&gt;
&lt;li&gt;&lt;span style=&quot;text-align: -webkit-auto;&quot;&gt;Supports customer rule creation based on rule templates&lt;/span&gt;&lt;/li&gt;
&lt;li&gt;&lt;span style=&quot;text-align: -webkit-auto;&quot;&gt;Extensive context sensitive help&lt;/span&gt;&lt;/li&gt;
&lt;li&gt;&lt;span style=&quot;text-align: -webkit-auto;&quot;&gt;Produces HTML/PDF reports with violations and violation metrics&lt;/span&gt;&lt;/li&gt;
&lt;li&gt;&lt;span style=&quot;text-align: -webkit-auto;&quot;&gt;Supports configuration of rule sets for use in different scopes and environments&lt;/span&gt;&lt;/li&gt;
&lt;li&gt;&lt;span style=&quot;text-align: -webkit-auto;&quot;&gt;Run interactively or invoke from command line&lt;/span&gt;&lt;/li&gt;
&lt;li&gt;&lt;span style=&quot;text-align: -webkit-auto;&quot;&gt;Integrate with automated builds&lt;/span&gt;&lt;/li&gt;
&lt;/ul&gt;
&lt;div&gt;
A single run with this tool can identify defects and performance bottlenecks before they occur.&amp;nbsp;&lt;/div&gt;
&lt;/div&gt;
&lt;div&gt;
&lt;br /&gt;&lt;/div&gt;
&lt;/span&gt;&lt;/div&gt;
&lt;div class=&quot;blogger-post-footer&quot;&gt;&lt;a href=&quot;http://www.strongback.us&quot;&gt;&amp;copy;2016 Strongback Consulting&lt;/a&gt;&lt;/div&gt;</content><link rel='replies' type='application/atom+xml' href='http://blog.strongbackconsulting.com/feeds/5346495436564341558/comments/default' title='Post Comments'/><link rel='replies' type='text/html' href='http://www.blogger.com/comment/fullpage/post/33508082/5346495436564341558?isPopup=true' title='0 Comments'/><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/33508082/posts/default/5346495436564341558'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/33508082/posts/default/5346495436564341558'/><link rel='alternate' type='text/html' href='http://blog.strongbackconsulting.com/2014/10/13-steps-you-need-to-take-to-improve.html' title='13 steps you need to take to improve your web site performance'/><author><name>Anonymous</name><uri>http://www.blogger.com/profile/13189925413502750170</uri><email>noreply@blogger.com</email><gd:image rel='http://schemas.google.com/g/2005#thumbnail' width='16' height='16' src='https://img1.blogblog.com/img/b16-rounded.gif'/></author><thr:total>0</thr:total></entry><entry><id>tag:blogger.com,1999:blog-33508082.post-2399115060154946221</id><published>2014-09-02T09:54:00.002-04:00</published><updated>2014-09-02T09:54:45.490-04:00</updated><category scheme="http://www.blogger.com/atom/ns#" term="Linux hackers spam"/><title type='text'>Fighting spam and hackers with FIRE(walls): How to reduce contact form SPAM.</title><content type='html'>We&#39;ve been having a hell of a time with Salesforce contact form spam as of late. Its been littered with junk about cheap Air Jordans, Louis Vitton bags, and other assorted hijack links. In the course of a week, we could have as many as 300 new &quot;leads&quot;, all of which were spam, and that was after instituting form validation on all the contact fields.&lt;br /&gt;
&lt;br /&gt;
So, the next step was to find out where this spam was coming from. By adding a hidden field to the form, and tying it to the lead source, we were able to capture the IP address of every submitter. Well, most of the submitters were coming from this little village in Fuzhou China. You can find the location of such IP addresses from&amp;nbsp;&lt;a href=&quot;http://addgadgets.com/ipaddress/index.php&quot; rel=&quot;nofollow&quot; target=&quot;_blank&quot;&gt;http://addgadgets.com/ipaddress/index.php&lt;/a&gt;.&lt;br /&gt;
&lt;br /&gt;
If you use JSP in your site, here is the code to capture the IP for your Salesforce Web2Lead form:&lt;br /&gt;
&lt;br /&gt;
&lt;span style=&quot;color: #073763; font-family: Courier New, Courier, monospace; font-size: x-small;&quot;&gt;&amp;lt;%&lt;/span&gt;&lt;br /&gt;
&lt;span style=&quot;color: #073763; font-family: Courier New, Courier, monospace; font-size: x-small;&quot;&gt;&amp;nbsp; &amp;nbsp; String ipaddress = request.getRemoteAddr();&lt;/span&gt;&lt;br /&gt;
&lt;span style=&quot;color: #073763; font-family: Courier New, Courier, monospace; font-size: x-small;&quot;&gt;%&amp;gt;&lt;/span&gt;&lt;br /&gt;
&lt;span style=&quot;color: #073763; font-family: Courier New, Courier, monospace; font-size: x-small;&quot;&gt;&amp;lt;input id=&quot;lead_source&quot; name=&quot;lead_source&quot; type=&quot;hidden&quot; value=&quot;&amp;lt;%=ipaddress%&amp;gt;&quot;&amp;gt;&lt;/span&gt;&lt;br /&gt;
&lt;br /&gt;
So, the next step was to block the IP. This can be done via IPTables in linux. As these addresses were found in predictable blocks, we decided to block more than just the IP addresses listed. Instead we blocked entire countries. Yep. If you are reading this, then you are likely not blocked from our web site.&lt;br /&gt;
&lt;br /&gt;
&lt;a href=&quot;http://www.cyberciti.biz/faq/block-entier-country-using-iptables/&quot; rel=&quot;nofollow&quot; target=&quot;_blank&quot;&gt;This website&lt;/a&gt; had an excellent shell script that handles all you need to block any specific country.&lt;br /&gt;
&lt;br /&gt;
&lt;ol&gt;
&lt;li&gt;Iterates through the countries you specify&lt;/li&gt;
&lt;li&gt;Gets the IP address blocks assigned to that country.&lt;/li&gt;
&lt;li&gt;Adds the block range to IPTables&lt;/li&gt;
&lt;li&gt;Recycles your IPTables to ensure a clean, fresh instance.&lt;/li&gt;
&lt;/ol&gt;
&lt;div&gt;
This script can be run via chron job (perhaps monthly) so the list always stays current. We chose a block of 15 countries based on the fact they were the most frequent countries for spam and hack attacks. These are also 15 countries we have no intention of doing business in.&amp;nbsp;&lt;/div&gt;
&lt;div&gt;
&lt;br /&gt;&lt;/div&gt;
&lt;h4&gt;
References:&lt;/h4&gt;
&lt;div&gt;
&lt;a href=&quot;http://www.huffingtonpost.com/2012/04/24/top-spam-sending-countries_n_1446187.html&quot; rel=&quot;nofollow&quot; target=&quot;_blank&quot;&gt;&lt;span style=&quot;font-family: Trebuchet MS, sans-serif;&quot;&gt;The top 9 spamming countries.&lt;/span&gt;&lt;/a&gt;&lt;/div&gt;
&lt;div&gt;
&lt;/div&gt;
&lt;br /&gt;
&lt;div style=&quot;-webkit-font-smoothing: antialiased; background-color: white; border: 0px; color: #4f4f4f; line-height: 18pt; margin: 0px; padding: 0px; text-rendering: optimizelegibility; vertical-align: baseline;&quot;&gt;
&lt;span style=&quot;font-family: Trebuchet MS, sans-serif;&quot;&gt;&lt;a href=&quot;http://www.statista.com/statistics/263086/countries-of-origin-of-spam/&quot; rel=&quot;nofollow&quot; target=&quot;_blank&quot;&gt;Leading countries of origin for unsolicited spam emails as of 1st quarter 2014, by share of worldwide spam volume&lt;/a&gt;&lt;/span&gt;&lt;/div&gt;
&lt;div style=&quot;background-color: white; color: #111111; font-weight: normal; line-height: 1.286em; margin: 0px; padding: 0px;&quot;&gt;
&lt;span style=&quot;font-family: Trebuchet MS, sans-serif;&quot;&gt;&lt;a href=&quot;http://www.cyberciti.biz/faq/block-entier-country-using-iptables/&quot; rel=&quot;nofollow&quot; target=&quot;_blank&quot;&gt;Linux Iptables Just Block By Country&lt;/a&gt;&lt;/span&gt;&lt;/div&gt;
&lt;div class=&quot;blogger-post-footer&quot;&gt;&lt;a href=&quot;http://www.strongback.us&quot;&gt;&amp;copy;2016 Strongback Consulting&lt;/a&gt;&lt;/div&gt;</content><link rel='replies' type='application/atom+xml' href='http://blog.strongbackconsulting.com/feeds/2399115060154946221/comments/default' title='Post Comments'/><link rel='replies' type='text/html' href='http://www.blogger.com/comment/fullpage/post/33508082/2399115060154946221?isPopup=true' title='0 Comments'/><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/33508082/posts/default/2399115060154946221'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/33508082/posts/default/2399115060154946221'/><link rel='alternate' type='text/html' href='http://blog.strongbackconsulting.com/2014/09/fighting-spam-and-hackers-with.html' title='Fighting spam and hackers with FIRE(walls): How to reduce contact form SPAM.'/><author><name>Anonymous</name><uri>http://www.blogger.com/profile/13189925413502750170</uri><email>noreply@blogger.com</email><gd:image rel='http://schemas.google.com/g/2005#thumbnail' width='16' height='16' src='https://img1.blogblog.com/img/b16-rounded.gif'/></author><thr:total>0</thr:total></entry><entry><id>tag:blogger.com,1999:blog-33508082.post-6266893607184492429</id><published>2014-06-11T14:13:00.000-04:00</published><updated>2014-06-11T14:13:11.860-04:00</updated><category scheme="http://www.blogger.com/atom/ns#" term="IBM"/><category scheme="http://www.blogger.com/atom/ns#" term="IBMi"/><category scheme="http://www.blogger.com/atom/ns#" term="ibminnovate"/><category scheme="http://www.blogger.com/atom/ns#" term="rational"/><title type='text'>IBM Innovate 2014: How to become a Rational Developer for IBM i Power User</title><content type='html'>&lt;h3&gt;
Moving from SEU/PDM to Rational Developer for i?&lt;/h3&gt;
&lt;br /&gt;
This month we presented at the annual IBM Innovate Conference in Orlando several topics on the various IBM Rational tools. Rational Developer for i (RDi) is the IDE of choice for editing, verifying, analyzing, and managing RPG, COBOL, and C/C++ on the IBM i (i.e the AS/400). If you come from a SEU/PDM development environment and are looking to move to a more robust IDE, or if you wish to use the new RPG language features, you need to read through this to learn how to adopt the product. 

In this presentation we cover the new features of RDi 9.1, including the new debugger and code coverage tooling. We also demonstrated editing features of the LPEX editor, such as find/replace with regular expressions. We covered the screen and report designers as well.&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
&lt;iframe allowfullscreen=&quot;&quot; frameborder=&quot;0&quot; height=&quot;486&quot; marginheight=&quot;0&quot; marginwidth=&quot;0&quot; scrolling=&quot;no&quot; src=&quot;http://www.slideshare.net/slideshow/embed_code/35757187&quot; style=&quot;border-width: 1px 1px 0; border: 1px solid #CCC; margin-bottom: 5px; max-width: 100%;&quot; width=&quot;597&quot;&gt; &lt;/iframe&gt; &lt;br /&gt;
&lt;div style=&quot;margin-bottom: 5px;&quot;&gt;
&lt;b&gt; &lt;a href=&quot;https://www.slideshare.net/strongback/innovate-rationaldeveloperipoweruser&quot; target=&quot;_blank&quot; title=&quot;How to become a Rational Developer for IBM i Power User&quot;&gt;How to become a Rational Developer for IBM i Power User&lt;/a&gt; &lt;/b&gt; from &lt;b&gt;&lt;a href=&quot;http://www.slideshare.net/strongback&quot; target=&quot;_blank&quot;&gt;Strongback Consulting&lt;/a&gt;&lt;/b&gt; &lt;/div&gt;
&lt;div class=&quot;blogger-post-footer&quot;&gt;&lt;a href=&quot;http://www.strongback.us&quot;&gt;&amp;copy;2016 Strongback Consulting&lt;/a&gt;&lt;/div&gt;</content><link rel='replies' type='application/atom+xml' href='http://blog.strongbackconsulting.com/feeds/6266893607184492429/comments/default' title='Post Comments'/><link rel='replies' type='text/html' href='http://www.blogger.com/comment/fullpage/post/33508082/6266893607184492429?isPopup=true' title='0 Comments'/><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/33508082/posts/default/6266893607184492429'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/33508082/posts/default/6266893607184492429'/><link rel='alternate' type='text/html' href='http://blog.strongbackconsulting.com/2014/06/ibm-innovate-2014-how-to-become.html' title='IBM Innovate 2014: How to become a Rational Developer for IBM i Power User'/><author><name>Kenny Smith</name><uri>http://www.blogger.com/profile/08968656381337712680</uri><email>noreply@blogger.com</email><gd:image rel='http://schemas.google.com/g/2005#thumbnail' width='32' height='32' src='//blogger.googleusercontent.com/img/b/R29vZ2xl/AVvXsEjR5bvH6ZtffdWwTbTUx2GRzG5X_tvhf_L_hqlOwZ4yhsm1yJIaR4N9G1Wp6-BPgBOI9PRWhzd9Xk-6M5fBV3_zenTs9OllrrmnUSxnTvrFjiO69y4-nnEZWee3mldqIbY/s220/KennyAvatar.jpg'/></author><thr:total>0</thr:total></entry><entry><id>tag:blogger.com,1999:blog-33508082.post-827640825548324351</id><published>2014-05-23T13:50:00.004-04:00</published><updated>2014-05-23T13:50:54.666-04:00</updated><category scheme="http://www.blogger.com/atom/ns#" term="java"/><category scheme="http://www.blogger.com/atom/ns#" term="mainframe"/><category scheme="http://www.blogger.com/atom/ns#" term="zos IBMInnovate"/><title type='text'>The Caffeinated Mainframer: Using Java on IBM z/OS to build enterprise Java apps</title><content type='html'>&lt;br /&gt;
At last year&#39;s IBM Innovate Conference (formerly the Rational Software Developer&#39;s Conference), we presented this deck about using Java on the z/OS mainframe. Since that time there have been a couple of major releases of the IBM Rational Developer for Enterprise product and at this year&#39;s conference there will be extensive coverage of version 9.1 of the Rational IDE&#39;s. These new versions were &lt;a href=&quot;http://www-01.ibm.com/common/ssi/cgi-bin/ssialias?subtype=ca&amp;amp;infotype=an&amp;amp;appname=iSource&amp;amp;supplier=897&amp;amp;letternum=ENUSC14-019#214-188&quot; rel=&quot;nofollow&quot; target=&quot;_blank&quot;&gt;just announced&lt;/a&gt; and went live for general availability this week.&lt;br /&gt;
&lt;br /&gt;
If you will be developing on Java on z/OS and need to access MVS datasets, be sure to read through the presentation below, and it is a good primer on the platform.&lt;br /&gt;
&lt;iframe allowfullscreen=&quot;&quot; frameborder=&quot;0&quot; height=&quot;486&quot; marginheight=&quot;0&quot; marginwidth=&quot;0&quot; scrolling=&quot;no&quot; src=&quot;http://www.slideshare.net/slideshow/embed_code/35052655&quot; style=&quot;border-width: 1px 1px 0; border: 1px solid #CCC; margin-bottom: 5px; max-width: 100%;&quot; width=&quot;597&quot;&gt; &lt;/iframe&gt; &lt;br /&gt;
&lt;div style=&quot;margin-bottom: 5px;&quot;&gt;
&lt;strong&gt; &lt;a href=&quot;https://www.slideshare.net/strongback/the-caffeinated-mainframer-1393&quot; target=&quot;_blank&quot; title=&quot;The caffeinated mainframer&quot;&gt;The caffeinated mainframer&lt;/a&gt; &lt;/strong&gt; from &lt;strong&gt;&lt;a href=&quot;http://www.slideshare.net/strongback&quot; target=&quot;_blank&quot;&gt;Strongback Consulting&lt;/a&gt;&lt;/strong&gt; &lt;/div&gt;
&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
If you develop Java on the mainframe, check out our link collections on Delicious:&lt;br /&gt;
&lt;a href=&quot;https://delicious.com/strongback/jzos&quot;&gt;https://delicious.com/strongback/jzos&lt;/a&gt;&lt;br /&gt;
&lt;a href=&quot;https://delicious.com/strongback/rdz&quot;&gt;https://delicious.com/strongback/rdz&lt;/a&gt;&lt;br /&gt;
&lt;a href=&quot;https://delicious.com/strongback/java&quot;&gt;https://delicious.com/strongback/java&lt;/a&gt;&lt;div class=&quot;blogger-post-footer&quot;&gt;&lt;a href=&quot;http://www.strongback.us&quot;&gt;&amp;copy;2016 Strongback Consulting&lt;/a&gt;&lt;/div&gt;</content><link rel='replies' type='application/atom+xml' href='http://blog.strongbackconsulting.com/feeds/827640825548324351/comments/default' title='Post Comments'/><link rel='replies' type='text/html' href='http://www.blogger.com/comment/fullpage/post/33508082/827640825548324351?isPopup=true' title='0 Comments'/><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/33508082/posts/default/827640825548324351'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/33508082/posts/default/827640825548324351'/><link rel='alternate' type='text/html' href='http://blog.strongbackconsulting.com/2014/05/the-caffeinated-mainframer-using-java.html' title='The Caffeinated Mainframer: Using Java on IBM z/OS to build enterprise Java apps'/><author><name>Anonymous</name><uri>http://www.blogger.com/profile/13189925413502750170</uri><email>noreply@blogger.com</email><gd:image rel='http://schemas.google.com/g/2005#thumbnail' width='16' height='16' src='https://img1.blogblog.com/img/b16-rounded.gif'/></author><thr:total>0</thr:total></entry><entry><id>tag:blogger.com,1999:blog-33508082.post-6034269854206479915</id><published>2014-02-12T16:49:00.000-05:00</published><updated>2014-02-12T16:49:09.431-05:00</updated><title type='text'>CFO&#39;s: Do you bear criminal negligence in not updating your developer workstations?</title><content type='html'>&lt;div style=&quot;orphans: 2; text-align: -webkit-auto; widows: 2;&quot;&gt;
&lt;span style=&quot;font-family: Trebuchet MS, sans-serif;&quot;&gt;Why is your company dragging its feet to update the corporate desktops or laptops? If you are a CFO, or CIO, you are not getting the most out of your application developers, software engineers, and systems administrators. In fact, you&#39;re paying your staff to watch progress bars. You are also more likely to lose the really good employees because of it. You are wasting money. And if you are a CFO, you are guilty of neglect, shirking your fiduciary responsibility to your shareholders, owners, and/or board of directors.&lt;/span&gt;&lt;/div&gt;
&lt;div style=&quot;orphans: 2; text-align: -webkit-auto; widows: 2;&quot;&gt;
&lt;span style=&quot;font-family: Trebuchet MS, sans-serif;&quot;&gt;&lt;br /&gt;The first thing to know about provisioning hardware is that it is sheer idiocy to give developers the same laptops/desktops you give your sales/marketing folks. It is the failure to give them enough power to do their jobs. It is the CFO&#39;s fiduciary responsibility to seek maximum productivity out of their developers.&amp;nbsp;&lt;/span&gt;&lt;/div&gt;
&lt;div style=&quot;orphans: 2; text-align: -webkit-auto; widows: 2;&quot;&gt;
&lt;span style=&quot;font-family: Trebuchet MS, sans-serif;&quot;&gt;&lt;br /&gt;&lt;/span&gt;&lt;/div&gt;
&lt;div style=&quot;orphans: 2; text-align: -webkit-auto; widows: 2;&quot;&gt;
&lt;div style=&quot;text-align: -webkit-auto;&quot;&gt;
&lt;span style=&quot;font-family: &#39;Trebuchet MS&#39;, sans-serif; text-align: -webkit-auto;&quot;&gt;Allow me to explain further,&amp;nbsp;&lt;/span&gt;&lt;span style=&quot;font-family: Trebuchet MS, sans-serif;&quot;&gt;The cost of a well provisioned desktop, including dual monitors, can be under $2,000 (actually under $1500 with a good volume purchasing discount). Compare this to the total cost of ownership including IT service maintenance and software licenses which can be up to $9,900&amp;nbsp;&lt;i&gt;per year&lt;/i&gt;&amp;nbsp;according to&amp;nbsp;&lt;a href=&quot;http://www.gartner.com/newsroom/id/636308&quot; rel=&quot;nofollow&quot;&gt;a study done by Gartner&lt;/a&gt;. As you can see, the cost of equipment, when compared over a 3 year&amp;nbsp;depreciation&amp;nbsp;cycle is only fraction of the total cost of ownership.&amp;nbsp;&lt;/span&gt;&lt;/div&gt;
&lt;div style=&quot;text-align: -webkit-auto;&quot;&gt;
&lt;span style=&quot;font-family: Trebuchet MS, sans-serif;&quot;&gt;&lt;br /&gt;&lt;/span&gt;&lt;/div&gt;
&lt;div style=&quot;text-align: -webkit-auto;&quot;&gt;
&lt;span style=&quot;font-family: Trebuchet MS, sans-serif;&quot;&gt;Other costs to consider, is the average turnover cost. In the United States the average annual corporate turnover rate is 13%. That is across all industries. In specific job categories (such as call centers), the rate is slightly higher. A company will spend up to 20% of a person&#39;s salary on hiring fees just to get them in the door. This means that, for a software engineer, the amount of time the employee stays with you will be short lived. This is all the more reason to maximize the productivity of the software engineer while he or she is on staff at your organization!&lt;/span&gt;&lt;/div&gt;
&lt;div style=&quot;text-align: -webkit-auto;&quot;&gt;
&lt;span style=&quot;font-family: Trebuchet MS, sans-serif;&quot;&gt;&lt;br /&gt;&lt;/span&gt;&lt;/div&gt;
&lt;/div&gt;
&lt;div style=&quot;orphans: 2; text-align: -webkit-auto; widows: 2;&quot;&gt;
&lt;span style=&quot;font-family: Trebuchet MS, sans-serif;&quot;&gt;This is what your developers should have, and why.&lt;/span&gt;&lt;/div&gt;
&lt;div style=&quot;orphans: 2; text-align: -webkit-auto; widows: 2;&quot;&gt;
&lt;span style=&quot;font-family: Trebuchet MS, sans-serif;&quot;&gt;&lt;br /&gt;&lt;/span&gt;&lt;/div&gt;
&lt;div style=&quot;orphans: 2; text-align: -webkit-auto; widows: 2;&quot;&gt;
&lt;span style=&quot;font-family: Trebuchet MS, sans-serif;&quot;&gt;1) A quad core processor CPU&lt;/span&gt;&lt;/div&gt;
&lt;div style=&quot;orphans: 2; text-align: -webkit-auto; widows: 2;&quot;&gt;
&lt;span style=&quot;font-family: Trebuchet MS, sans-serif;&quot;&gt;Developers do much more than just read email. They will typically have 5-20 applications open at a time. Each of those applications requires at least one CPU processor core to run. The more applications you have running, the &amp;nbsp;more competition for those processors. A quad core Intel i7 has four cores, and with hyperthreading technology, and run a total of 8 processor threads (2 threads per core). This is four times the number of threads that the older dual core processors offered. This means less progress bars. It means more lines of code from your developers.&lt;/span&gt;&lt;/div&gt;
&lt;div style=&quot;orphans: 2; text-align: -webkit-auto; widows: 2;&quot;&gt;
&lt;span style=&quot;font-family: Trebuchet MS, sans-serif;&quot;&gt;&lt;br /&gt;&lt;/span&gt;&lt;/div&gt;
&lt;div style=&quot;orphans: 2; text-align: -webkit-auto; widows: 2;&quot;&gt;
&lt;span style=&quot;font-family: Trebuchet MS, sans-serif;&quot;&gt;2)&amp;nbsp;&lt;span style=&quot;text-align: -webkit-auto;&quot;&gt;64bit OS, Windows 7/8, or MAC OSX (or Linux Desktop)&lt;/span&gt;&lt;/span&gt;&lt;/div&gt;
&lt;div style=&quot;orphans: 2; text-align: -webkit-auto; widows: 2;&quot;&gt;
&lt;span style=&quot;font-family: Trebuchet MS, sans-serif;&quot;&gt;If you are on Windows XP, your company is at risk from&amp;nbsp;technology, security, and financial factors. Your competitors are eating your lunch. Microsoft no longer offers support for Windows XP. No software vendor is writing new applications for the platform. It is a DEAD platform. Your IT strategy should be leading you in a way the becomes near operating system neutral. Email clients now exist for all three platforms listed above, as well as office suites. Everything else should be, or is likely to be running in a modern web browser.&amp;nbsp;&lt;/span&gt;&lt;/div&gt;
&lt;div style=&quot;orphans: 2; text-align: -webkit-auto; widows: 2;&quot;&gt;
&lt;span style=&quot;font-family: Trebuchet MS, sans-serif;&quot;&gt;&lt;br /&gt;&lt;/span&gt;&lt;/div&gt;
&lt;div style=&quot;orphans: 2; text-align: -webkit-auto; widows: 2;&quot;&gt;
&lt;span style=&quot;font-family: Trebuchet MS, sans-serif;&quot;&gt;3)&amp;nbsp;&lt;span style=&quot;text-align: -webkit-auto;&quot;&gt;External, larger monitor&lt;/span&gt;&lt;/span&gt;&lt;/div&gt;
&lt;div style=&quot;orphans: 2; text-align: -webkit-auto; widows: 2;&quot;&gt;
&lt;span style=&quot;font-family: Trebuchet MS, sans-serif;&quot;&gt;&lt;span style=&quot;text-align: -webkit-auto;&quot;&gt;Your developers likely are working in multiple applications. They need multiple apps open at the same time, and in some cases, need to reference data in one app to code into another. There are &lt;a href=&quot;http://www.corecommunication.ca/4-studies-which-show-that-using-a-second-monitor-can-boost-productivity/&quot; rel=&quot;nofollow&quot;&gt;several&amp;nbsp;studies that show&amp;nbsp;&lt;/a&gt;&lt;/span&gt;&lt;a href=&quot;http://www.corecommunication.ca/4-studies-which-show-that-using-a-second-monitor-can-boost-productivity/&quot; rel=&quot;nofollow&quot;&gt;productivity&lt;/a&gt;&lt;a href=&quot;http://www.corecommunication.ca/4-studies-which-show-that-using-a-second-monitor-can-boost-productivity/&quot; rel=&quot;nofollow&quot;&gt;&amp;nbsp;increases &lt;/a&gt;with a second monitor.&amp;nbsp;&lt;/span&gt;&lt;/div&gt;
&lt;div style=&quot;orphans: 2; text-align: -webkit-auto; widows: 2;&quot;&gt;
&lt;span style=&quot;font-family: Trebuchet MS, sans-serif;&quot;&gt;&lt;br /&gt;&lt;/span&gt;&lt;/div&gt;
&lt;div style=&quot;orphans: 2; text-align: -webkit-auto; widows: 2;&quot;&gt;
&lt;span style=&quot;font-family: Trebuchet MS, sans-serif;&quot;&gt;These recommendations above are by no means complete, but are certainly the highest priority items most software engineers would need. Other nice-to-haves include a solid state drive, more memory (16GB), faster ports (Thunderbolt, USB3.0, eSata, DisplayPort, etc). Get the real needs from your team.&lt;/span&gt;&lt;/div&gt;
&lt;div style=&quot;orphans: 2; text-align: -webkit-auto; widows: 2;&quot;&gt;
&lt;span style=&quot;font-family: Trebuchet MS, sans-serif;&quot;&gt;&lt;br /&gt;&lt;/span&gt;&lt;/div&gt;
&lt;div style=&quot;orphans: 2; text-align: -webkit-auto; widows: 2;&quot;&gt;
&lt;span style=&quot;font-family: &#39;Trebuchet MS&#39;, sans-serif; text-align: -webkit-auto;&quot;&gt;As a consultant, I&#39;ve seen more than my share of developer desktops that were underpowered, and as a result, the developer was downright discouraged, and cynical about the importance they served the organization. It is very frustrating to have a company purchase new development tools (and spend thousands per desktop in doing so), and put it on crappy hardware. Often times it will perform so poorly that the software will go unused. Then the consultant gets blamed for selling shelfware.&amp;nbsp;&lt;/span&gt;&lt;/div&gt;
&lt;div style=&quot;orphans: 2; text-align: -webkit-auto; widows: 2;&quot;&gt;
&lt;span style=&quot;font-family: Trebuchet MS, sans-serif;&quot;&gt;&lt;br /&gt;&lt;/span&gt;&lt;/div&gt;
&lt;div style=&quot;orphans: 2; text-align: -webkit-auto; widows: 2;&quot;&gt;
&lt;span style=&quot;font-family: Trebuchet MS, sans-serif;&quot;&gt;So... stop reading, and go get a pulse on your developers. See if they have what they need. If you see them &quot;waiting&quot; for progress bars, on tiny little monitors, then its time for a visit from your hardware vendor.&lt;/span&gt;&lt;/div&gt;
&lt;div style=&quot;orphans: 2; text-align: -webkit-auto; widows: 2;&quot;&gt;
&lt;span style=&quot;font-family: Trebuchet MS, sans-serif;&quot;&gt;&lt;br /&gt;&lt;/span&gt;&lt;/div&gt;
&lt;div style=&quot;orphans: 2; text-align: -webkit-auto; widows: 2;&quot;&gt;
&lt;span style=&quot;font-family: Trebuchet MS, sans-serif;&quot;&gt;&lt;b&gt;Disclaimer&lt;/b&gt;: Strongback Consulting does &lt;u&gt;NOT&lt;/u&gt; sell hardware (software, yes). We recommend developing a positive relationship with a quality vendor who can tailor a solution to your company, and your developer&#39;s needs, and there are plenty of vendors willing to do just that. Good luck!&lt;/span&gt;&lt;/div&gt;
&lt;div class=&quot;blogger-post-footer&quot;&gt;&lt;a href=&quot;http://www.strongback.us&quot;&gt;&amp;copy;2016 Strongback Consulting&lt;/a&gt;&lt;/div&gt;</content><link rel='replies' type='application/atom+xml' href='http://blog.strongbackconsulting.com/feeds/6034269854206479915/comments/default' title='Post Comments'/><link rel='replies' type='text/html' href='http://www.blogger.com/comment/fullpage/post/33508082/6034269854206479915?isPopup=true' title='0 Comments'/><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/33508082/posts/default/6034269854206479915'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/33508082/posts/default/6034269854206479915'/><link rel='alternate' type='text/html' href='http://blog.strongbackconsulting.com/2014/02/cfos-do-you-bear-criminal-negligence-in.html' title='CFO&#39;s: Do you bear criminal negligence in not updating your developer workstations?'/><author><name>Anonymous</name><uri>http://www.blogger.com/profile/13189925413502750170</uri><email>noreply@blogger.com</email><gd:image rel='http://schemas.google.com/g/2005#thumbnail' width='16' height='16' src='https://img1.blogblog.com/img/b16-rounded.gif'/></author><thr:total>0</thr:total></entry></feed>