Categories
Agile

Agile: Backlog

The product backlog. Not a ton to say on this right now, but here are some thoughts.

  • The current sprint is not backlog
    Seem’s obvious. But the backlog is the backlog. The current is sprint is what you are focused on and working on.
  • The next sprint is backlog
    yes, the next sprint, on your board, is still backlog. It is somewhat solidified, but it is in flux until when you start the next sprint as your current sprint.
  • Your backlog should be semi-full
    having nothing in your backlog means.. well, you have no backlog, and that isn’t good. You should have enough stories for 1-2 sprints. Having no backlog is like living paycheck to paycheck.
  • You should prune old stories
    Older stories that have been just living in your backlog, should get pruned. Either they are higher priority and should get done, or they aren’t worth doing. They might resurface later as something but they shouldn’t be carried along for months/years if they aren’t important enough to do.
  • Priority matters
    The product owner should make sure they have the backlog prioritized. An backlog that isn’t prioritized is just a stack of cards.
  • Split Backlog into buckets
    I like to split backlog into buckets. Technical vs Product, maybe Features vs Bugs, some way to differentiate things.
  • Try to get as much as you can scored
    You might want to try to score as many stories in the backlog as you can so you are always ready. Of course there is a balance. You want a full backlog, you don’t want 5000 items, and you don’t want to take 3 days scoring things. Score enough so that if you do get ahead you can take stories from the backlog to work on. Try to avoid scoring outside of sprint planning sessions.

The backlog is one of the most important parts of your Agile process. Without a backlog you don’t have anything to focus on as you move forward through iterations. Try to think of it as a well, a well you don’t want to dry up, but you don’t want to overflow either.

My preference is to have a product backlog and technical backlog. That ensures that technical debt isn’t ignored, but separates concerns as far as features that you might want to implement.


Categories
Life Work

Challenges: Stepping Up vs Running Away

Challenges. Every day, everyone faces some kind of challenge. From the most lazy point of view, “Can I get out of bed today”, to “Making it to work on time”, to also “Making sure my children are taking care of”, and “Making sure we have enough money”, and then with work, “Making sure we get this project done on time” to “Making sure we are under budget”, to things you might do in life, “Try to run 5 miles today” and “Do the half marathon” and also things like “Don’t eat the whole carton of ice cream” and “Stop smoking” and the list goes on and on. You get it, there are an infinite number of challenges in life, no matter what you do or who you are.

It is what you do when faced with them that defines you.

What can you do? Well, you can walk (or run) away from challenges. It is the easy thing to do really. Just give up, walk away, go on to something easier, don’t get out of bed, don’t finish that project, light up the cig.

Or, you can step up to the challenge. You can take the mountain of problems facing you (don’t worry – everyone else has their own mountain) and you look at it as opportunity. Start figuring out how to make things easier, change processes, get things done and keep a level head, always looking ahead to the progression of what you are doing and how it will make things easier for yourself going forward.

There aren’t many challenges that can’t be stepped up to, and worked on, and overcome. Ask any survivor, or anyone that was ever told “no, you can’t do that”, or “it can’t be done”.

In the face of hard work and adversity, the people that rise to the challenge to get things done and still handle themselves are the ones that move forward. The ones that run away, sure they will continue on a path, but they missed something. That big mountain of opportunity to take and do something with.

One of my favorite movies is “Prefontaine“. Pre was an awesome runner. In the movie, he wants to run the one mile so bad, it is all he can think about. Being the one mile champion, having the best time, etc etc.

Before season starts, the coach, Bill Bowerman (of Nike fame – played greatly by R. Lee Ermey) – says something like, “Pre, you are never going to be the best miler, but you could OWN the three mile, make it your race“.

Yes, that is the quote. “Make it your race”. Being a huge runner in my heyday, I love that quote. Take your opportunity that is staring you in the face, even though it may be tough, you might not like it or it doesn’t seem like something you want to do, and make it your race. Make it yours. OWN it. Be awesome at it. Show everyone that you can do it, and make a pile of problems into your golden opportunity.

Make it your race.


Categories
Agile

Agile: Stories

