The BIG Feature

There are occasionally some odd situations that transpire during the Agile planning process, and one question that frequently arises is how to stay releasable when certain features cannot be broken down into releasable code prior to the ship date. Ideally, the basic Agile tenets are observed before starting to classify something as out of the ordinary: nightly builds of fully installable and executable software, small increments of working software delivered (2 weeks), continuous testing, and etc. Even if a team is following all of these, there can still be some situations where the team cannot complete a feature to a point where it can be delivered to a customer. This could be a situation where the small increments of the feature, while working independently, do not add up to enough value to complete a useful workflow, or the team may have incorporated some 3rd party tool or product, which instantly overwhelms the team with integration test cases. In these rare cases, teams are left with the question of how do we keep the software releasable but continue working on features which may not make it to the customer’s release. The following list provides some ideas to combat this problem:

  • Hide the functionality. This option could include several things such as hiding a tab (via configuration or unreferenced URL) with the incomplete functionality, but allowing access to the product owner, developers, and QA, so that testing can occur in the main branch of the software. It could also involve licensing, where a license key prohibits the customer from accessing the uncompleted parts of the product.
  • Wait on delivering the 3rd party product. Even though the team may have spent vast amounts of time implementing new APIs and testing the new product during the release, the incorporation of the new 3rd party product should be constructed such that it does not prevent the rest of the product from shipping.
  • Limit the selling points. While it’s never a good idea to have visible parts of the product which are not fully usable by the customer, the important point is to make sure the rest of the product continues to function properly. If other useful parts of the code can be delivered to the customer, the customer may want to take advantage of the other fully working functionality, and this is what should be promoted.
  • Document unfinished workflows. As with the option above, release notes and known issues can documented where the product is lacking. With both of these last two suggestions, the limited functionality should not create additional problems nor allow the user to sabotage himself.

Identity Theft – Wow! It’s not a joke.

A friend was recently revealing his encounters with someone writing forged checks all over town with his bank account and driver’s license numbers. While identity theft seems like one of those media generated fear campaigns, it is a real occurrence, and until I had heard this real life incident, I hadn’t realized how easy it was for someone to get your information and how much of a pain it is to fix the problems. Granted, your bank or credit card company already has a plan to get your money back, but the real issue becomes spending days and days fixing your credit, filing police reports, and dealing with all the merchants who have turned your information into collections agencies. Based on the information gathered from my friend’s frustrating misfortunes, here are some simple changes I’ve already made or will be making in the near future.

  • Never write checks for anything. It’s hard to say ‘never’ on this one, but online checking will definitely be the preferred method for me as it already is for most reoccurring bills. The hard part will be paying cash or credit card for the variety of home services work such as home improvements or housecleaning, but as mentioned earlier, this inconvenience is relatively minor.
  • Never put anything with theft potential in an unlocked mailbox. This one is easy to say ‘never’ due to the number of convenient secure mailboxes located around any city. Fortunately, I have centralized security mailboxes in my neighborhood, but the friend mentioned above believes his home-based mailbox is how his checking account information was acquired. The police mentioned it is very common for thieves to check the unsecured, individual mailboxes outside of many homes.
  • Keep your driver’s license hidden as much as possible. Apparently, the state doesn’t consider driver’s license numbers as protected, and most likely, you won’t be able to get a new one if your identity is abused. Therefore, it’s up to each individual to secure their license, even though it can be acquired via the Internet with a little bit of work. This latter fact is why it’s so important to protect the other account numbers, because the combination of license and account is all that’s needed.
  • Lock information inside your home. This can range from buying a small safe or just keeping account numbers in a locked file cabinet. Leaving bank and credit card statements out is just asking for trouble from the various services groups (air conditioning, painting, housecleaning, etc.) that may be inside a house over the course of time.
  • Shred everything before trashing. Apparently, another sneaky way to acquire information is by digging through the trash, and since a small shredder is so cheap, there’s no reason to throw out any documents without being shredded.

Austin Jury Duty 101

