Monday, May 02, 2016

Kanban in the Wild

I went to a local upholsterer this weekend to pick up one chair he fixed and drop off another, and what did I see?  It might look familiar to those of us who practice Agile on a daily basis:

Apparently, the shop owner has used a system like this for decades.  It's a Kanban system, although he had never heard the term before. The "Waiting for" column is his backlog, things that are blocked for some reason (materials, payment, etc.).  "Ready to go" is his list of projects that he can work on next, and "Doing" represents his work in progress. Due to the size of  his shop, he can really only have 3 projects in progress at a time.

And true to his system, since I paid my deposit and he had the fabric in-stock, my sticky is in the "Ready to Go" column!

Sunday, November 15, 2015

Heat your home with a Server?

Read about this recently: Nerdalize is a company who installs server racks in your home which look somewhat like a radiator. Servers shed so much heat that they figured someone could take advantage of this heat rather than the hosting company paying a huge monthly air conditioning bill.

What do you think about this? I think the idea could have legs.

Wednesday, August 26, 2015

Best Lotus Notes Error Ever

Got this error today:
Apparently, this is common enough to have an entry on the IBM knowledgebase. In a nutshell, this error occurs when the user uses keyboard shortcuts. The answer?  "Currently the only known workaround is not to use shortcut keys ."
The entry was made in 2011. Wow, how is that acceptable.

Tuesday, July 01, 2014

Google Guice: Why does it not appear that the @Singleton Annotation is not being respected by the Injector?

This took me a little while to figure out, apparently the Singletons you're injecting are per instance of the Injector. So if you are doing what I was, (creating an Injector in each class I was trying to inject a singleton into), that is incorrect.

Thank you, StackOverflow!

Specify a Block of Code to NOT Run in the NetBeans Form Designer

Sometimes, you will have code in the constructor of a Swing form that you do not want to execute when opening the form in the NetBeans form designer. I recently had this problem when working with Dependency Injection using Google Guice. Opening the form in the designer resulted in an exception with a call stack about 80 levels deep.

To avoid this problem, do the following:

Add the following import to your form:

import java.beans.Beans;

Surround any code you do not want to execute when opening the form in the NetBeans form designer in the following block:

        // Don't execute the following code in the designer
        if (!Beans.isDesignTime()) {
            // unexecuted code goes here


Tuesday, June 24, 2014

Activate Office 2013 with a Product Key from the Command Line

I was having some difficulty activating my copy of Office 2013 from behind our firewall, and Googled my way to discovering how to install the product key from a command prompt.

For the 32-bit version of Office 2013, cd to c:\Program Files (x86)\Microsoft Office\Office15 and run the following:

cscript OSPP.VBS /inpkey:<your product key>

You'll see some text indicating whether or not the product key installation was successful.  The next time you run one of the Office applications, the Activate dialog will appear.

Thanks to the following TechNet article for Office 2010 which pointed me in the right direction.

Friday, February 28, 2014

Modular Smartphone in the works from Google

I just read this article about Project Ara, Google's project tasked with creating a phone platform that is customizable with different plug in modules. For example, what if you never took pictures with your phone (hard to believe, I know)? You could use that space to plug in an extra battery, or an external speaker, a card reader, a better antenna, or anything else that module manufacturers can dream up. Imagine the possibilities!

I don't believe the carriers will embrace this vision of the future - this could open up the way for you to upgrade your processor, or easily replace broken screens or input jacks. If you could easily do this yourself, why would you pay for phone insurance, or upgrade to a new phone every two years - you could conceivably add new features to your phone whenever you wanted to.

Apparently, the base kit (without screens or any other modules) is scheduled to go on sale next year for $50. At that price, it's definitely worth a look.

More information on Project Ara:

Friday, July 05, 2013

Enterprise Learning: notes from IBM Innovate 2013

IBM described how their enterprise training strategy for their Global Business Solutions division has evolved to support their new DevOps culture.

IBM realized that their training model resulted in many of their employees having what they referred to as “shelf skills”: meaning skills that are not used (think shelfware).  They referred to this as ‘waterfall learning’: gaining knowledge without knowing why or how you are expected to use this information. At the same time, their development organization was making the push towards becoming a more agile, DevOps-focused institution.  They realized that formal training and continuous delivery would have a hard time co-existing, since the deployed software had the potential of changing faster than it would take to develop a traditional training course. 

This encouraged IBM to change the way they train their employees on technical items that are important to the organization over the past few years, switching their focus from a formal, managed method to more of an informal, supported method.

They have done this by transitioning their classroom learning model to a “community of practice” (COP) model. The COP model at IBM is formal, with employees encouraged in their annual objectives to actively participate in COPs.

They quickly found that implementing this model was somewhat harder than they initially thought. A traditional weakness of a COP is how to onboard new members to the community; you would want the level of technical topics in the community to be of a certain complexity to encourage domain experts to participate fully.  In order to ensure that employees joining a COP had a certain base level of understanding of the topic, IBM created what they called “Learning Circles”.  The premise behind a learning circle is: if an individual wants to learn about a topic, they should have access to a trusted list of resources that have been vetted by a known expert. Domain experts were encouraged to contribute material to the Learning Circle to become better known in the community and build their ‘trust network’.  Learning Circles have the goal of getting their members a baseline level of knowledge so they would feel comfortable participating in discussions in the affiliated COP.  

A participant in a Learning Circle has the goal of demonstrating competency in the field of study.  When they feel they are ready to participate in the full COP, they have the option of ‘self-graduating’ from the Learning Circle. At this point, IBM management starts to keep track of the use of this skill – the employee has six months to use these new skills in their job or engagement.  This encourages employees to keep their skills current to their jobs, or help gain skill that can move their career along a new path. This approach appears to align individual training with the needs of the organization, IBM measured that 82% of LC graduates reported that they used their new skills within 6 months of graduation.  Additionally, there was an 80% overlap between the list of skills being learned by employees to a survey of skills that customers said they wanted.

When measuring the effectiveness of the LC/COP model, IBM realized that the communities with higher rates of participation had much better content than smaller communities. In order to boost participation in communities across the board, IBM opened up the communities so members from outside of IBM could join a COP: first business partners, then to the general public.  These will soon be available on the IBM developerworks site.  The concept is the creation of a ‘system of engagement’ with customers using their tools.  IBM hopes to strengthen relationships with their clients by giving away this basic ‘how to use our tools’ content.  They are looking to use this as a new engagement model; it gives many of the advantages of a face-to-face meeting, but is much more scalable.

Enterprise Learning Key Take-Aways:
A key for the IBM training model was that as they transitioned from a traditional learning environment to a self-guided model is that they continued to give their employees time to learn new skills and tools, trusting them to learn the skills that would help the organization.