In Agile, there is the concept of “stories” or “User Stories”. What are stories? Well, maybe it is best to look at what they aren’t:

  • They aren’t projects
    Stories are smaller than projects, by a long shot. A group of related stories is called an “Epic” but even then an “Epic” isn’t a project. But again, it all depends on how you or your organization defines a “project”. An agile team can focus on one project throughout their entire lifetime. Another might work on multiple projects, it all depends on how things are set up. But stories aren’t projects. Projects are made up of stories.
  • They aren’t tasks
    Stories should be bigger than tasks. Each story should really take a few to many tasks to complete. You can get into the mindset of breaking up everything into tasks, but then you might be going to granular. You want your stories to be small enough to get completed within your sprint, but also big enough to not take 10 minutes to complete.
  • They aren’t direct requests
    What do I mean by direct requests? A direct request from and end user or customer doesn’t directly relate to a story, it usually ends up being multiple stories. In the case where the request is just one story, it probably should be reworked to fit the mold of a story.
  • They aren’t features
    They might be feature requests, but like “direct” requests, usually a feature request ends up being multiple stories, or if the request is small enough to be one story, it needs to be reworked to become a story.
  • They aren’t bugs
    same as direct requests and features.
  • They aren’t day to day operational actions
    Some people might get into the mode of “well, we do this every day, so it should be a story”. No… it shouldn’t. It should be what you do day to day. Your velocity will get adjusted by your do’ers doing things day to day, but you shouldn’t storyize day to day things. Would you create a story for your commute? For reading email? For lunch? The only thing you might want to storyize is an architecture type meeting, where the deliverable is a bunch of stories. I like the idea but I’m not 100% sold on it yet.

Well, so there is a short list of things stories aren’t. So what are they?

As a user/group/xyz, I would like new feature/bug fixed/thing done, for this reason/business value.

I would say the most key part of that story format is the end. The business value. Without that you are spinning your wheels, you don’t know why you are doing something.

What about things that go along with a story?

You might write the # of a record in your virtual system to easily correlate. Depending on your process, you might hand write cards (I personally like this method). Or you might print them. What about other notes? As a developer or do’er you might write things on the back of the card for when you pass to QA or the validation of the story, or just to keep things in the open. If you use a virtual system, you might have extra notes or background info so the do’er can actually do it.

I like to have a small title, and then the story.

Example,

As a sales executive, I would like to be able to see my sales and goals by product and year so I can better analyze my commissions.

A title might be “Adding goals/sales to cube for sales”

I also like to have a “component” when working on a team with multiple mini projects that might be getting done. “Sales Cube” might be a good component for the story above.

What else do stories have? Priorities and Scores. More on that later..


Categories
Geeky/Programming Product Reviews

Thoughts on the iPhone 4

I picked up my iPhone 4 on Friday afternoon (July 16th). Wonderful device. Retina display is awesome. Video camera, front facing camera, flash: awesome.

People wonder about the dropped calls, etc. Whatever. First, I may be different. I haven’t even USED the phone yet. I don’t really use the iPhone as a phone. Personal Handheld Online News Entertainment ? Who knows.. I use it for everything but a phone. Maps, Reading, Feeds, Twitter, Facebook, News, Movies, Games, Work, Email, etc, etc, etc. It isn’t a phone. 🙂

Any ways, Steve Jobs already told us that we are getting bumpers, I might use it.

This device is the best out there, by far. Most gripes might be with AT&T, not Apple. Like others have said, build a better device, and then we will see. I don’t see it yet. I have tried other devices and they just aren’t as smooth.

I can’t wait for Emily to get hers so we can do the FaceTime thing, that will really be awesome.


Categories
Agile

Agile: The Story Board

The story board…

If you have used Agile for Project Management or Software Development, and used Scrum, you probably have heard of the “Story Board”.

Trek BI Agile Story Board

Funny thing though, I have talked to a few people that have came through and they saw the boards we have and it was “oohh I have never seen one in real life”.. but yet they have run or been involved with scrum before.