As strange as it may seem, I was recently picked for the jury selection process and a subsequent jury for the first time in my short life. While many people feel like this is a major headache in their lives, I quite enjoyed watching the process and seeing how the legal system really works. Parking is a major pain, and unless you are familiar with this part of downtown, driving around in this area can be incredibly frustrating. On the other hand, getting people to serve must not be as big of an issue as it seems because the parking hassles contribute a significant amount to people’s general dispassion for jury duty. In any case, here are a couple of tips for those being selected to serve in Austin (for district court on 11th Street):

  • Parking. For the selection process, each person is on their own to either pay for covered parking or run down to a meter every 2 hours to feed coins; however, once you are selected for a jury, you can park for free in the metered locations within a 2-3 block radius of the courthouse. Granted, this still assumes you can find an open space. The jury instructions recommended using the city’s bus system to help with this, but unless you are familiar with the public transit system, it can be more time consuming. If you want to avoid all the trouble and don’t mind paying, I recommend the Bank Tower parking at W 16th and Guadalupe. The 11th Street courthouse is just a few blocks walk down the street.
  • Dress code. For jury selection, shorts and just about anything is allowed. Once selected for a jury though, no shorts or short skirts are allowed.
  • Entertainment. Be ready to experience some very boring delays in the selection process and during the trial. I highly recommend taking a book or magazine to help fill some of the time.
  • Trying to get deselected. I heard many people try to avoid serving on a jury for business reasons, and the judge denied 90% of those who tried, even self-employed persons. Having children over 10 years of age will mostly likely not get a person out of serving either. During the selection phase, it was obvious who was trying to get dismissed by answering the questions in manner to suggest an inability to be impartial; however, this is not recommended unless the reasons are factual.

In the end, the trial for which I served dealt with an attempted murder case, and we handed down a ‘not guilty’ verdict due to a complete lack of evidence by the state. Here’s a picture of the jury room where we, the jurors, met and deliberated the case.

Jury Duty

The Accountability Myth

Early in my career, I spent a lot of time collecting all the emails I had sent or received. I would have backups of 1000’s of emails lying around on servers, encrypted with compression passwords. Occasionally, I would perform a massive search on these GB’s of data to uncover a few emails discussing a topic, which had recently resurfaced. In many of these cases, the true purpose of finding one of these emails was to prove my rightness in a disagreement or occasionally show my innocence in some controversial situation (i.e. CYA – Cover Your Behind).

Nowadays, this all seems silly, and here’s why. First, if you are thinking you need to CYA something, there’s a good chance the decision should be reconsidered or handled in a different way. In other words, if your gut is not feeling good about the course of action being taken, those actions need to be changed. This sounds easy to say but often much harder to implement due to politics or other confounding aspects of the situation. Unfortunately, the career ladder is littered with those who just followed, but most of those at the top took the initiative to do something others weren’t willing to do.

Second, pulling out the old piece of ‘evidence’ to slam your work nemesis rarely gains anything but a short pride swell and a couple of enemies. For instance, pulling out the email that says ‘I said this was a bad idea’ is not much more than documentation of your self-incrimination. If it was such a bad idea the time, a simple email documenting a stance isn’t a worthwhile method of exoneration. Other options would have included escalation to a higher authority or complete removal of oneself from the process. In this case, pulling out the old CYA email has just shown a desire to track all disagreements with your peers as well as an inability to take a stand. In the end, neither of these will create healthy business relationships nor help with career progression.

Digg, Reddit, etc.. What’s up with all these?

Armed with the advice of a fellow blogger, I was playing around at the Digg and lesser known Reddit sites and even submitted a couple of my post URLs just to experiment with it. After a while, I began to wonder why and how this is so popular. First, none (absolutely none at the time of this writing) of the blogs I read have a Digg link in their feed, even master blogger Cote, which makes it tough to vote (i.e. “digg”) a particular story without a plugin installed on one’s browser. I’ve concluded that I must be missing something about how this works, because it seems like very few people would be motivated to flip over the Digg site, copy in an interesting URL and watch it grow in popularity. I realize Digg is a competitor to del.icio.us and Reddit, but is it necessary to include easy links to all these? So, what am I missing?

