<?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-21179782</id><updated>2026-05-20T03:22:44.295-04:00</updated><category term="people issues"/><category term="&quot;people issues&quot;"/><category term="Python"/><category term="YAGNI"/><category term="jobs"/><title type='text'>Ninja Software Development</title><subtitle type='html'>Developing software in the Real World is different from all the theory.  I&#39;ll attempt to explain my insights into this process, based on 25+ years in the industry in a number of different companies.</subtitle><link rel='http://schemas.google.com/g/2005#feed' type='application/atom+xml' href='http://ninjasoftwaredevelopment.blogspot.com/feeds/posts/default'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/21179782/posts/default?redirect=false'/><link rel='alternate' type='text/html' href='http://ninjasoftwaredevelopment.blogspot.com/'/><link rel='hub' href='http://pubsubhubbub.appspot.com/'/><link rel='next' type='application/atom+xml' href='http://www.blogger.com/feeds/21179782/posts/default?start-index=26&amp;max-results=25&amp;redirect=false'/><author><name>Dixie Software Ninja</name><uri>http://www.blogger.com/profile/03037941824583012175</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><generator version='7.00' uri='http://www.blogger.com'>Blogger</generator><openSearch:totalResults>250</openSearch:totalResults><openSearch:startIndex>1</openSearch:startIndex><openSearch:itemsPerPage>25</openSearch:itemsPerPage><entry><id>tag:blogger.com,1999:blog-21179782.post-5779339948409386991</id><published>2023-03-20T11:44:00.003-04:00</published><updated>2023-03-20T11:44:40.225-04:00</updated><title type='text'>YANJ (Yet Another New Job)</title><content type='html'>&lt;p&gt;&amp;nbsp;So, Startup, Inc. had what I can only guess in an investor clench and they laid off 10 people, including me.&lt;/p&gt;&lt;p&gt;Meh.&amp;nbsp; I got a new job in less than 5 weeks.&lt;/p&gt;&lt;p&gt;&lt;br /&gt;&lt;/p&gt;&lt;div class=&quot;blogger-post-footer&quot;&gt;&lt;a href=&quot;&lt;? bloginfo(&#39;rss2_url&#39;) ?&gt;&quot; title=&quot;Subscribe to my feed&quot;&gt;&lt;img src=&quot;http://www.toprankblog.com/tools/graphics/feed-icon.gif&quot; style=&quot;border:0&quot;/&gt;&lt;/a&gt;&lt;/div&gt;</content><link rel='replies' type='application/atom+xml' href='http://ninjasoftwaredevelopment.blogspot.com/feeds/5779339948409386991/comments/default' title='Post Comments'/><link rel='replies' type='text/html' href='http://www.blogger.com/comment/fullpage/post/21179782/5779339948409386991' title='0 Comments'/><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/21179782/posts/default/5779339948409386991'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/21179782/posts/default/5779339948409386991'/><link rel='alternate' type='text/html' href='http://ninjasoftwaredevelopment.blogspot.com/2023/03/yanj-yet-another-new-job.html' title='YANJ (Yet Another New Job)'/><author><name>Dixie Software Ninja</name><uri>http://www.blogger.com/profile/03037941824583012175</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-21179782.post-3118200088038833703</id><published>2021-03-20T20:31:00.002-04:00</published><updated>2021-03-20T20:31:21.778-04:00</updated><title type='text'>New Job</title><content type='html'>&lt;p&gt;&amp;nbsp;So I up and changed jobs - no more working for Giant Souless Corporation; in stead, I&#39;m working for Souless Startup Company.&lt;/p&gt;&lt;p&gt;It will be interesting to see if SSC has managed to actually implement agile.&lt;/p&gt;&lt;p&gt;&lt;br /&gt;&lt;/p&gt;&lt;div class=&quot;blogger-post-footer&quot;&gt;&lt;a href=&quot;&lt;? bloginfo(&#39;rss2_url&#39;) ?&gt;&quot; title=&quot;Subscribe to my feed&quot;&gt;&lt;img src=&quot;http://www.toprankblog.com/tools/graphics/feed-icon.gif&quot; style=&quot;border:0&quot;/&gt;&lt;/a&gt;&lt;/div&gt;</content><link rel='replies' type='application/atom+xml' href='http://ninjasoftwaredevelopment.blogspot.com/feeds/3118200088038833703/comments/default' title='Post Comments'/><link rel='replies' type='text/html' href='http://www.blogger.com/comment/fullpage/post/21179782/3118200088038833703' title='0 Comments'/><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/21179782/posts/default/3118200088038833703'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/21179782/posts/default/3118200088038833703'/><link rel='alternate' type='text/html' href='http://ninjasoftwaredevelopment.blogspot.com/2021/03/new-job.html' title='New Job'/><author><name>Dixie Software Ninja</name><uri>http://www.blogger.com/profile/03037941824583012175</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-21179782.post-8979865085696922368</id><published>2020-08-28T13:09:00.002-04:00</published><updated>2020-08-28T13:09:41.137-04:00</updated><category scheme="http://www.blogger.com/atom/ns#" term="people issues"/><title type='text'>Agile will fail</title><content type='html'>&lt;p&gt;Because none of the business-side people bother to learn, and all the commercial tools allow them to avoid learning.&lt;/p&gt;&lt;p&gt;User stories that are written solely from the person at the keyboard, with no thought to the different parts of the architecture - so all the estimates require input from UI, middleware, and server-side staff, and can&#39;t be subdivided by the tool into group-specific work&lt;/p&gt;&lt;p&gt;Business-types who cannot define a feature with any precision - &quot;customer will get a message with the offer&quot;, neglecting all the many ways the system needs to not repeat the message.&lt;/p&gt;&lt;p&gt;&lt;br /&gt;&lt;/p&gt;&lt;div class=&quot;blogger-post-footer&quot;&gt;&lt;a href=&quot;&lt;? bloginfo(&#39;rss2_url&#39;) ?&gt;&quot; title=&quot;Subscribe to my feed&quot;&gt;&lt;img src=&quot;http://www.toprankblog.com/tools/graphics/feed-icon.gif&quot; style=&quot;border:0&quot;/&gt;&lt;/a&gt;&lt;/div&gt;</content><link rel='replies' type='application/atom+xml' href='http://ninjasoftwaredevelopment.blogspot.com/feeds/8979865085696922368/comments/default' title='Post Comments'/><link rel='replies' type='text/html' href='http://www.blogger.com/comment/fullpage/post/21179782/8979865085696922368' title='0 Comments'/><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/21179782/posts/default/8979865085696922368'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/21179782/posts/default/8979865085696922368'/><link rel='alternate' type='text/html' href='http://ninjasoftwaredevelopment.blogspot.com/2020/08/agile-will-fail.html' title='Agile will fail'/><author><name>Dixie Software Ninja</name><uri>http://www.blogger.com/profile/03037941824583012175</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-21179782.post-8382625657041046157</id><published>2020-08-18T11:35:00.001-04:00</published><updated>2020-08-18T11:35:51.282-04:00</updated><title type='text'>Non-leaders</title><content type='html'>&lt;p&gt;So I&#39;ve been having a bad day.&amp;nbsp; Wake up to a bunch of work bureaucracy bullshit - web forms that do not have working links, Satanically bad UI design, a ton of &#39;jobsworth&#39; types telling me I have to do X, but not providing anything other than links to 47GB of text and no pointers.&lt;/p&gt;&lt;p&gt;&lt;br /&gt;&lt;/p&gt;&lt;p&gt;Now the project that the team is supposed to be working on together is cobbled together by a guy who does not provide a working build script, has both JSON and XML format config files, and so on.&lt;/p&gt;&lt;p&gt;&lt;br /&gt;&lt;/p&gt;&lt;p&gt;I/m fucking furious&lt;/p&gt;&lt;p&gt;&lt;br /&gt;&lt;/p&gt;&lt;div class=&quot;blogger-post-footer&quot;&gt;&lt;a href=&quot;&lt;? bloginfo(&#39;rss2_url&#39;) ?&gt;&quot; title=&quot;Subscribe to my feed&quot;&gt;&lt;img src=&quot;http://www.toprankblog.com/tools/graphics/feed-icon.gif&quot; style=&quot;border:0&quot;/&gt;&lt;/a&gt;&lt;/div&gt;</content><link rel='replies' type='application/atom+xml' href='http://ninjasoftwaredevelopment.blogspot.com/feeds/8382625657041046157/comments/default' title='Post Comments'/><link rel='replies' type='text/html' href='http://www.blogger.com/comment/fullpage/post/21179782/8382625657041046157' title='0 Comments'/><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/21179782/posts/default/8382625657041046157'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/21179782/posts/default/8382625657041046157'/><link rel='alternate' type='text/html' href='http://ninjasoftwaredevelopment.blogspot.com/2020/08/non-leaders.html' title='Non-leaders'/><author><name>Dixie Software Ninja</name><uri>http://www.blogger.com/profile/03037941824583012175</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-21179782.post-3589040245148254056</id><published>2020-02-21T22:05:00.000-05:00</published><updated>2020-02-21T22:05:00.382-05:00</updated><title type='text'>Bad API behavior</title><content type='html'>Ok, so we were running test code yesterday evening to get some data for a presentation, and there was a typo in a text string that a downstream system didn&#39;t like.&amp;nbsp; So this morning I get angry emails about the &quot;bad data&quot; and have to roll back the changes.&lt;br /&gt;
&lt;br /&gt;
But what really pisses me off is that the downstream system was coded to expect exactly certain strings in that field, and if the contents did not match, IT FUCKING CRASHED.&lt;br /&gt;
&lt;br /&gt;
This is not good software design.&amp;nbsp; It can complain, log errors, ignore the messages, all sorts of annoying things, but it should not, EVER crash when it can easily avoid doing so.&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;&lt;div class=&quot;blogger-post-footer&quot;&gt;&lt;a href=&quot;&lt;? bloginfo(&#39;rss2_url&#39;) ?&gt;&quot; title=&quot;Subscribe to my feed&quot;&gt;&lt;img src=&quot;http://www.toprankblog.com/tools/graphics/feed-icon.gif&quot; style=&quot;border:0&quot;/&gt;&lt;/a&gt;&lt;/div&gt;</content><link rel='replies' type='application/atom+xml' href='http://ninjasoftwaredevelopment.blogspot.com/feeds/3589040245148254056/comments/default' title='Post Comments'/><link rel='replies' type='text/html' href='http://www.blogger.com/comment/fullpage/post/21179782/3589040245148254056' title='0 Comments'/><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/21179782/posts/default/3589040245148254056'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/21179782/posts/default/3589040245148254056'/><link rel='alternate' type='text/html' href='http://ninjasoftwaredevelopment.blogspot.com/2020/02/bad-api-behavior.html' title='Bad API behavior'/><author><name>Dixie Software Ninja</name><uri>http://www.blogger.com/profile/03037941824583012175</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-21179782.post-3996461690686878692</id><published>2020-01-09T21:34:00.002-05:00</published><updated>2020-01-09T21:34:33.619-05:00</updated><title type='text'>The Perfect Office</title><content type='html'>Screw open plan offices.&lt;br /&gt;
&lt;br /&gt;
They suck in all ways.&lt;br /&gt;
&lt;br /&gt;
The ideal office plan has individual real offices for each developer -walls all the way to the ceiling, real closing door, etc.&lt;br /&gt;
&lt;br /&gt;
Each cluster of 3-7 offices opens onto a common space with a few tables and whiteboards for group work, etc.&lt;br /&gt;
&lt;br /&gt;
Several clusters all share a common kitchen space, where at least once a week there is a company-paid lunch.&amp;nbsp; Access to the cluster space is only through this common space, so you can get the (limited) benefit of people mingling for &quot;collaboration&quot;, and the common free lunch means people will see other groups from time to time, and trigger any serendipitous synergies.&lt;br /&gt;
&lt;br /&gt;
Adjustable sit/stand desks in each office, at least 2 large whiteboards in each office (Minimum 10x10 ft space).&amp;nbsp; Two or more monitors, wireless mouse and kayboard.&lt;br /&gt;
&lt;br /&gt;&lt;div class=&quot;blogger-post-footer&quot;&gt;&lt;a href=&quot;&lt;? bloginfo(&#39;rss2_url&#39;) ?&gt;&quot; title=&quot;Subscribe to my feed&quot;&gt;&lt;img src=&quot;http://www.toprankblog.com/tools/graphics/feed-icon.gif&quot; style=&quot;border:0&quot;/&gt;&lt;/a&gt;&lt;/div&gt;</content><link rel='replies' type='application/atom+xml' href='http://ninjasoftwaredevelopment.blogspot.com/feeds/3996461690686878692/comments/default' title='Post Comments'/><link rel='replies' type='text/html' href='http://www.blogger.com/comment/fullpage/post/21179782/3996461690686878692' title='0 Comments'/><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/21179782/posts/default/3996461690686878692'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/21179782/posts/default/3996461690686878692'/><link rel='alternate' type='text/html' href='http://ninjasoftwaredevelopment.blogspot.com/2020/01/the-perfect-office.html' title='The Perfect Office'/><author><name>Dixie Software Ninja</name><uri>http://www.blogger.com/profile/03037941824583012175</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-21179782.post-4040687620535930687</id><published>2019-10-04T19:06:00.000-04:00</published><updated>2019-10-04T19:06:19.173-04:00</updated><title type='text'>Logging advice</title><content type='html'>Ok, an actual post about doing things right, instead of me venting my spleen.&lt;br /&gt;
&lt;br /&gt;
So, let&#39;s talk about logging messages.&lt;br /&gt;
&lt;br /&gt;
When writing logging messages for technical use - monitoring, statistics, etc, pick a separating character that is not part of the various fields you have interest in.&lt;br /&gt;
&lt;br /&gt;
For example, most log messages will include a timestamp, so use of &#39;:&#39; is out.&amp;nbsp; Likewise, if the timestamps include the date, the &#39;/&#39; or &#39;-&#39; is right out.&lt;br /&gt;
&lt;br /&gt;
A good choice for the field divider is the &#39;|&#39;, and then the use of spaces as separation of the subfields.&lt;div class=&quot;blogger-post-footer&quot;&gt;&lt;a href=&quot;&lt;? bloginfo(&#39;rss2_url&#39;) ?&gt;&quot; title=&quot;Subscribe to my feed&quot;&gt;&lt;img src=&quot;http://www.toprankblog.com/tools/graphics/feed-icon.gif&quot; style=&quot;border:0&quot;/&gt;&lt;/a&gt;&lt;/div&gt;</content><link rel='replies' type='application/atom+xml' href='http://ninjasoftwaredevelopment.blogspot.com/feeds/4040687620535930687/comments/default' title='Post Comments'/><link rel='replies' type='text/html' href='http://www.blogger.com/comment/fullpage/post/21179782/4040687620535930687' title='0 Comments'/><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/21179782/posts/default/4040687620535930687'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/21179782/posts/default/4040687620535930687'/><link rel='alternate' type='text/html' href='http://ninjasoftwaredevelopment.blogspot.com/2019/10/logging-advice.html' title='Logging advice'/><author><name>Dixie Software Ninja</name><uri>http://www.blogger.com/profile/03037941824583012175</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-21179782.post-5788995801129466283</id><published>2019-09-23T22:06:00.001-04:00</published><updated>2019-09-23T22:08:47.999-04:00</updated><title type='text'>It&#39;s the goddamn 21st century....</title><content type='html'>Why is someone declaring a message string with only 256 characters on a server-side program?&amp;nbsp; I mean, we are running on systems with hundreds of gigs of RAM, and it&#39;s for a freaking LOG MESSAGE, local variable, on the fucking stack.&lt;br /&gt;
&lt;br /&gt;
But 256 characters it was, and&amp;nbsp; we decided we wanted to log a command line for a Java program, so between the log4j path argument and the Java binary path, it was 270 chars long, and it stomped on the stack, leading to a premature exit.&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;&lt;div class=&quot;blogger-post-footer&quot;&gt;&lt;a href=&quot;&lt;? bloginfo(&#39;rss2_url&#39;) ?&gt;&quot; title=&quot;Subscribe to my feed&quot;&gt;&lt;img src=&quot;http://www.toprankblog.com/tools/graphics/feed-icon.gif&quot; style=&quot;border:0&quot;/&gt;&lt;/a&gt;&lt;/div&gt;</content><link rel='replies' type='application/atom+xml' href='http://ninjasoftwaredevelopment.blogspot.com/feeds/5788995801129466283/comments/default' title='Post Comments'/><link rel='replies' type='text/html' href='http://www.blogger.com/comment/fullpage/post/21179782/5788995801129466283' title='0 Comments'/><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/21179782/posts/default/5788995801129466283'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/21179782/posts/default/5788995801129466283'/><link rel='alternate' type='text/html' href='http://ninjasoftwaredevelopment.blogspot.com/2019/09/its-goddamn-21st-century.html' title='It&#39;s the goddamn 21st century....'/><author><name>Dixie Software Ninja</name><uri>http://www.blogger.com/profile/03037941824583012175</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-21179782.post-6916015981614623437</id><published>2019-09-21T23:02:00.000-04:00</published><updated>2019-09-21T23:02:03.465-04:00</updated><title type='text'>The Mismeasurement of Code</title><content type='html'>Christ on a crutch.&lt;br /&gt;
&lt;br /&gt;
My PM is suddenly gung-ho on getting measurements for &quot;KPIs&quot;, and beaing able to &quot;get ahead of things&quot; when event volume changes.&lt;br /&gt;
&lt;br /&gt;
Never mind that speaking up gets everyone and his brother pointing fingers at you for their problems, even when it&#39;s someone else in the middle who has screwed up.&amp;nbsp; The corporate mindset is such that whoever says they have a problem is suddenly the cause of the problem.&lt;br /&gt;
&lt;br /&gt;
Never mind that we have a cient to who *not* in production, but acts like any small time out of service is like the Fires of Hell are burning their ass and it&#39;s all your fault.&lt;br /&gt;
&lt;br /&gt;&lt;div class=&quot;blogger-post-footer&quot;&gt;&lt;a href=&quot;&lt;? bloginfo(&#39;rss2_url&#39;) ?&gt;&quot; title=&quot;Subscribe to my feed&quot;&gt;&lt;img src=&quot;http://www.toprankblog.com/tools/graphics/feed-icon.gif&quot; style=&quot;border:0&quot;/&gt;&lt;/a&gt;&lt;/div&gt;</content><link rel='replies' type='application/atom+xml' href='http://ninjasoftwaredevelopment.blogspot.com/feeds/6916015981614623437/comments/default' title='Post Comments'/><link rel='replies' type='text/html' href='http://www.blogger.com/comment/fullpage/post/21179782/6916015981614623437' title='0 Comments'/><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/21179782/posts/default/6916015981614623437'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/21179782/posts/default/6916015981614623437'/><link rel='alternate' type='text/html' href='http://ninjasoftwaredevelopment.blogspot.com/2019/09/the-mismeasurement-of-code.html' title='The Mismeasurement of Code'/><author><name>Dixie Software Ninja</name><uri>http://www.blogger.com/profile/03037941824583012175</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-21179782.post-528572249355844640</id><published>2019-09-21T22:57:00.001-04:00</published><updated>2019-09-21T22:57:26.073-04:00</updated><title type='text'>Been sayin that for years</title><content type='html'>Just read an article in the PyCoders weekly list about refactoring functions to have multiple return points.&lt;br /&gt;
&lt;br /&gt;
The article is well-written, but I was floored by the need for it.&amp;nbsp; I&#39;ve been an advocate of multiple return points for 2 decades.&lt;br /&gt;
&lt;br /&gt;
The only reason to hold to a single return point in a function is to guarantee release of resources, and every OO language has had a means to do that with a local variable and destructor for over 25 years.&lt;br /&gt;
&lt;br /&gt;
Multiple return points make the logic clear, handle special cases better, and allow better refactoring later for all purposes.&lt;br /&gt;
&lt;br /&gt;&lt;div class=&quot;blogger-post-footer&quot;&gt;&lt;a href=&quot;&lt;? bloginfo(&#39;rss2_url&#39;) ?&gt;&quot; title=&quot;Subscribe to my feed&quot;&gt;&lt;img src=&quot;http://www.toprankblog.com/tools/graphics/feed-icon.gif&quot; style=&quot;border:0&quot;/&gt;&lt;/a&gt;&lt;/div&gt;</content><link rel='replies' type='application/atom+xml' href='http://ninjasoftwaredevelopment.blogspot.com/feeds/528572249355844640/comments/default' title='Post Comments'/><link rel='replies' type='text/html' href='http://www.blogger.com/comment/fullpage/post/21179782/528572249355844640' title='0 Comments'/><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/21179782/posts/default/528572249355844640'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/21179782/posts/default/528572249355844640'/><link rel='alternate' type='text/html' href='http://ninjasoftwaredevelopment.blogspot.com/2019/09/been-sayin-that-for-years.html' title='Been sayin that for years'/><author><name>Dixie Software Ninja</name><uri>http://www.blogger.com/profile/03037941824583012175</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-21179782.post-2575926534412602969</id><published>2019-08-16T22:00:00.001-04:00</published><updated>2019-08-16T22:00:54.467-04:00</updated><title type='text'>Do as I say, not as I do</title><content type='html'>I am beyond tired of being the one who has to follow all process and procedures, while being subject to other systems whose owners do not.&lt;br /&gt;
&lt;br /&gt;
We had 2 major system failures this week, that essentially stopped our application from running or getting its data out.&amp;nbsp; In both cases, we were contacted by the downstream application teams, demanding to knwo th reason for the outage, and when it would be over.&amp;nbsp; Curiously, neither of the mission-critical systems that failed contacted us in any way, despite our system being well-documented as being on those machines and using that system.&lt;br /&gt;
&lt;br /&gt;
Yet somehow, there seems to be no fallout to those systems for this utter lack of communication to the end users about this.&lt;br /&gt;
&lt;br /&gt;
I may have complained previously about a manager who once told me that once I was told about a problem I had to &quot;own it&quot;.&amp;nbsp; I responded with the obvious question - why didn&#39;t the person who told be about the problem have to own it?&amp;nbsp; I did not receive a good answer, except that the manager wanted to seem in control.&lt;br /&gt;
&lt;br /&gt;&lt;div class=&quot;blogger-post-footer&quot;&gt;&lt;a href=&quot;&lt;? bloginfo(&#39;rss2_url&#39;) ?&gt;&quot; title=&quot;Subscribe to my feed&quot;&gt;&lt;img src=&quot;http://www.toprankblog.com/tools/graphics/feed-icon.gif&quot; style=&quot;border:0&quot;/&gt;&lt;/a&gt;&lt;/div&gt;</content><link rel='replies' type='application/atom+xml' href='http://ninjasoftwaredevelopment.blogspot.com/feeds/2575926534412602969/comments/default' title='Post Comments'/><link rel='replies' type='text/html' href='http://www.blogger.com/comment/fullpage/post/21179782/2575926534412602969' title='0 Comments'/><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/21179782/posts/default/2575926534412602969'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/21179782/posts/default/2575926534412602969'/><link rel='alternate' type='text/html' href='http://ninjasoftwaredevelopment.blogspot.com/2019/08/do-as-i-say-not-as-i-do.html' title='Do as I say, not as I do'/><author><name>Dixie Software Ninja</name><uri>http://www.blogger.com/profile/03037941824583012175</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-21179782.post-7255526450029765376</id><published>2019-06-28T22:35:00.000-04:00</published><updated>2019-06-28T22:35:07.535-04:00</updated><title type='text'>Readiness</title><content type='html'>So one team that wants data we will provide is pressing for us to turn the spigot on.&amp;nbsp; And this afternoon, they inform us that they can&#39;t decrypt the encrypted data, and the error code is that they are not accessing the encryption system correctly.&lt;br /&gt;
So we had to get the data to them right away, so that they could find out they weren&#39;t ready for the data.&lt;br /&gt;
&lt;br /&gt;&lt;div class=&quot;blogger-post-footer&quot;&gt;&lt;a href=&quot;&lt;? bloginfo(&#39;rss2_url&#39;) ?&gt;&quot; title=&quot;Subscribe to my feed&quot;&gt;&lt;img src=&quot;http://www.toprankblog.com/tools/graphics/feed-icon.gif&quot; style=&quot;border:0&quot;/&gt;&lt;/a&gt;&lt;/div&gt;</content><link rel='replies' type='application/atom+xml' href='http://ninjasoftwaredevelopment.blogspot.com/feeds/7255526450029765376/comments/default' title='Post Comments'/><link rel='replies' type='text/html' href='http://www.blogger.com/comment/fullpage/post/21179782/7255526450029765376' title='0 Comments'/><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/21179782/posts/default/7255526450029765376'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/21179782/posts/default/7255526450029765376'/><link rel='alternate' type='text/html' href='http://ninjasoftwaredevelopment.blogspot.com/2019/06/readiness.html' title='Readiness'/><author><name>Dixie Software Ninja</name><uri>http://www.blogger.com/profile/03037941824583012175</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-21179782.post-4417592648997029178</id><published>2019-06-27T22:51:00.000-04:00</published><updated>2019-06-27T22:51:09.906-04:00</updated><title type='text'>Vanishing staffers</title><content type='html'>So The Job, like many megacorporations, is trying to cut staff by having contractors do the work.&lt;br /&gt;
&lt;br /&gt;
My team consists of 4 permanent employees, and&amp;nbsp; 5 contractors, and half the temporary folks will be gone in a year.&lt;br /&gt;
&lt;br /&gt;
So I am stuck with trying to figure out how to transfer knowledge, and juggle workload, and transistion support.&lt;br /&gt;
&lt;br /&gt;
Sheesh&lt;br /&gt;
&lt;br /&gt;&lt;div class=&quot;blogger-post-footer&quot;&gt;&lt;a href=&quot;&lt;? bloginfo(&#39;rss2_url&#39;) ?&gt;&quot; title=&quot;Subscribe to my feed&quot;&gt;&lt;img src=&quot;http://www.toprankblog.com/tools/graphics/feed-icon.gif&quot; style=&quot;border:0&quot;/&gt;&lt;/a&gt;&lt;/div&gt;</content><link rel='replies' type='application/atom+xml' href='http://ninjasoftwaredevelopment.blogspot.com/feeds/4417592648997029178/comments/default' title='Post Comments'/><link rel='replies' type='text/html' href='http://www.blogger.com/comment/fullpage/post/21179782/4417592648997029178' title='0 Comments'/><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/21179782/posts/default/4417592648997029178'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/21179782/posts/default/4417592648997029178'/><link rel='alternate' type='text/html' href='http://ninjasoftwaredevelopment.blogspot.com/2019/06/vanishing-staffers.html' title='Vanishing staffers'/><author><name>Dixie Software Ninja</name><uri>http://www.blogger.com/profile/03037941824583012175</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-21179782.post-5994862395891419336</id><published>2019-06-11T21:57:00.000-04:00</published><updated>2019-06-11T21:57:26.053-04:00</updated><title type='text'>Ignoring the obvious</title><content type='html'>Y&#39;know, sometimes The Job just fucking wears on you.&lt;br /&gt;
&lt;br /&gt;
Ok, so I have one cow-orker who is not the sharped knife in the drawer.&amp;nbsp; We are running a system that needs certain portions of the data encrypted, so he was tasked with writing an encrypting filter.&amp;nbsp; He does this, and is testing it on our data stream.&lt;br /&gt;
&lt;br /&gt;
Performance results show that the time from our sender pushing the records into the system to his filter reading them increasing.&amp;nbsp; Our test reader is showing a time delta of nearly nothing, and it just reads.&amp;nbsp; And we have another process that is reading and storing records from the stream, and it backs up pretty steadily as the DB load increases&lt;br /&gt;
&lt;br /&gt;
So the obvious conclusion is that his reader is backing up because of the processor load.&lt;br /&gt;
&lt;br /&gt;
But no, that&#39;s not what he thinks.&amp;nbsp; He is adamant that there might be another reason.&lt;br /&gt;
&lt;br /&gt;
Why the fuck am I having to explain to a nominally experienced programmer that if the passthru does not show delayy and the proessor-loaded filter shows delay, ,it&#39;s due to processor load?&lt;br /&gt;
&lt;br /&gt;&lt;div class=&quot;blogger-post-footer&quot;&gt;&lt;a href=&quot;&lt;? bloginfo(&#39;rss2_url&#39;) ?&gt;&quot; title=&quot;Subscribe to my feed&quot;&gt;&lt;img src=&quot;http://www.toprankblog.com/tools/graphics/feed-icon.gif&quot; style=&quot;border:0&quot;/&gt;&lt;/a&gt;&lt;/div&gt;</content><link rel='replies' type='application/atom+xml' href='http://ninjasoftwaredevelopment.blogspot.com/feeds/5994862395891419336/comments/default' title='Post Comments'/><link rel='replies' type='text/html' href='http://www.blogger.com/comment/fullpage/post/21179782/5994862395891419336' title='0 Comments'/><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/21179782/posts/default/5994862395891419336'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/21179782/posts/default/5994862395891419336'/><link rel='alternate' type='text/html' href='http://ninjasoftwaredevelopment.blogspot.com/2019/06/ignoring-obvious.html' title='Ignoring the obvious'/><author><name>Dixie Software Ninja</name><uri>http://www.blogger.com/profile/03037941824583012175</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-21179782.post-6675662772914947021</id><published>2019-04-24T22:16:00.001-04:00</published><updated>2019-04-24T22:16:10.948-04:00</updated><title type='text'>Lying Liars</title><content type='html'>Ok, so The Job has me working for a manager, and he&#39;s hired a Project Manager contractor (some time back, I&#39;m just setting the stage)&lt;br /&gt;
&lt;br /&gt;
Recent corporate bullshit has led to a requirement that everyone be working on funded projects.&lt;br /&gt;
&lt;br /&gt;
So my manager has decided what percentage of &quot;work&#39; everyone is doing on his funded projects, for the next few months.&amp;nbsp; To be fair, he&#39;s keeping everyone on paid-for work, so it&#39;s a good thought.&amp;nbsp; But b/c of this, the PM is asking me what tasks can be given to the 2 devs who are not really on our project to cover the percentage of time they are supposed to be working on our funded project.&lt;br /&gt;
&lt;br /&gt;
So to assuage his conscience and not lie, he wants be to invent work for them, even if they really have no business working on our project (b/c they have no context, not for any skills issue)&lt;br /&gt;
&lt;br /&gt;
I hate this bullshit&lt;br /&gt;
&lt;br /&gt;&lt;div class=&quot;blogger-post-footer&quot;&gt;&lt;a href=&quot;&lt;? bloginfo(&#39;rss2_url&#39;) ?&gt;&quot; title=&quot;Subscribe to my feed&quot;&gt;&lt;img src=&quot;http://www.toprankblog.com/tools/graphics/feed-icon.gif&quot; style=&quot;border:0&quot;/&gt;&lt;/a&gt;&lt;/div&gt;</content><link rel='replies' type='application/atom+xml' href='http://ninjasoftwaredevelopment.blogspot.com/feeds/6675662772914947021/comments/default' title='Post Comments'/><link rel='replies' type='text/html' href='http://www.blogger.com/comment/fullpage/post/21179782/6675662772914947021' title='0 Comments'/><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/21179782/posts/default/6675662772914947021'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/21179782/posts/default/6675662772914947021'/><link rel='alternate' type='text/html' href='http://ninjasoftwaredevelopment.blogspot.com/2019/04/lying-liars.html' title='Lying Liars'/><author><name>Dixie Software Ninja</name><uri>http://www.blogger.com/profile/03037941824583012175</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-21179782.post-3972929844406790194</id><published>2019-04-12T19:46:00.002-04:00</published><updated>2019-04-12T19:46:33.819-04:00</updated><title type='text'>Really Stupid Corporate Policies</title><content type='html'>Ok, The Job has really pissed me off this past couple of weeks.&lt;br /&gt;
&lt;br /&gt;
They have a number of policies intended to protect company assets that are just plain useless.&lt;br /&gt;
&lt;br /&gt;
#1 - only staff with &quot;developer&quot; in their title are allowed admin access to code repositories, despite a number of projects where the entire development staff has been on a revolving door, and only the manager is a continuous presence.&amp;nbsp; But we can&#39;t have one of the non-developers controlling access, can we?&lt;br /&gt;
&lt;br /&gt;
#2 - despite a growing number of contract staff, several tasks can only be done be a full-time employee, which means that *I* get stuck with setting up those tasks for our projects and a couple of other groups&#39;&lt;br /&gt;
&lt;br /&gt;
#3 - Several tasks need approval by some specific level of management, and by &#39;specific&#39; I mean exactly a certain level in the food chain.&amp;nbsp; Not &quot;at least a 2nd-level manager&quot;, but &quot;only 2nd-level manager, not 3rd, not 4th, etc&quot;&lt;br /&gt;
&lt;br /&gt;&lt;div class=&quot;blogger-post-footer&quot;&gt;&lt;a href=&quot;&lt;? bloginfo(&#39;rss2_url&#39;) ?&gt;&quot; title=&quot;Subscribe to my feed&quot;&gt;&lt;img src=&quot;http://www.toprankblog.com/tools/graphics/feed-icon.gif&quot; style=&quot;border:0&quot;/&gt;&lt;/a&gt;&lt;/div&gt;</content><link rel='replies' type='application/atom+xml' href='http://ninjasoftwaredevelopment.blogspot.com/feeds/3972929844406790194/comments/default' title='Post Comments'/><link rel='replies' type='text/html' href='http://www.blogger.com/comment/fullpage/post/21179782/3972929844406790194' title='0 Comments'/><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/21179782/posts/default/3972929844406790194'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/21179782/posts/default/3972929844406790194'/><link rel='alternate' type='text/html' href='http://ninjasoftwaredevelopment.blogspot.com/2019/04/really-stupid-corporate-policies.html' title='Really Stupid Corporate Policies'/><author><name>Dixie Software Ninja</name><uri>http://www.blogger.com/profile/03037941824583012175</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-21179782.post-3801883533427239039</id><published>2019-03-25T18:39:00.001-04:00</published><updated>2019-03-25T18:39:37.899-04:00</updated><title type='text'>SSDD, Agile Misunderstandings</title><content type='html'>So the latest job is moving to Agile.&amp;nbsp; They&#39;ve got a nifty all-in-one Agile tool set up, with the usual problems such things involve.&lt;br /&gt;
&lt;br /&gt;
But the real fun is that people are writing user stories who have no idea what the technical people on the team are doing, and without asking them at all.&lt;br /&gt;
&lt;br /&gt;
This is driven by the mandate from On High that everyone will be doing Agile ASAP.&lt;br /&gt;
&lt;br /&gt;
So we stumble along, as the uninformed are filling our backlog with items that cannot be broken down.&lt;br /&gt;
&lt;br /&gt;
And the best - the tool training uses a team&#39;s per-iteration completion of story points as one of the metrics.&amp;nbsp; IOW, they expect every team to maintain a high rate of finishing business value.&amp;nbsp;&lt;br /&gt;
&lt;br /&gt;
That won&#39;t have any effect on the estimation process, nosireebob.&lt;br /&gt;
&lt;br /&gt;&lt;div class=&quot;blogger-post-footer&quot;&gt;&lt;a href=&quot;&lt;? bloginfo(&#39;rss2_url&#39;) ?&gt;&quot; title=&quot;Subscribe to my feed&quot;&gt;&lt;img src=&quot;http://www.toprankblog.com/tools/graphics/feed-icon.gif&quot; style=&quot;border:0&quot;/&gt;&lt;/a&gt;&lt;/div&gt;</content><link rel='replies' type='application/atom+xml' href='http://ninjasoftwaredevelopment.blogspot.com/feeds/3801883533427239039/comments/default' title='Post Comments'/><link rel='replies' type='text/html' href='http://www.blogger.com/comment/fullpage/post/21179782/3801883533427239039' title='0 Comments'/><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/21179782/posts/default/3801883533427239039'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/21179782/posts/default/3801883533427239039'/><link rel='alternate' type='text/html' href='http://ninjasoftwaredevelopment.blogspot.com/2019/03/ssdd-agile-misunderstandings.html' title='SSDD, Agile Misunderstandings'/><author><name>Dixie Software Ninja</name><uri>http://www.blogger.com/profile/03037941824583012175</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-21179782.post-5664493520737300582</id><published>2019-02-12T21:18:00.001-05:00</published><updated>2019-02-12T21:18:12.245-05:00</updated><title type='text'>Like Neo in &quot;The Matrix&quot;</title><content type='html'>...I dodged a bullet with panache yesterday.&lt;br /&gt;
&lt;br /&gt;
A couple of weeks ago, I got an email from Blizzard, asking if I was interested in a position there.&amp;nbsp; I said I was at least interested in listening, so a phone screen was set up for yesterday.&amp;nbsp; And on Friday, I read in the trade press that Blizzard is rumored to be planning a significant layoff by Feb 12.&amp;nbsp; So I take the call on the 11th, and the recruiter was totally silent about the layoff.&amp;nbsp; But since they are not at all remote-work-friendly, the interview was pretty short.&lt;br /&gt;
&lt;br /&gt;&lt;div class=&quot;blogger-post-footer&quot;&gt;&lt;a href=&quot;&lt;? bloginfo(&#39;rss2_url&#39;) ?&gt;&quot; title=&quot;Subscribe to my feed&quot;&gt;&lt;img src=&quot;http://www.toprankblog.com/tools/graphics/feed-icon.gif&quot; style=&quot;border:0&quot;/&gt;&lt;/a&gt;&lt;/div&gt;</content><link rel='replies' type='application/atom+xml' href='http://ninjasoftwaredevelopment.blogspot.com/feeds/5664493520737300582/comments/default' title='Post Comments'/><link rel='replies' type='text/html' href='http://www.blogger.com/comment/fullpage/post/21179782/5664493520737300582' title='0 Comments'/><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/21179782/posts/default/5664493520737300582'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/21179782/posts/default/5664493520737300582'/><link rel='alternate' type='text/html' href='http://ninjasoftwaredevelopment.blogspot.com/2019/02/like-neo-in-matrix.html' title='Like Neo in &quot;The Matrix&quot;'/><author><name>Dixie Software Ninja</name><uri>http://www.blogger.com/profile/03037941824583012175</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-21179782.post-8684890596316806054</id><published>2019-02-08T17:30:00.000-05:00</published><updated>2019-02-08T17:30:22.220-05:00</updated><title type='text'>It&#39;s like working for Jello</title><content type='html'>So, about 2 years ago, I was asked to spin up a web interface for some data our project produces, to interface with another project.&amp;nbsp; They had a lot of hidden requirements, and turned out to not have a viable business case, so they went away.&amp;nbsp;&lt;br /&gt;
In the interim, I had to maintain this interface, modify it every time our intermediate communications paths changed, handle the massive increase in data volume, etc.&lt;br /&gt;
When another tool dropped export support, my boss looked for a replacement that was found in another project he manages, and the lead of that project suddenly was really keen on developing a replacement for the web interface.&amp;nbsp; And my boss was falling over himself to say we would switch to that interface.&amp;nbsp;&lt;br /&gt;
Fast forward to yesterday when we were meeting to finalize some details, and it suddenly becomes a bake-off. We have to run some tests and list pros &amp;amp; cons.&lt;br /&gt;
Then today, it becomes back to using my interface, until the other guy mentions some things, and the pendulum swings back that way.&lt;br /&gt;
&lt;br /&gt;&lt;div class=&quot;blogger-post-footer&quot;&gt;&lt;a href=&quot;&lt;? bloginfo(&#39;rss2_url&#39;) ?&gt;&quot; title=&quot;Subscribe to my feed&quot;&gt;&lt;img src=&quot;http://www.toprankblog.com/tools/graphics/feed-icon.gif&quot; style=&quot;border:0&quot;/&gt;&lt;/a&gt;&lt;/div&gt;</content><link rel='replies' type='application/atom+xml' href='http://ninjasoftwaredevelopment.blogspot.com/feeds/8684890596316806054/comments/default' title='Post Comments'/><link rel='replies' type='text/html' href='http://www.blogger.com/comment/fullpage/post/21179782/8684890596316806054' title='0 Comments'/><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/21179782/posts/default/8684890596316806054'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/21179782/posts/default/8684890596316806054'/><link rel='alternate' type='text/html' href='http://ninjasoftwaredevelopment.blogspot.com/2019/02/its-like-working-for-jello.html' title='It&#39;s like working for Jello'/><author><name>Dixie Software Ninja</name><uri>http://www.blogger.com/profile/03037941824583012175</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-21179782.post-5573835140365475181</id><published>2019-01-24T17:18:00.000-05:00</published><updated>2019-01-24T17:18:03.514-05:00</updated><title type='text'>Basic Technical Competence</title><content type='html'>Most companies have a mix of skillsets needed in the employees, and so you end up with the technical folks doing technical work, and folks managing them, who are typically less technical.&amp;nbsp; But there is a basic technical competence level that needs to be maintained, or the managers end up wasting everyone&#39;s time with bad ideas.&lt;br /&gt;
&lt;br /&gt;
Case in point:&lt;br /&gt;
Our application generates a ton of data.&amp;nbsp; So much that the clients need to be in the same datacenter to get it at the rate we produce it.&amp;nbsp; The remote datacenters do not have enough incoming bandwidth to receive the data in a timely fashion.&amp;nbsp; One day we were discussing this problem, which limits the locations of our clients, and one of our project managers suggested &quot;Why don&#39;t we just use the cloud to get it to the other datacenters fast?&quot;&lt;br /&gt;
&lt;br /&gt;
I mean, ya gotta have the basics in your head to play the game right, y&#39;know?&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;&lt;div class=&quot;blogger-post-footer&quot;&gt;&lt;a href=&quot;&lt;? bloginfo(&#39;rss2_url&#39;) ?&gt;&quot; title=&quot;Subscribe to my feed&quot;&gt;&lt;img src=&quot;http://www.toprankblog.com/tools/graphics/feed-icon.gif&quot; style=&quot;border:0&quot;/&gt;&lt;/a&gt;&lt;/div&gt;</content><link rel='replies' type='application/atom+xml' href='http://ninjasoftwaredevelopment.blogspot.com/feeds/5573835140365475181/comments/default' title='Post Comments'/><link rel='replies' type='text/html' href='http://www.blogger.com/comment/fullpage/post/21179782/5573835140365475181' title='0 Comments'/><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/21179782/posts/default/5573835140365475181'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/21179782/posts/default/5573835140365475181'/><link rel='alternate' type='text/html' href='http://ninjasoftwaredevelopment.blogspot.com/2019/01/basic-technical-competence.html' title='Basic Technical Competence'/><author><name>Dixie Software Ninja</name><uri>http://www.blogger.com/profile/03037941824583012175</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-21179782.post-3854149555576455153</id><published>2019-01-11T17:39:00.002-05:00</published><updated>2019-01-11T17:39:42.000-05:00</updated><title type='text'>Doing the absolute minimum is A BAD FUCKING IDEA</title><content type='html'>This blog has become my vent for all the crap from The Job.&lt;br /&gt;
&lt;br /&gt;
Ok, so we have a system that sends data into a central routing system, built by another group.&amp;nbsp; In order to be able to prove that any delays in the system are not due to our system being behind, we have a subscriber program that reads the data and checks transit time.&amp;nbsp; Because that project may get moved to other servers, we wrote a minimal subscriber to output just that info.&lt;br /&gt;
&lt;br /&gt;
Cow-orker is tasked with writing the script to analyze that program&#39;s log files to track the time.&lt;br /&gt;
&lt;br /&gt;
He write a program that expects every message output to be the one with the data he needs.&amp;nbsp; Absolutely no filtering by content at all.&amp;nbsp; So if we alter that message, or add other messages, that script will fail.&amp;nbsp;&lt;br /&gt;
&lt;br /&gt;
&lt;headdesk&gt;&lt;/headdesk&gt;&lt;br /&gt;
&lt;br /&gt;
All it would have taken is to filter for the 2 words before the data value to guarantee that only relevant messages would pass into the script.&amp;nbsp; But No!&lt;br /&gt;
&lt;br /&gt;
sheesh.&lt;br /&gt;
&lt;br /&gt;
I really wonder about people sometimes.&lt;br /&gt;
&lt;br /&gt;&lt;div class=&quot;blogger-post-footer&quot;&gt;&lt;a href=&quot;&lt;? bloginfo(&#39;rss2_url&#39;) ?&gt;&quot; title=&quot;Subscribe to my feed&quot;&gt;&lt;img src=&quot;http://www.toprankblog.com/tools/graphics/feed-icon.gif&quot; style=&quot;border:0&quot;/&gt;&lt;/a&gt;&lt;/div&gt;</content><link rel='replies' type='application/atom+xml' href='http://ninjasoftwaredevelopment.blogspot.com/feeds/3854149555576455153/comments/default' title='Post Comments'/><link rel='replies' type='text/html' href='http://www.blogger.com/comment/fullpage/post/21179782/3854149555576455153' title='0 Comments'/><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/21179782/posts/default/3854149555576455153'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/21179782/posts/default/3854149555576455153'/><link rel='alternate' type='text/html' href='http://ninjasoftwaredevelopment.blogspot.com/2019/01/doing-absolute-minimum-is-bad-fucking.html' title='Doing the absolute minimum is A BAD FUCKING IDEA'/><author><name>Dixie Software Ninja</name><uri>http://www.blogger.com/profile/03037941824583012175</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-21179782.post-1341983845032100696</id><published>2019-01-03T17:39:00.001-05:00</published><updated>2019-01-03T17:39:22.746-05:00</updated><title type='text'>Really Stupid Training</title><content type='html'>Ok, TPTB at work decided to drop new training right away, so I was filling in some time (that I was not interested in doing real work during) with taking it.&lt;br /&gt;
&lt;br /&gt;
It&#39;s the repeat of the workplace safety dreck, and diversity training.&lt;br /&gt;
&lt;br /&gt;
So I got to watch a crappy slideshow of how to lift things, walk up stairs safely, and how to arrange by desk.&lt;br /&gt;
&lt;br /&gt;
Then the diversity training.....&lt;br /&gt;
&lt;br /&gt;
I&#39;m all for diversity, and it&#39;s good that The Job at least follows the law in its efforts to hire/retain staff.&amp;nbsp; But it serves nobody to have 45 minutes of videos where a person with a specific disability natters on about how it does and does not affect them on the job, and what others should do to when they do/do no need help.&amp;nbsp; It really doesn&#39;t.&amp;nbsp; Particularly when it is someone with a visible condition, where only the most idiotic of people still publicly offends with comments or actions.&lt;br /&gt;
&lt;br /&gt;&lt;div class=&quot;blogger-post-footer&quot;&gt;&lt;a href=&quot;&lt;? bloginfo(&#39;rss2_url&#39;) ?&gt;&quot; title=&quot;Subscribe to my feed&quot;&gt;&lt;img src=&quot;http://www.toprankblog.com/tools/graphics/feed-icon.gif&quot; style=&quot;border:0&quot;/&gt;&lt;/a&gt;&lt;/div&gt;</content><link rel='replies' type='application/atom+xml' href='http://ninjasoftwaredevelopment.blogspot.com/feeds/1341983845032100696/comments/default' title='Post Comments'/><link rel='replies' type='text/html' href='http://www.blogger.com/comment/fullpage/post/21179782/1341983845032100696' title='0 Comments'/><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/21179782/posts/default/1341983845032100696'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/21179782/posts/default/1341983845032100696'/><link rel='alternate' type='text/html' href='http://ninjasoftwaredevelopment.blogspot.com/2019/01/really-stupid-training.html' title='Really Stupid Training'/><author><name>Dixie Software Ninja</name><uri>http://www.blogger.com/profile/03037941824583012175</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-21179782.post-6735701897172041829</id><published>2019-01-02T19:16:00.000-05:00</published><updated>2019-01-02T19:16:14.704-05:00</updated><title type='text'>Still not getting through to that guy</title><content type='html'>This morning, returning to the salt mines, I noticed that one of our monitoring tools was showing an error condition that I knew was not strictly correct.&amp;nbsp; When cow-orker arrives, we discuss, and determine that it&#39;s an artifact of the significantly different rates of monitoring and reporting of that metric.&lt;br /&gt;
&lt;br /&gt;
So cow-orker and I decide it would be good to make it configurable, so that we can have it only report if it&#39;s consistently bad.&lt;br /&gt;
&lt;br /&gt;
Cow-orker makes code change, tests in isolation, deploys to the one machine where the problem was manifesting.&lt;br /&gt;
&lt;br /&gt;
Cut to an hour later, when second cow-orker reports that he is suddenly seeing malformed messages arriving at his client.&amp;nbsp; We look, and the time coincides with cow-orker One deploying his changes.&amp;nbsp; But he&#39;s off at an early lunch, so we put it aside.&lt;br /&gt;
&lt;br /&gt;
After lunch, I pass One in the hall and mention it.&amp;nbsp; He says that Two had mentioned it to him, but that they were seeing the errors from another machine, which had not been altered, so it could not possibly be his code.&lt;br /&gt;
&lt;br /&gt;
So when I return to the pod, I ask Two, and he shows me the single, solitary error from another machine, and the ongoing several in a minute stream from the suspect machine.&amp;nbsp; I show this to One, and he then looks and realizes he did not pull the repo before making his changes, so his binary reverted a week&#39;s worth of fixes.&amp;nbsp; Off he goes to pull, re-implement, and redeploy.&lt;br /&gt;
&lt;br /&gt;
Sheesh, you&#39;d think that this 4th time he&#39;d start to learn that at least he should at least just so &quot;Ok, I&#39;ll check it out&quot; before trying to dodge blame.&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;&lt;div class=&quot;blogger-post-footer&quot;&gt;&lt;a href=&quot;&lt;? bloginfo(&#39;rss2_url&#39;) ?&gt;&quot; title=&quot;Subscribe to my feed&quot;&gt;&lt;img src=&quot;http://www.toprankblog.com/tools/graphics/feed-icon.gif&quot; style=&quot;border:0&quot;/&gt;&lt;/a&gt;&lt;/div&gt;</content><link rel='replies' type='application/atom+xml' href='http://ninjasoftwaredevelopment.blogspot.com/feeds/6735701897172041829/comments/default' title='Post Comments'/><link rel='replies' type='text/html' href='http://www.blogger.com/comment/fullpage/post/21179782/6735701897172041829' title='0 Comments'/><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/21179782/posts/default/6735701897172041829'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/21179782/posts/default/6735701897172041829'/><link rel='alternate' type='text/html' href='http://ninjasoftwaredevelopment.blogspot.com/2019/01/still-not-getting-through-to-that-guy.html' title='Still not getting through to that guy'/><author><name>Dixie Software Ninja</name><uri>http://www.blogger.com/profile/03037941824583012175</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-21179782.post-5977610136688841750</id><published>2018-12-07T23:39:00.002-05:00</published><updated>2018-12-07T23:39:49.369-05:00</updated><title type='text'>Get yer goddamn ducks in a row first</title><content type='html'>Ok, so today I had a remote cow-orker piss me off greatly.&lt;br /&gt;
&lt;br /&gt;
I&#39;m fresh out of another meaningless &quot;town hall&quot; meeting with upper brass - the usual type, full of platitudes and Orwellian euphemisms for corporate anti-social goals, and I get a message form this cow-orker - &quot;Did you stop sending messages from X&quot; (X being the system I am lead on)&lt;br /&gt;
I check my output logs - output volume is down, but nowhere near 0.&lt;br /&gt;
&quot;No, we&#39;re still sending&quot;&lt;br /&gt;
&quot;Well as of N minutes ago, I stopped seeing any data.&amp;nbsp; You can look at my logs and see&quot;&lt;br /&gt;
&quot;I believe that you are not receiving data.&amp;nbsp; But we are transmitting&quot;&lt;br /&gt;
&quot;Can you check again?&quot;&lt;br /&gt;&quot;I have, and we see no errors on send, and our receiver is getting data in a timely manner&quot;&lt;br /&gt;
&quot;Well there must be something wrong with your system&quot;&lt;br /&gt;
I send the receiver log snippet showing we have received messages across this interval.&lt;br /&gt;
&lt;br /&gt;
Radio silence for a while.&amp;nbsp; Then &quot;I think I know what happened - another receiver grabbed the same ID&quot;&lt;br /&gt;
In other words, your receiver was borked, and you failed to believe me when I showed you that it was not our transmitter.&lt;br /&gt;
&lt;br /&gt;
Don&#39;t do that.&amp;nbsp; Even if you are certain it&#39;s their fault, do not cast balme until you have proof.&lt;br /&gt;
&lt;br /&gt;&lt;div class=&quot;blogger-post-footer&quot;&gt;&lt;a href=&quot;&lt;? bloginfo(&#39;rss2_url&#39;) ?&gt;&quot; title=&quot;Subscribe to my feed&quot;&gt;&lt;img src=&quot;http://www.toprankblog.com/tools/graphics/feed-icon.gif&quot; style=&quot;border:0&quot;/&gt;&lt;/a&gt;&lt;/div&gt;</content><link rel='replies' type='application/atom+xml' href='http://ninjasoftwaredevelopment.blogspot.com/feeds/5977610136688841750/comments/default' title='Post Comments'/><link rel='replies' type='text/html' href='http://www.blogger.com/comment/fullpage/post/21179782/5977610136688841750' title='0 Comments'/><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/21179782/posts/default/5977610136688841750'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/21179782/posts/default/5977610136688841750'/><link rel='alternate' type='text/html' href='http://ninjasoftwaredevelopment.blogspot.com/2018/12/get-yer-goddamn-ducks-in-row-first.html' title='Get yer goddamn ducks in a row first'/><author><name>Dixie Software Ninja</name><uri>http://www.blogger.com/profile/03037941824583012175</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-21179782.post-6254594360127318593</id><published>2018-12-01T09:54:00.001-05:00</published><updated>2018-12-01T09:54:34.861-05:00</updated><title type='text'>Another Reason to Hate Open Offices</title><content type='html'>I realized something the other day.&lt;br /&gt;
&lt;br /&gt;
I&#39;ve been at a new job for a couple of years, and I&#39;ve noticed that I&#39;ve been much less interested in doing activities after work.&amp;nbsp; I get home, and all I want to do is veg out.&amp;nbsp; While some of this I attribute to the realization that I&#39;ve got over 10 years left until I can retire, there is more to it.&lt;br /&gt;
&lt;br /&gt;
And then I realized that I&#39;ve been working for over 2 years in an open office environment, as opposed to my previous workplace, where I had a tall cubicle (tall enough for an actual door).&amp;nbsp; I spend all day in the middle of an open room, with several large TVs(mercifully muted), 40-some-odd cow-orkers, and all the attendant noise.&amp;nbsp; I literally have no privacy except when I go to the toilet, or take&amp;nbsp; phone call in one of the little booths we have for that purpose.&lt;br /&gt;
&lt;br /&gt;
I&#39;m an introvert (shock, that a programmer is an introvert!), so all that exposure is exhausting me, so much so that I just want to cocoon myself when I get home.&lt;br /&gt;
&lt;br /&gt;&lt;div class=&quot;blogger-post-footer&quot;&gt;&lt;a href=&quot;&lt;? bloginfo(&#39;rss2_url&#39;) ?&gt;&quot; title=&quot;Subscribe to my feed&quot;&gt;&lt;img src=&quot;http://www.toprankblog.com/tools/graphics/feed-icon.gif&quot; style=&quot;border:0&quot;/&gt;&lt;/a&gt;&lt;/div&gt;</content><link rel='replies' type='application/atom+xml' href='http://ninjasoftwaredevelopment.blogspot.com/feeds/6254594360127318593/comments/default' title='Post Comments'/><link rel='replies' type='text/html' href='http://www.blogger.com/comment/fullpage/post/21179782/6254594360127318593' title='0 Comments'/><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/21179782/posts/default/6254594360127318593'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/21179782/posts/default/6254594360127318593'/><link rel='alternate' type='text/html' href='http://ninjasoftwaredevelopment.blogspot.com/2018/12/another-reason-to-hate-open-offices.html' title='Another Reason to Hate Open Offices'/><author><name>Dixie Software Ninja</name><uri>http://www.blogger.com/profile/03037941824583012175</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>