{"id":1579,"date":"2016-07-10T18:04:14","date_gmt":"2016-07-10T17:04:14","guid":{"rendered":"http:\/\/samjwatkins.com\/blog\/?p=1579"},"modified":"2016-07-10T18:04:14","modified_gmt":"2016-07-10T17:04:14","slug":"looking-forward-to-having-a-break-and-the-joys-of-java-programming","status":"publish","type":"post","link":"https:\/\/samjwatkins.com\/blog\/?p=1579","title":{"rendered":"Looking forward to having a break and the joys of Java programming"},"content":{"rendered":"<h2>Doesn&#8217;t sound like you!?<\/h2>\n<p>Mid-March, I\u00a0 found myself in the position of taking on a team which was considered failing (doing amazingly clever stuff, but not delivering to time scales).\u00a0 Great people and coders but not measuring up to expectations.\u00a0 Which wouldn&#8217;t have been so bad, but I was heading out on leave for 3 weeks in a bare two weeks time.<\/p>\n<p>The team over the previous three weeks had lost a key member who really wasn&#8217;t happy in post either.\u00a0 When asked, the incumbent team felt they were being asked to do the impossible.\u00a0 The environment was dated (as were some of the approaches) and the team got together once a week to say they hadn&#8217;t been able to progress things.<\/p>\n<p>In the two weeks before I disappeared, I assessed what was being asked and whether it was indeed impossible (burn charts are your friends here).\u00a0 Having the proof, I was able to secure more resources.\u00a0 The team leader I was replacing was not a happy bunny, to put it mildly.\u00a0 I re-factored the plan with the new team members and took the lowest priority (in terms of time of delivery) out of the immediate time frame.\u00a0 (The team may have got enough time back to bring that back in, it has all gone that well).<\/p>\n<p>I started daily stand up meetings and disappeared skiing, like you do.<\/p>\n<h2>Standard project management stuff&#8230; so what?<\/h2>\n<p>Mmm, if only things were that simple.\u00a0 I have brought in continuous integration and published test plans (got caught out when told things were working when they weren&#8217;t, so we have formal, shared test plans now).\u00a0 We have software signing mechanism across the piece too against very standard mechanisms away from a home brew solution.<\/p>\n<p>I like the wider team and their approach, but it&#8217;s felt difficult to progress when the incumbent members of the team still believe it&#8217;s impossible and are openly grumbling about the changes.\u00a0 Emotionally it is quite draining.<\/p>\n<p>I have moved the project dramatically from a best efforts part time project to a fully focused software engineering standard one.<\/p>\n<p>Mostly it has worked: in fact the person paying for the project is happy with the changes &#8211; more transparent, good progress and good interlock.\u00a0 It&#8217;s not perfect, but every step seems to be in the right direction.<\/p>\n<p>The team themselves have stated they like the framework and find they have focus and the information at their fingertips so they have control over their work load.\u00a0 They have flexibility and the space to deliver.\u00a0 The plan is reviewed often and communicated out to the wider group.\u00a0 Which has allowed everything to progress.<\/p>\n<h2>Still not finding the issue?<a href=\"https:\/\/samjwatkins.com\/blog\/wp-content\/uploads\/2016\/07\/Fondo_Java.png\"><img loading=\"lazy\" decoding=\"async\" class=\"alignleft wp-image-1583\" src=\"https:\/\/samjwatkins.com\/blog\/wp-content\/uploads\/2016\/07\/Fondo_Java.png\" alt=\"Java logo\" width=\"328\" height=\"166\" srcset=\"https:\/\/samjwatkins.com\/blog\/wp-content\/uploads\/2016\/07\/Fondo_Java.png 651w, https:\/\/samjwatkins.com\/blog\/wp-content\/uploads\/2016\/07\/Fondo_Java-300x152.png 300w\" sizes=\"auto, (max-width: 328px) 100vw, 328px\" \/><\/a><\/h2>\n<p>Java &#8211; my fundamental issue is Java.<\/p>\n<p>I first picked up Java in 1996 at university and thought, OK, quirky, not as portable as promised, but if I ever need to, I have a string to my bow.<\/p>\n<p>In 2005, I moved in to the Research teams in BT and was looking at Java.\u00a0 Eclipse and Netbeans to be honest, producing graphical maps to enable heterogeneous data types to be accurately mapped and produce the transformations between the two data types.\u00a0 I became the expert pretty quickly.<\/p>\n<p>The great thing about it, was I was starting the objects (Java is an object orientated language) from scratch and therefore able to control the entire environment from the ground up.<\/p>\n<p>I am a test driven programmer, so I build a test harness (with the tests applicable to prove the result) and then get on with it.<\/p>\n<p>Only, it was never quite that simple, and I quickly progressed to using Java beans in a Tomcat environment.\u00a0 I am still a big fan, 65% of my website is still programmed in JSP containers.\u00a0 Deployment is simple, what is coded in one environment may be proven there and run any where there is a compatible server.<\/p>\n<p>It has to be said, I do very little out of choice in the command line with Java.<\/p>\n<h2>Let me guess, you&#8217;re programming in Java this time?<a href=\"https:\/\/samjwatkins.com\/blog\/wp-content\/uploads\/2016\/07\/tomcat.gif\"><img loading=\"lazy\" decoding=\"async\" class=\" wp-image-1584 alignright\" src=\"https:\/\/samjwatkins.com\/blog\/wp-content\/uploads\/2016\/07\/tomcat.gif\" alt=\"tomcat\" width=\"206\" height=\"146\" \/><\/a><\/h2>\n<p>Only without any of the niceties.\u00a0 (This was the project I was told was working and basically didn&#8217;t.\u00a0 I got it built (yeah, small miracle) but found in Java 1.8 it had a VERIFY.ERROR against the JVM.\u00a0 Great, had to re-factor against the JCE provider, there&#8217;s best part of a week there.)<\/p>\n<p>I have inherited some code built on JCE running from the command line.\u00a0 It was written in a couple of hours &#8211; not exactly ground breaking code, but standard protocols being used in the right place.\u00a0 It builds, it looks great but I cannot seem to set the security provider explicitly to ensure the right libraries and bindings are used each time.\u00a0 Not good.<\/p>\n<p>So I went back to the drawing board and instead of using JCE, I tried a JNDI interface.\u00a0 Which worked beautifully and very reliably but I cannot bind the objects I want to use to talk to AD 2008.<\/p>\n<p>I was missing a setting in my java.security (this is what I mean about containers, none of this is documented anywhere for the project!).\u00a0 When that was in place, it worked.\u00a0 Once.<\/p>\n<p>I have even done a line by line comparison of everything I have done.\u00a0 No changes of consequence between when it worked and when it is not.<\/p>\n<p>It&#8217;s annoying and a problem and I know I have the answer in my reach.\u00a0 But I look blind and stupid and I am really not.<\/p>\n<p>Out of the whole team, I am the one holding everything up.\u00a0 [Except I am not: because I have worked closely with the test and delivery teams and made absolutely sure I haven&#8217;t].<\/p>\n<p>I miss Tomcat too.\u00a0 Everyday.\u00a0 When I build something in Tomcat, it just works.<\/p>\n<p>Right this moment, I am going away to get my mind off the problem.\u00a0 I have two weeks holiday to think about anything else.\u00a0 Must stop thinking: C# anyone?<\/p>\n<p>Have a great evening \ud83d\ude42<\/p>\n","protected":false},"excerpt":{"rendered":"<p>Doesn&#8217;t sound like you!? Mid-March, I\u00a0 found myself in the position of taking on a team which was considered failing (doing amazingly clever stuff, but not delivering to time scales).\u00a0 Great people and coders but not measuring up to expectations.\u00a0 Which wouldn&#8217;t have been so bad, but I was heading out on leave for 3 [&hellip;]<\/p>\n","protected":false},"author":2,"featured_media":0,"comment_status":"open","ping_status":"open","sticky":false,"template":"","format":"standard","meta":{"inline_featured_image":false,"footnotes":""},"categories":[5],"tags":[],"class_list":["post-1579","post","type-post","status-publish","format-standard","hentry","category-forty-two"],"yoast_head":"<!-- This site is optimized with the Yoast SEO plugin v28.8 - https:\/\/yoast.com\/product\/yoast-seo-wordpress\/ -->\n<title>Looking forward to having a break and the joys of Java programming - Finding the chase and cutting to it<\/title>\n<meta name=\"robots\" content=\"index, follow, max-snippet:-1, max-image-preview:large, max-video-preview:-1\" \/>\n<link rel=\"canonical\" href=\"https:\/\/samjwatkins.com\/blog\/?p=1579\" \/>\n<meta property=\"og:locale\" content=\"en_GB\" \/>\n<meta property=\"og:type\" content=\"article\" \/>\n<meta property=\"og:title\" content=\"Looking forward to having a break and the joys of Java programming - Finding the chase and cutting to it\" \/>\n<meta property=\"og:description\" content=\"Doesn&#8217;t sound like you!? Mid-March, I\u00a0 found myself in the position of taking on a team which was considered failing (doing amazingly clever stuff, but not delivering to time scales).\u00a0 Great people and coders but not measuring up to expectations.\u00a0 Which wouldn&#8217;t have been so bad, but I was heading out on leave for 3 [&hellip;]\" \/>\n<meta property=\"og:url\" content=\"https:\/\/samjwatkins.com\/blog\/?p=1579\" \/>\n<meta property=\"og:site_name\" content=\"Finding the chase and cutting to it\" \/>\n<meta property=\"article:published_time\" content=\"2016-07-10T17:04:14+00:00\" \/>\n<meta property=\"og:image\" content=\"https:\/\/samjwatkins.com\/blog\/wp-content\/uploads\/2016\/07\/Fondo_Java.png\" \/>\n\t<meta property=\"og:image:width\" content=\"651\" \/>\n\t<meta property=\"og:image:height\" content=\"330\" \/>\n\t<meta property=\"og:image:type\" content=\"image\/png\" \/>\n<meta name=\"author\" content=\"Sam J Watkins\" \/>\n<meta name=\"twitter:card\" content=\"summary_large_image\" \/>\n<meta name=\"twitter:label1\" content=\"Written by\" \/>\n\t<meta name=\"twitter:data1\" content=\"Sam J Watkins\" \/>\n\t<meta name=\"twitter:label2\" content=\"Estimated reading time\" \/>\n\t<meta name=\"twitter:data2\" content=\"5 minutes\" \/>\n<script type=\"application\/ld+json\" class=\"yoast-schema-graph\">{\"@context\":\"https:\\\/\\\/schema.org\",\"@graph\":[{\"@type\":\"Article\",\"@id\":\"https:\\\/\\\/samjwatkins.com\\\/blog\\\/?p=1579#article\",\"isPartOf\":{\"@id\":\"https:\\\/\\\/samjwatkins.com\\\/blog\\\/?p=1579\"},\"author\":{\"name\":\"Sam J Watkins\",\"@id\":\"https:\\\/\\\/samjwatkins.com\\\/blog\\\/#\\\/schema\\\/person\\\/b001c9aecccd284b29f0d69e10c68af5\"},\"headline\":\"Looking forward to having a break and the joys of Java programming\",\"datePublished\":\"2016-07-10T17:04:14+00:00\",\"mainEntityOfPage\":{\"@id\":\"https:\\\/\\\/samjwatkins.com\\\/blog\\\/?p=1579\"},\"wordCount\":1014,\"commentCount\":0,\"image\":{\"@id\":\"https:\\\/\\\/samjwatkins.com\\\/blog\\\/?p=1579#primaryimage\"},\"thumbnailUrl\":\"https:\\\/\\\/samjwatkins.com\\\/blog\\\/wp-content\\\/uploads\\\/2016\\\/07\\\/Fondo_Java.png\",\"articleSection\":[\"42\"],\"inLanguage\":\"en-GB\",\"potentialAction\":[{\"@type\":\"CommentAction\",\"name\":\"Comment\",\"target\":[\"https:\\\/\\\/samjwatkins.com\\\/blog\\\/?p=1579#respond\"]}]},{\"@type\":\"WebPage\",\"@id\":\"https:\\\/\\\/samjwatkins.com\\\/blog\\\/?p=1579\",\"url\":\"https:\\\/\\\/samjwatkins.com\\\/blog\\\/?p=1579\",\"name\":\"Looking forward to having a break and the joys of Java programming - Finding the chase and cutting to it\",\"isPartOf\":{\"@id\":\"https:\\\/\\\/samjwatkins.com\\\/blog\\\/#website\"},\"primaryImageOfPage\":{\"@id\":\"https:\\\/\\\/samjwatkins.com\\\/blog\\\/?p=1579#primaryimage\"},\"image\":{\"@id\":\"https:\\\/\\\/samjwatkins.com\\\/blog\\\/?p=1579#primaryimage\"},\"thumbnailUrl\":\"https:\\\/\\\/samjwatkins.com\\\/blog\\\/wp-content\\\/uploads\\\/2016\\\/07\\\/Fondo_Java.png\",\"datePublished\":\"2016-07-10T17:04:14+00:00\",\"author\":{\"@id\":\"https:\\\/\\\/samjwatkins.com\\\/blog\\\/#\\\/schema\\\/person\\\/b001c9aecccd284b29f0d69e10c68af5\"},\"breadcrumb\":{\"@id\":\"https:\\\/\\\/samjwatkins.com\\\/blog\\\/?p=1579#breadcrumb\"},\"inLanguage\":\"en-GB\",\"potentialAction\":[{\"@type\":\"ReadAction\",\"target\":[\"https:\\\/\\\/samjwatkins.com\\\/blog\\\/?p=1579\"]}]},{\"@type\":\"ImageObject\",\"inLanguage\":\"en-GB\",\"@id\":\"https:\\\/\\\/samjwatkins.com\\\/blog\\\/?p=1579#primaryimage\",\"url\":\"https:\\\/\\\/samjwatkins.com\\\/blog\\\/wp-content\\\/uploads\\\/2016\\\/07\\\/Fondo_Java.png\",\"contentUrl\":\"https:\\\/\\\/samjwatkins.com\\\/blog\\\/wp-content\\\/uploads\\\/2016\\\/07\\\/Fondo_Java.png\"},{\"@type\":\"BreadcrumbList\",\"@id\":\"https:\\\/\\\/samjwatkins.com\\\/blog\\\/?p=1579#breadcrumb\",\"itemListElement\":[{\"@type\":\"ListItem\",\"position\":1,\"name\":\"Home\",\"item\":\"https:\\\/\\\/samjwatkins.com\\\/blog\"},{\"@type\":\"ListItem\",\"position\":2,\"name\":\"Looking forward to having a break and the joys of Java programming\"}]},{\"@type\":\"WebSite\",\"@id\":\"https:\\\/\\\/samjwatkins.com\\\/blog\\\/#website\",\"url\":\"https:\\\/\\\/samjwatkins.com\\\/blog\\\/\",\"name\":\"Finding the chase and cutting to it\",\"description\":\"A collection of thoughts, reactions and general comment\",\"potentialAction\":[{\"@type\":\"SearchAction\",\"target\":{\"@type\":\"EntryPoint\",\"urlTemplate\":\"https:\\\/\\\/samjwatkins.com\\\/blog\\\/?s={search_term_string}\"},\"query-input\":{\"@type\":\"PropertyValueSpecification\",\"valueRequired\":true,\"valueName\":\"search_term_string\"}}],\"inLanguage\":\"en-GB\"},{\"@type\":\"Person\",\"@id\":\"https:\\\/\\\/samjwatkins.com\\\/blog\\\/#\\\/schema\\\/person\\\/b001c9aecccd284b29f0d69e10c68af5\",\"name\":\"Sam J Watkins\",\"image\":{\"@type\":\"ImageObject\",\"inLanguage\":\"en-GB\",\"@id\":\"https:\\\/\\\/secure.gravatar.com\\\/avatar\\\/0f33fed47b6bcd59c4fb4184af075e1f981651c38fd946b5cc6d4ed5ff0e18fd?s=96&d=mm&r=g\",\"url\":\"https:\\\/\\\/secure.gravatar.com\\\/avatar\\\/0f33fed47b6bcd59c4fb4184af075e1f981651c38fd946b5cc6d4ed5ff0e18fd?s=96&d=mm&r=g\",\"contentUrl\":\"https:\\\/\\\/secure.gravatar.com\\\/avatar\\\/0f33fed47b6bcd59c4fb4184af075e1f981651c38fd946b5cc6d4ed5ff0e18fd?s=96&d=mm&r=g\",\"caption\":\"Sam J Watkins\"},\"description\":\"https:\\\/\\\/www.linkedin.com\\\/in\\\/sam-watkins-6564311\\\/\",\"sameAs\":[\"http:\\\/\\\/samjwatkins.com\"],\"url\":\"https:\\\/\\\/samjwatkins.com\\\/blog\\\/?author=2\"}]}<\/script>\n<!-- \/ Yoast SEO plugin. -->","yoast_head_json":{"title":"Looking forward to having a break and the joys of Java programming - Finding the chase and cutting to it","robots":{"index":"index","follow":"follow","max-snippet":"max-snippet:-1","max-image-preview":"max-image-preview:large","max-video-preview":"max-video-preview:-1"},"canonical":"https:\/\/samjwatkins.com\/blog\/?p=1579","og_locale":"en_GB","og_type":"article","og_title":"Looking forward to having a break and the joys of Java programming - Finding the chase and cutting to it","og_description":"Doesn&#8217;t sound like you!? Mid-March, I\u00a0 found myself in the position of taking on a team which was considered failing (doing amazingly clever stuff, but not delivering to time scales).\u00a0 Great people and coders but not measuring up to expectations.\u00a0 Which wouldn&#8217;t have been so bad, but I was heading out on leave for 3 [&hellip;]","og_url":"https:\/\/samjwatkins.com\/blog\/?p=1579","og_site_name":"Finding the chase and cutting to it","article_published_time":"2016-07-10T17:04:14+00:00","og_image":[{"width":651,"height":330,"url":"https:\/\/samjwatkins.com\/blog\/wp-content\/uploads\/2016\/07\/Fondo_Java.png","type":"image\/png"}],"author":"Sam J Watkins","twitter_card":"summary_large_image","twitter_misc":{"Written by":"Sam J Watkins","Estimated reading time":"5 minutes"},"schema":{"@context":"https:\/\/schema.org","@graph":[{"@type":"Article","@id":"https:\/\/samjwatkins.com\/blog\/?p=1579#article","isPartOf":{"@id":"https:\/\/samjwatkins.com\/blog\/?p=1579"},"author":{"name":"Sam J Watkins","@id":"https:\/\/samjwatkins.com\/blog\/#\/schema\/person\/b001c9aecccd284b29f0d69e10c68af5"},"headline":"Looking forward to having a break and the joys of Java programming","datePublished":"2016-07-10T17:04:14+00:00","mainEntityOfPage":{"@id":"https:\/\/samjwatkins.com\/blog\/?p=1579"},"wordCount":1014,"commentCount":0,"image":{"@id":"https:\/\/samjwatkins.com\/blog\/?p=1579#primaryimage"},"thumbnailUrl":"https:\/\/samjwatkins.com\/blog\/wp-content\/uploads\/2016\/07\/Fondo_Java.png","articleSection":["42"],"inLanguage":"en-GB","potentialAction":[{"@type":"CommentAction","name":"Comment","target":["https:\/\/samjwatkins.com\/blog\/?p=1579#respond"]}]},{"@type":"WebPage","@id":"https:\/\/samjwatkins.com\/blog\/?p=1579","url":"https:\/\/samjwatkins.com\/blog\/?p=1579","name":"Looking forward to having a break and the joys of Java programming - Finding the chase and cutting to it","isPartOf":{"@id":"https:\/\/samjwatkins.com\/blog\/#website"},"primaryImageOfPage":{"@id":"https:\/\/samjwatkins.com\/blog\/?p=1579#primaryimage"},"image":{"@id":"https:\/\/samjwatkins.com\/blog\/?p=1579#primaryimage"},"thumbnailUrl":"https:\/\/samjwatkins.com\/blog\/wp-content\/uploads\/2016\/07\/Fondo_Java.png","datePublished":"2016-07-10T17:04:14+00:00","author":{"@id":"https:\/\/samjwatkins.com\/blog\/#\/schema\/person\/b001c9aecccd284b29f0d69e10c68af5"},"breadcrumb":{"@id":"https:\/\/samjwatkins.com\/blog\/?p=1579#breadcrumb"},"inLanguage":"en-GB","potentialAction":[{"@type":"ReadAction","target":["https:\/\/samjwatkins.com\/blog\/?p=1579"]}]},{"@type":"ImageObject","inLanguage":"en-GB","@id":"https:\/\/samjwatkins.com\/blog\/?p=1579#primaryimage","url":"https:\/\/samjwatkins.com\/blog\/wp-content\/uploads\/2016\/07\/Fondo_Java.png","contentUrl":"https:\/\/samjwatkins.com\/blog\/wp-content\/uploads\/2016\/07\/Fondo_Java.png"},{"@type":"BreadcrumbList","@id":"https:\/\/samjwatkins.com\/blog\/?p=1579#breadcrumb","itemListElement":[{"@type":"ListItem","position":1,"name":"Home","item":"https:\/\/samjwatkins.com\/blog"},{"@type":"ListItem","position":2,"name":"Looking forward to having a break and the joys of Java programming"}]},{"@type":"WebSite","@id":"https:\/\/samjwatkins.com\/blog\/#website","url":"https:\/\/samjwatkins.com\/blog\/","name":"Finding the chase and cutting to it","description":"A collection of thoughts, reactions and general comment","potentialAction":[{"@type":"SearchAction","target":{"@type":"EntryPoint","urlTemplate":"https:\/\/samjwatkins.com\/blog\/?s={search_term_string}"},"query-input":{"@type":"PropertyValueSpecification","valueRequired":true,"valueName":"search_term_string"}}],"inLanguage":"en-GB"},{"@type":"Person","@id":"https:\/\/samjwatkins.com\/blog\/#\/schema\/person\/b001c9aecccd284b29f0d69e10c68af5","name":"Sam J Watkins","image":{"@type":"ImageObject","inLanguage":"en-GB","@id":"https:\/\/secure.gravatar.com\/avatar\/0f33fed47b6bcd59c4fb4184af075e1f981651c38fd946b5cc6d4ed5ff0e18fd?s=96&d=mm&r=g","url":"https:\/\/secure.gravatar.com\/avatar\/0f33fed47b6bcd59c4fb4184af075e1f981651c38fd946b5cc6d4ed5ff0e18fd?s=96&d=mm&r=g","contentUrl":"https:\/\/secure.gravatar.com\/avatar\/0f33fed47b6bcd59c4fb4184af075e1f981651c38fd946b5cc6d4ed5ff0e18fd?s=96&d=mm&r=g","caption":"Sam J Watkins"},"description":"https:\/\/www.linkedin.com\/in\/sam-watkins-6564311\/","sameAs":["http:\/\/samjwatkins.com"],"url":"https:\/\/samjwatkins.com\/blog\/?author=2"}]}},"_links":{"self":[{"href":"https:\/\/samjwatkins.com\/blog\/index.php?rest_route=\/wp\/v2\/posts\/1579","targetHints":{"allow":["GET"]}}],"collection":[{"href":"https:\/\/samjwatkins.com\/blog\/index.php?rest_route=\/wp\/v2\/posts"}],"about":[{"href":"https:\/\/samjwatkins.com\/blog\/index.php?rest_route=\/wp\/v2\/types\/post"}],"author":[{"embeddable":true,"href":"https:\/\/samjwatkins.com\/blog\/index.php?rest_route=\/wp\/v2\/users\/2"}],"replies":[{"embeddable":true,"href":"https:\/\/samjwatkins.com\/blog\/index.php?rest_route=%2Fwp%2Fv2%2Fcomments&post=1579"}],"version-history":[{"count":3,"href":"https:\/\/samjwatkins.com\/blog\/index.php?rest_route=\/wp\/v2\/posts\/1579\/revisions"}],"predecessor-version":[{"id":1587,"href":"https:\/\/samjwatkins.com\/blog\/index.php?rest_route=\/wp\/v2\/posts\/1579\/revisions\/1587"}],"wp:attachment":[{"href":"https:\/\/samjwatkins.com\/blog\/index.php?rest_route=%2Fwp%2Fv2%2Fmedia&parent=1579"}],"wp:term":[{"taxonomy":"category","embeddable":true,"href":"https:\/\/samjwatkins.com\/blog\/index.php?rest_route=%2Fwp%2Fv2%2Fcategories&post=1579"},{"taxonomy":"post_tag","embeddable":true,"href":"https:\/\/samjwatkins.com\/blog\/index.php?rest_route=%2Fwp%2Fv2%2Ftags&post=1579"}],"curies":[{"name":"wp","href":"https:\/\/api.w.org\/{rel}","templated":true}]}}