Strangely enough, while writing this post, Brandon asked me to “digg” a URL he submitted. The story received a few Diggs and then slowed down. So, I added the Digg RSS feed to Bloglines and started to read the stories. In general, they appear to be random stories which the Digg world has voted as popular, but it seems like this will be a hard feed to monitor, mostly because the stories are so random. In fact, the voting system seems self-feeding as popular URLs will only get more popular because they are making it to the top of this list and therefore getting more face time.

After clicking on one stories from the Digg feed, I finally found a cool feature worth considering, the comments on a particular URL. This essentially turns any URL on the Internet into a blog-like entry where anyone can comment on it independently of the home site for the URL. It was interesting to see the comments, but like a lot of other blog comments with such a large audience, quite a few were belligerent or spam. I’ll continue to monitor my new RSS feed and start “digging” a few URLs. Hopefully, I’ll catch the fever of this social content site and find some use for it.

The Bar of Gold Theory

For all those loyal readers of my old blog, I decided to bring back the Bar of Gold Theory, but this time with a slightly more positive twist aimed at improving the situation. Simply put, the infamous Bar of Gold Theory:

If a person starts handing free bars of gold to anyone who asks, someone will complain.

Again with the disclaimers/assumptions:

  • There is plenty of gold.
  • The value of gold does not decrease relative to its existing monetary value. No violence ensues due to a mad rush on the gold stand.
  • Each person only gets one bar of gold.
  • Forget any other silly notions; it’s a metaphorical situation equal to many other proverbs, so ‘bar of gold’ can be easily replaced with just about any perk.

Granted it’s a subtle twist on the old saying ‘you can’t please everyone’, but in this case those who are complaining have gained something they did not have before. So, the question as a leader or peer is how to deal with this circumstance. Here are some proposals in dealing with those smitten with this dilemma:

  1. Ask if the situation is better than it was before the reward. (Sometimes a simple reminder of one’s benefits can resuscitate the optimism within a person.)
  2. Ask for a detailed scenario in which the situation would be better. (Mentally working out problems can help some see what’s there.)
  3. Ask for an outline of changes potentially implemented by trading roles, often referred to as the ‘What would you do differently if you were in my shoes?’ question. (Similar in nature to #2, this allows venting to occur which can calm down a heated situation.)
  4. Last but most importantly not least, ask for the reward back, and be courageous enough to take it back, if it would help. (This is the defibrillator method meant to shock someone into realizing their gain by showing what an equal loss would be like. In extreme situations, the overall outcome may be better by removing the reward as it has no longer retained its benefactive effect.)

Down with the “Don’t fix it if it ain’t broke” adage.

The next time you hear someone warn ‘if it ain’t broke, don’t fix it’, perk your ears and pay attention because dire straights may soon follow. The rate of change is increasing and what’s working today will be broken tomorrow because someone else will be doing it better, faster, cheaper, and with less effort. As the title of this blog declares “Continual Improvement”, this is the mindset necessary to compete, and frankly survive, in all areas of life today. (I was going to mention rapid globalization and technological advancement, but the double cliche was more than I could stomach.) Here are some examples:

  • Don’t see any issues with your smooth flowing work process? Wake up! One of your competitors is or soon will be using the same process with 1-2 tweaks to increase productivity two fold.
  • Think you know everything there is about programming language X? There’s 10,000 people connected to the Internet working to develop faster than you with an 8086 and for the same cost as an 8086.
  • Does the significant other seem quietly content with the weekly routine going on X years? Wait too long to throw some spice in the mix, and breakup city will be in your future moving plans.

The point is just thinking something isn’t broke means it probably is. These complacency thoughts should be the trigger in the mind that jolts us out of our slumber and starts probing for better ways.

White bread is back with a vengeance.

After eating whole wheat bread for well over 10 years, I may have finally switched to white bread. I was recently introduced to Whitewheat and have been very impressed with the taste and nutritional qualities. It is lower in calories and higher in fiber than the fancy whole wheat bread I was eating before the switch. In fact, it’s good enough to make grilled cheese sandwiches that taste normal. The good news is Whitewheat can be purchased at HEB and other regular grocery stores. If you like white bread but don’t like the sugar and lack of anything healthy, I highly recommend it.

Random links – career, blog, reddit