No matter what your process, and how good that process is, lack of accountability can limit its effectiveness, and the effectiveness of your organization as a whole.  Any model will fail to be accurate when it does not represent reality close enough.

Let’s say your company is using Scrum to manage software development work.  If you have people on your team that regularly do work that’s not on the scrum board, it hurts the effectiveness of the process because

  • The unplanned work being done isn’t being tracked, so resource planning and allocation will be off
  • Part of what makes Agile work is you’re doing the least work required to meet the objectives (when the unit tests pass, stop coding).  Software Engineers often face the “Wouldn’t it be cool if it also did X? This will just take a minute to implement” temptation.
  • The unplanned work being done may not even be desirable or valueable to the Product Owner.
  • The unplanned work may actually hinder further planned work by taking the application in a different direction or prematurely locking the application into a design implementation that may become invalid in later sprints.  This is in conflict with making decisions at the last responsible moment.
  • The unplanned work may become a burden to others.  Either QA finds out about it and has more testing work to do than planned, or they don’t find out about it and any bugs in it can escape into the wild.

Continue reading

Share

There are a lot of technology options out there.  There are even a lot of free/open source technologies out there.  So much so, that it’s tempting to install too much of it.  Having too much technology can be just as bad as having too little, and “free” can become pretty costly.  Obviously I’m not knocking free/open source, but the misapplication of it.

First and foremost, the more software/hardware you have, the more likely it is that some of it will have a bug.  That’s just law of averages coupled with the fact that no significant software project is really bug-free.

Then there’s the maintenance effort.  The more technology you have, the more effort needs to go into care and feeding of it.  Also the more you have to learn about.

Lastly, just how Agile teaches us to delay decision-making and development to as late as possible, because that’s the point where we know the most about what’s needed, the more technology you put in place before you need it, the harder you make it to implement what you really need when you do.

Continue reading

Share

I have been an early adopter for many electronic devices, especially mobile ones. I’ve had the dream of walking around with some sort of computing device, ideally connected to the Internet, much longer than it’s been practical.  I went through the HP100LX (which I could hook up to my Motorola Startac phone or my 300 baud modem), the Sharp Zaurus SL-5500 (which ran Linux), and the Psion 5MX.  Then some Palm PDAs, etc.  Unfortunately, the PDA market is pretty much dead.  I really wish I knew why, as it was years between when the PDA market vanished (at least here in the US) and when smartphones became capable of taking their place.

My first smartphone was a Windows Mobile 6.0 phone (bought months before Microsoft declared Windows Mobile 6.x an utter dead end), and eventually an iPhone.  But not the first iPhone.  Or even the second iPhone.  Why?  Because, as groundbreaking and powerful as they were, my research determined they were missing certain key features that I needed to do what I want, and being a relatively closed and restricted environment, those features were not going to be added on by someone else.  I did my research, and said “Not soup yet”.  How do you release a device you say surpasses anything else without cut/copy/paste??!?!?  I am very much NOT an Apple Fanboy, but why, being a Linux Fanboy, would I not go with an Android phone?  because (1) At least at the time, you couldn’t back up or sync any data with an Android phone without surrendering all your contacts, schedule, etc with Google, which is an unacceptable privacy violation to me, and (2) AT&T had modified the phones to be even more locked down than the iPhone!!!  But I wold not have known that if I just simply said “The Linux-based phone must be more open, so let me get that one”.

When the Kindle Fire was announced, I started thinking about getting that device, or something like it (7″ form factor Android device around $200 with a high quality display).  Days later the Barnes and Noble Nook Tablet was announce to be available for sale a week after the Kindle Fire, and I quickly narrowed down my choices to these two.  But the rumors and predicted specs on review sites differed enough I knew I had to wait until they were available and I could play with them.  I ended up developing a detailed, objective comparison between them, and the Nook Tablet won handily (for me. YMMV).  I got active in the Nook Tablet “hacking” community, and even started working on a wiki site on it. My research found that the boot loader was heavily locked down, and while there’s a lot of hacks to load other software and markets and customizations for it, it’s unlikely that a completely new ROM would be loaded on it any time soon.  I was OK with that, because while I wanted to do much more than originally intended with the device, I still wanted it to function as an ereader, too,

I noticed, long after the word had spread that you couldn’t [yet] replace the ROM as you could in its predecessor, that people were buying them and discovering this after the fact, and returning them.  These people had bought this device for $250 or more hoping to load the latest version of AndroidOS on it, use bluetooth keyboards, hook up external hard drives to it, and Skype their friends with it, without spending half an hour finding out whether any of this is possible (none of it is yet, though Ice Cream Sandwich is close)!