So what is the deal with the “board”?

  • The Board is a focal/gathering point
    Every day at your standup/scrums, you should bring the board in and use it as a tool. Also at the sprint planning. Think of it as another team member. Talk to it. Talk in front of it, analyze it, adjust it, show it off, explain things on it to people
  • The Board shows tangible evidence of results
    You should hang your velocity and burndown charts on the board, you should have a nice full current and next sprint that changes every day as people do things and new items get prioritized. Your backlog should be filling up. Communicate your iteration dates and maybe other key info, but most important, if someone walks up, they can see your burndown.
  • The Board is a talking point
    People around the office start asking “What is that thing?” People in other teams want to know what is up. Other people might come up and ask where things are at, or where their “story” might be. You can use the board to start discussions on agile and also about your project
  • The Board let’s your focus
    As a developer or “do’er” for your project, you can focus on just the current sprint. You can focus on the cards on the board. You see slightly what might be coming in next sprint, but you are focused. As a product owner or team lead, you can see progress and focus on the current 2 weeks.
  • The Board makes it tough for distributed teams
    If your team has some members off site part of whole of the time, then it is harder for them to actually “use” the board. They need a virtual board as well. They need virtual stories or some way to update progress.
  • The Board adds a little overhead for Scrum Masters
    With a online system or virtual system, the Scrum master can update things there, and so can the developers. With a board, and especially with a board + virtual system, the scrum master has to make sure things are in sync. What should they focus on? The board or the virtual system? Both. But since the board is visible to EVERYONE who might walk by, they need to make sure it is up to date and in working order.

My thoughts: The board *should* exist, you *should* use a board.

But, what if you run distributed teams? Then.. if majority of them are not on site, then use a virtual board. If it is a mix, use a physical and virtual board.

But what if we don’t have room for a board? Then make room.

But a board costs money. Not really. I made one out of things lying around the office. Minimal cost. You can expense story cards, etc.

But xyz.. well, I am sure there is an answer.

If anything, start with a board, and cards (another blog post on that) for at least one year, and then look at going virtual, *if it makes sense*. I still think the use of the physical board is a key part of the process, but like with anything Agile, the process always differs by team and project.

You can always roll the board somewhere to demo. You can show the board to anyone. Any worker, any executive, a group of many people, or small. You might not be able to do that with a virtual system: you might be limited by number of accounts or other system limitations.

The board might be a “relic” of agile, but I think it lends itself to running the process in a way many can understand, without having to learn any software, and also lets your team communicate progress and results easily. Use a board? Just do it.


Categories
Business Intelligence Geeky/Programming

Microsoft Silverlight PivotViewer: Getting Started and Business Case

I have been reading about Microsoft’s PivotViewer lately, and decided to try to get it going for myself. What is PivotViewer? Think of it as visual data slicing through a web page.

What you do is take some data, and then tie records to images, and then publish out your “collection” and you can consume it via a webpage using the Silverlight PivotViewer control. One awesome example of this is here http://netflixpivot.cloudapp.net/. But what I have been really trying to wrap my head around is how to use the as a “business” tool. Because, it is easily technically doable, but you have to have a *reason* to do it.

Working with widgets and customers and locations – what do you do? There are two things I could think of quickly. One – peruse your “master data” very fast and visually. The other is looking at some kind of metrics for your widgets, or logos of your customers you might sell too, or ? ..Well, you could..

  • Master Data/Catalog
  • Show pictures of your widgets, and create filters (they call them facets) for things like size, color, weight, model, etc. You have “one” of each and you just want to see what you offer. Almost could be a pretty sweet online catalog browser

  • Sales/Metrics
  • Do the same as a master data catalog but allow filtering by some kind of metric. Shipped items over a given time or something.

  • Something Else I Haven’t Thought Of?

Anyways, the first thing you should do before anything is get some kind of data feed. Run a query, get some data from somewhere. Start small to test. 500-1000 records.

Then the fun begins. Starting from absolute scratch..

Ok, yeah, tons of setup. Biggest thing is in IIS you need to set some MIME types: .cxml, .dzi and .dzc need to be “text/xml”

Once you have all that setup, you can do 2 things.. create your collection, and create your app. Create a blank silverlight project first:

Once you have that, there isn’t a ton you have to do to get things going with PivotViewer.

  1. MainPage.xaml
  2. Add in your MainPage.xaml, a namespace line for Pivot, and add the control

    Your end MainPage.xaml should look like this:

    
    
    
    
    
    
    
    
    
  3. Reference Assemblies
  4. For good measure, just reference them all, located here: C:Program FilesMicrosoft SDKsSilverlightv4.0PivotViewerJun10Bin

  5. Load Collection:
  6. pvWidgets.LoadCollection("http://localhost/SilverlightApplication1.Web/MyWidgets.cxml", null);
    

Note, you have to make your web part of your project IIS based instead of the build in web browser. Why? Because the .cxml HAS to be hosted on a web server, it just works that way.

Now, you need to create your collection.. you can use a cmd line tool they offer on the PivotViewer site, they also have a c# library for automating things, but it is best to first just do it manually. So I used the tool they have as an add on for excel. It adds a nice little “Pivot Collections” tab

You can use this to put some data in, you probably want to add more columns than what they give you by default. For my test I just used the same image for all records to get started. I have a feeling that the biggest barrier to entry to corporate BI teams and developers is going to be the imagery. You usually don’t have someone on your BI Team that knows how to use photoshop well and do all the high res imagery, so you are handcuffed there.

For testing sake, I Published my collection to the root of my website, with the name “MyWidgets”.

I loaded up my webpage, and I can slice and dice by all my columns I had in my collection, visually.. pretty dang awesome. (Note, I just made some fake data based on attributes I am used to seeing and with an image of a bike to see what it would look like – the goal was figuring out how would this work in conjunction with current BI offerings (cubes/Pivot Tables, SSRS, PowerPivot, etc))

Now, if you think where you could take this. Each “image” is clickable and brings up the image right in front of you. You could have all the specs of that widget there, and a link to “buy”, or deeper analytics for that widget.

Some other things I found out.. using the Excel tool for Pivot Collections is dog slow. Especially with a ton of records. It has to process the images for the “deep zoom” technology and it just takes a while. Like, hours.

There are tons of possibilities here with PivotViewer, both for an external website and also internal corporate business intelligence. It will give people another way to delve into the data and turn it into information.

Categories
Ramblings Reviews

iPhone, AT&T, MMS Messaging Not Working?

So…the iPhone and AT&T. Match made in .. who knows..

Back in 2007 I bought an iPhone 2G (a 4GB). I was on T-Mobile at the time, in PDX. I unlocked it and ran on T-Mobile for a while worked fine, moved to Madison, WI where T-Mob is non existent, so I switched to AT&T, at the same time I got an iPhone 3G. When the 3GS came out, I upgraded to that. Emily got the 2G phone when I got the 3G, and she used that until it died (wouldn’t charge anymore), and once I had the 3GS, she got the 3G.

Along comes MMS.. only works on 3G and higher.

Now, me on my 3GS, it worked right away, no issues. Emily on the 3G though? No dice. Wouldn’t work at all, so what did I do?

1) Made sure the phone had the carrier update – yes
2) Made sure MMS was turned on? – yes
3) Reloaded software, and restored from backup – yes
4) Reloaded software – fresh start – yes
5) Emily went to AT&T to check, they said she was on wrong data plan, changed her, MMS still not working
6) I went to AT&T and told them it has to be something with that specific # on my family plan account, they said no, its the phone or software, I said “bull$h!t” and left.
7) Put my own SIM card in the 3G phone. MMS worked! Awesome. This rules out the phone hardware and software – so the CSR from step #6 was completely wrong.
8) Called AT&T, told them the last 7 steps, but told them I think it is something to do with the phone #/account being on a 2G phone and not upgrading properly to a 3G in their system. She didn’t believe me and said it was the SIM card.. like #6 I called BS but went along with their advice, they sent me a free SIM card replacement.
9) Waited 3 days for SIM, put in phone. Need to activate – called AT&T again, took CSR 30 minutes to activate. She didn’t believe me when I told her she would need the SIM card info to activate it – doh.
10) Told CSR from step #9 the history of step 1-8 and she insisted it wasn’t the account. She had me test steps, etc, etc, etc for about an hour before basically giving up. I kept telling her “It isn’t the phone. It isn’t the software. It isn’t the SIM. It isn’t the network. It IS SOMETHING ON THE ACCOUNT!!!!.
11) CSR from Step 10 wouldn’t believe but before giving up sent me to tech support. Tech support dude FINALLY was like .. yeah, I see it here, that 3G phone is registered in one of our messaging systems as a iPhone 2G, restricting it from sending MMS.. should be able to fix.. he tried, but said sometimes it takes up to 5 days to go through, so now I wait until next week..

Really AT&T? The two CSR’s at the stores (different stores, etc) and then 2 on the phone, and no one would believe the actual problem. I needed to get on the phone with a FizzBuzz CSR (a CSR who you say the code word FizzBuzz to and they automatically know what you are talking about and won’t waste your time telling you to reboot and try settings you already tried about 100 times)