This leads to unhappy geeks.  Geeks and hackers, as a group, tend to expect the world to work they way they want it to, or at least be configurable to.  Only big corporations aren’t always on board with this.  In the case of the Nook Tablet, B&N had to lock the tablet down more than its predecessor in order for Netflix to allow streaming on it.  After the security vulnerabilities came out that allowed us to gain root access to the Nook Tablet and load software from wherever we wanted on it, B&N pushed an update to the software that closed those security holes, and that update got installed on Tablets with no warning, and certainly without consent.  There was an endless barrage of flame wars complaining that B&N should not have done that, and “how dare they”.  I would calmly point out each time that B&N was operating in their own best interests (protecting their relationship with Netflix and other companies), and it’s silly and unrealistic to expect B&N to act against their own best interest to enable a small group of people who will never buy books, movies, or apps from B&N to have their fun, any more that one would expect Apple to allow Adobe Flash on the iPhone or Ford to allow you to connect your computer to the diagnostic interface of their cars with a simple USB plug.

So here’s my message: When you’re planning on buying some sort of complicated and/or expensive item:

  1. Make sure you’ve identified exactly what you want to do with it (establish acceptance criteria).  This not only helps you with your research, and help determine when you’re done with it, but it can prevent you from falsely claiming you’ve found “the perfect solution” if you really haven’t.  It also helps convey to others what you’re looking for.  Be honest with yourself.
  2. Make sure you’ve made a reasonable effort to identify all possible items that could meet your needs.  “Premature optimization and/or filtering” can lead to excessive narrowing of the result set.
  3. Make sure you look at both the good and bad features of each item, identifying any deal-breakers.
  4. If you absolutely need a feature, and the device doesn’t have it yet, don’t assume that it will be added in the near future, or ever.  Even barring external influences like regulations and partnerships, their idea of the future of the device may be very different than your own.
  5. If you can afford to wait even a week later, you will benefit from the experience of the others who were not so thorough.  Learning from other peoples’ mistakes is much cheaper than learning from your own.  Learning from other peoples’ successes can save you hour of research.
  6. If you can’t find evidence either way whether the device can do what you want it to or not, don’t be afraid to ask.  And ideally, spread the new knowledge.
Share

I’ve been focusing on change a lot lately.  Thankfully, not because of my day job this time.  This time, it’s more to do with one of the not-for-profit groups I’m involved with.  A couple of other things have planted this bug in my ear, though.  Someone I know told me about the book Switch: How to Change Things When Change Is Hard, which is a fantastic book (so far.  I just got my own copy and am reading it now).  The other thing that got me thinking was an episode of Anthony Bourdain: No Reservations I saw recently.  More on both of those later.  The message I want to throw out there is that you can often achieve much better progress making small changes you can make today instead of waiting until there’s buy-in, resources, and removal of obstacles to a much larger effort.  And those smaller changes are likely to have more direct beneficial effect, because contrary to what large corporations like to think, big changes often introduce larger problems.  I have always tried to do this in my personal life and at work, and try to get others to do the same.

Continue reading

Share

As a creative person (and as a geek), when building something (software or hardware), I often say to myself “For just a little more time and/or effort, I can add this cool feature.” There are many good reasons why this is a bad idea.  I would like to lead with the reason that has caused my blog to be stagnant for months, which is that doing more than you have to gets in the way of actually finishing.  An artist I almost knew once said “The hard part about painting, is not the painting, but knowing when to stop.

Since my last post, I’ve started about six posts that I never finished because I just wanted to add this one last point, or tweak that paragraph one more time.  The result was no visible work output, which is inexcusable for an Agilista.Continue reading

Share

I’ve been using Linux/UNIX for about 20 years.  I am also Assistant Director of the Boston Linux and UNIX Group, and have contributed to several open source products.  In general, I find open source software more flexible, more transparent (no security through obscurity), and more focused on what’s needed instead of what marketing says would be cool.  I like that open source software is usually developed modularly, with separate components each doing what they do well, each designed to be combined with other component, each with its inputs and outputs documented for fitting Tab A into Slot B.    Open source’s community support model (with a sufficiently large community) is often far superior to calling tech support.  All that said, I still believe very strongly in “the right tool for the job”.  Sometimes open source is not the answer.

Just like commercial software, it’s important to evaluate not only how well the software suits your need, but the “health” of the product and its creators.  Just because it’s still available doesn’t mean it’s still supported, updated, and in common use.  That may not be a deal-breaker for you, but it does need to be factored in to the decision.

Continue reading

Share