Figured I would blog this as searching Google (which I did about 20 times) on this issue didn’t warrant anything. Hopefully some pour soul that is encountering the same MMS issue on a iPhone that was upgraded through the different versions will stumble on this. One thing that blew my mind was that the AT&T Tech Support guy was like “this is the 4th one like this today I have had to fix” – which to me says “why don’t the first level CSR reps have this info somewhere they can find when troubleshooting MMS issues”..

In any event, we will see come next Wednesday if it works. I told the Tech Support dude to make notes in my account because no way in hell am I waiting and going through over an hour of troubleshooting to get this to work again. I told the CSR from step 10 that I would just cancel the number and add a brand new one to fix it since they couldn’t – and I bet a dollar that it would have worked.

People say “I can’t wait for AT&T to be on Verizon”, but I don’t think it would be much better. The huge multinational or crazy big corporations just can’t deal with customer service issues in a good way, I think they are just *way* to big.

Categories
Agile Geeky/Programming

Extreme Pair/Group Programming – The “Hive Mind”

Recently there have been a couple of bigger development/programming issues that have needed to get resolved where time was of the essence, and some kind of “short cut” was needed. Bring in the “Hive Mind”.

In Agile, there is Scrum, and XP .. pair programming. But what if you bring in 5-6 developers, put code up on the screen and say “help me”. The informal results I have seen are astounding.

What can result is in 10-15 minutes you have a problem solved, and everyone aware of the issue or code surrounding the issue.

Now, not to say you want to do this for every situation, but in some cases it can work wonders. I’d also want to note that the results I have seen could be unique – as always, your mileage may vary.

But the Hive Mind really does bring to light the power of many heads working together to collaborate and come up with a solution quickly. Very cool.

As usual though – pretty much common sense – more open communication and information sharing leads to a better result.

Categories
Geeky/Programming

Application Shortcuts in Google Chrome – Awesome!

I use Google Chrome as my primary browser in Windows (it is blazingly fast and minimal). (I use Safari on my Mac’s) .. one awesome thing I have started to utilize is Application Shortcuts in Windows 7 and pinning them to the taskbar..

Which are apps and which are just browser app shortcuts? Pretty sweet. I set up Google Apps (Gmail), Reader and Unfuddle as my shortcuts and I love the one window no hassle that comes along with it, allows you to focus on the app instead of the browser/tabs. Pretty nice feature.

Categories
Geeky/Programming

VMWare Converter Windows 7 P2V and Lost Ethernet Connections

Wow, so tonight, I took a laptop that was having some screen issues. It was a Dell Inspiron, and the screen would go black randomly (not completely, you could baaarely see the screen). Tested power settings, etc, etc. Only thing I can think of is a short somewhere. You close the lid, open it, and it works. Well since that is a pain, I decided to take VMWare’s free converter (http://www.vmware.com/products/converter/) and do a Physical to Virtual (P2V) image, and then run it on a beefy dev box I have with 8 GB’s of RAM.

Started the P2V after registering and installing the converter, everything was going good. I noticed that the converter said it didn’t support Windows 7, but ok, I gave it a go. As it was converting (I wrote the VM image out to a USB drive), the screen went black, so I had to do about 50% of the conversion barely being able to see the screen, but it worked.

After the P2V conversion, I took the USB drive with the image, hooked it up to my beefy machine and copied the image over. Fired up VM Workstation 6.5 and started up the VM. Worked. Noticed though that the OS was set to “other” and the VMware tools wouldn’t install. Powered down the VM. Changed to “Windows Vista” since VM Workstation 6.5 doesn’t support Windows 7 either. Started it up again. Cool, installed the VMware Tools. Changed resolution. Everything cool… except… no network! Both ethernet devices (lan and Wifi) were showing up as no drivers. WTF?!?

Downloaded drivers from Dell, installed, wouldn’t find them yet even after installing. Thought maybe I needed VMWorksation 7.1, so upgraded and still nothing. Uninstalled devices, changed numerous settings, still nothing. Plugged in a USB wifi, and that worked, but that was just a test.

Digging around mutliple forums and what not, found some things about editing the .vmx file with notepad and adding the line

ethernet0.virtualDev = “e1000”

So I tried that, and it worked! From what I can gather, since the converter doesn’t support Windows 7, it sets the OS to other, and then doesn’t grab the Ethernet settings correctly. Changing from other to Windows7 (in VM Workstation 7.1) you can install the VMWare tools. Adding that line to your .vmx file (and ethernet1 if you have multiple adapters) should do the trick.