Categories
Agile

Agile: Sprint Planning Meeting

The “other” meeting in Agile/Scrum. The Sprint Planning. You already have your “daily standups” or scrums going, but you need to actually *plan* your sprints. Before you start doing agile, you need to have an initial sprint planning. Call this pre-agile process sprint Sprint Zero or Sprint 0, or whatever, but it is going to be different than the sprint plannings after it. Why? Well, first let’s look into the planning pieces.

Now, you can split parts of these up into different meetings, but I like to keep them all together.

1. Retrospective15-20 minutes where you go around the room and ask each person. What went good this sprint, what went bad? Places to improve, places to keep things as is, what did you learn, etc, etc.

2. Review/Demo – 1 hour to 2 hours of going through all the stories you have completed in the previous sprint, reviewing with the “business” or the rest of the team, or product owner, etc. People can ask questions, and just getting all eyes on things helps to maybe find something subtle that someone else might have missed, etc.

3. Planning – This is the meat and potatoes section of your Spring Planning Meeting. Here is where you score all your stories that you have to score for the next sprint, or stories that are unscored in the backlog. This section of the meeting could last 2, 3, 4-6 hours depending on how many stories you have

So why would Sprint Zero be different? Well because you are just starting agile, you don’t have a Retrospective or a Review, you just do planning. (A more in depth post on just the “Planning” section is forthcoming)

Once you have scored all your stories, you are ready to go. After you go through your sprint, and you are nearing the end, you want to have another Sprint Planning Meeting, to plan out the next sprint. You do this type of “sprint”-ly iteration.. well, forever, or as long as your project is going to last.

I have found that holding sprint planning meetings starting early in the morning are better than the afternoon, just because people are more alert.

Also, having a good remote viewing option, such as Goto Meeting is going to make any remote do’ers happy.

Having some food and snacks for the team always is good too. A larger room where it isn’t as cramped is going to be good. Stuffing everyone into a smaller room for 6+ hours could lead to some crabbines, as well as just sweatiness 🙂

Of course, the Scrum Master is going to facilitate the meeting, but you might have one person or multiple do’ers drive the review/demo.


Categories
Geeky/Programming

Development Need #1 – Multiple Monitors

What’s one of the first things that developers want/need/can’t live without? Multiple Monitors. In most cases this starts of with 2 or Dual monitors, but this should be a standard. More monitors means more screen real estate which means you can more things up in front of you which means you can get more done. 15-25% more done, easily.

So, something that simple, a 200-400 dollar investment, can make your developers more productive, you should make dang sure every one has dual monitors, same size, for sure. Using a laptop screen and a monitor doesn’t count as dual monitors. Having a 15 inch and 21 inch is a mess. Two 19’s or 21’s or even better, higher inch screens is going to make developers happy, it is going to make them more productive, and it isn’t going to break the bank.

Not even anymore in development, but just all over a company, people should have two monitors. From the receptionist to the CEO. Just makes sense.


Categories
Geeky/Programming Product Reviews

Living Virtually: Running your Dev Process on Virtual Machines

Virtual Machines have been around for years. VMWare and Microsoft have been the main competitors for a while, both offering somewhat similar products. Parallels for Mac is another, and Virtual Box for pretty much everything. I have used them all. When it comes right down to it, VMWare, to me, is ahead of the rest, so I am going to focus on that. Heck, I did a P2V (Physical to Virtual) on my girlfriends wacked out laptop and that is working great, 2 months later 🙂

What is a typical scenario for most people? They go buy a machine, set it up, use it. It works great. It crashes or gets hosed. They lose most if not everything, spend a week redoing the machine and start the process over. This goes on for a few years, then they get a new machine, and start the cycle over

But…

What if you thought “virtually”? So, you go buy (or build) your beefy development machine. But then didn’t install anything but Windows Updates (of course), and VMWare Workstation. Now granted your want your physical box to have 8, 12, or 16 GB of RAM, and loads of fast disk space, but yeah, just need to have a beefy machine.

Now, you set up your actual dev machine as a virtual machine, you give it 8 GB of RAM. You install the OS, and take a snapshot (In VMWare). You install VS2010, take a snapshot. You install SQL Server 2008 R2 Dev, snapshot. You install each browser you need to test with, snapshot, snapshot, snapshot. You get the idea.

Now, if something is totally wacked, you can revert to a snapshot. You can even have multiple paths of snapshots, this type of thing is very VERY cool if you get it going correctly.

You can also just grab the entire VM hard disk and settings and copy off to your trusty 2 TB USB drive or whatever and you can do this once a week and you have a complete backup of your dev machine.

You can then set up another VM, say, “Web Server” or whatever you desire, give it 2 GB or whatever it needs to run, do the same thing. You can have both running, and do your testing. You can create a separate SQL Machine for testing. Try to set up your environment as you would for your development. If you need an Active Directory? Set that up, set up 3 VM’s or whatever, you don’t need to have them all running all the time. You need Exchange? Or SharePoint? Same thing. You have a Technet or MSDN Subscription, right? No? Go get one NOW.

What is even better then best, is that 3 years later, when you get an even better machine, you know what? You just install VMWorkstation, and copy or locate your VM’s and you are set. No resetting things up, etc, etc. It just works.

You want to create a smaller dev VM for holiday travel? Take it on USB, use Mom’s PC with VMWare Player and give your VM 1 GB of RAM. You just need enough to get by on. No laptop needed, just bring up your USB. You get the idea.. you can do pretty much anything you’d like.

If a salesperson came up to you and said “I have a way for you to configure multiple environments, multiple computers, setups, and have ways to revert back to things you did while configuring, and take backups of everything easily, etc, etc” How much would you pay? $1k? $5k? More?

How about roughly $200, for VMWare Workstation (if you already have Technet/MSDN – which you would have already). I’m sold.

If you really want to get complicated, you can set up VM Farms, and run VMWare Servers, and have multiple VM’s going and easily accessible. But using VMWorkstation to start is good enough, and good enough is fine 🙂


Categories
Agile

Agile: Roles – Scrum Master

Funny title, of course. Everyone with no idea about Agile/Scrum always laughs when they hear the title. Scrum Master (or is it Scrummaster?) – What is that? What a goofy title?

Yeah, but it is what it is. You are probably trying to run some kind of Agile/Scrum process, and you need then a Scrum Master 🙂

But what does a Scrum Master do? Well a lot of it might depend on your process and team but here are a few things (there are probably a hundred more)..

  • Facilitate the Daily Standup/Scrum
    Each day when you meet for your 15 minute standup, the Scrum Master should make things start on time, and keep flowing, and make sure people are answering the 3 questions (What I do today? yesterday? What is in my way?). The Scrum Master should cut off people from going long, make sure things get tabled or moved to a hallway discussion instead of taking of everyones time.
  • Make sure the Burndown/Velocity is being tracked
    The charts! Of course, someone needs to make sure the metrics are being tracked and also displayed. Now depending on your team, it might just mean .. well, nothing but making sure do’ers are updating their burndown correctly. You might have virtual charts. But in some teams, you might need to print the charts for the board, or you might even need to add the burndown yourself depending on your process/system. Keeping track of these metrics is key. You want to keep people informed of your progress every day (at least for the burndown – I like to track velocity as a bullet chart for the sprint and update each day as well).
  • Get all the Stories Ready for Planning
    In some teams, the scrum master might be the only person doing this, in others there may be a group of analysts, etc. But the Scrum Master should be sure to have the stories ready for planning, to score and discuss. Your team probably has a backlog of bugs, features, enhancements, technical debt, and it should be prioritized, but the Scrum Master should be where the buck stops to make sure everything is in order for planning.
  • Facilitate Sprint Planning
    Just like facilitating the daily scrums, the Scrum Master should facilitate the “Sprintly” Sprint Planning meetings. Review, Retrospective, Scoring. Keeping things moving, being an observer but not really a decision maker – that is for the team to do.
  • Be the “Blocker” From Outside Distractions
    Once you start doing Agile, things change, sometimes they have to change dramatically. If your team of do’ers is 3rd level support, or even 1st level support, they are going to need a buffer or blocker from outside distractions. People wanting things now! and support calls and walk ups, and everything else you can think of. The Scrum Master should and needs to learn how to say “No” to everyone when needed. “No, we can’t do that now, but we can look at doing it next Sprint” or.. “No, we can’t look at this right away, but if we get ahead, we can pull it in.. maybe”, or “No, we (just flat out) aren’t doing this”
  • Work with Product Owner on Story Prioritization
    The Scrum Master needs to work with the Product Owner (another Role for another blog post) to get the stories in order, and prioritized. This should happen sometime a few days or week before the Sprint Planning so things can get organized without being rushed.
  • Drive the Process, Improve the Process
    As with everyone involved, the Scrum Master should try to improve the process along the way. There are always way to do things differently which might lead to things running smoother. Change the day of the planning? Print cards? Auto burndown? etc, etc. The Scrum Master should work with the team and Product Owner to help continuously improve the entire process, and the Scrum Master should be the driver of the current process. People have questions on the process? They should ask the Scrum Master.

As you can see, those are just a few of the things the Scrum Master needs to do to help the Agile/Scrum process along. Many times, teams don’t have someone that will take the bull by the horns and drive the process, step up to the role. Other times it is just apparent who the person should be, and in others, it is a well defined role.

The Scrum Master’s role is very important in the process, as much as the do’ers and the Product Owner and others..But they should be the ones that *own* the Agile process and help move things forward.


Categories
Product Reviews

Hulu+ ? Right now, not worth it

According to Gizmodo, Hulu+ Invites are Now Arriving.. Well, I got mine on July 16th. And I have already cancelled it. It isn’t worth 10 dollars a month, at least not a this point. Why?

Well, first off, your queue and shows on regular Hulu aren’t in Hulu+, so you can’t watch them on the iPad and iPhone, WTF?

Also, the shows they have archives for are mostly stupid one offs that no one watched when they were out the first time.

Hopefully once more shows sync up to the Hulu+ model and are on the main “Hulu” and + edition, I will look at going back to it.


Categories
Agile

Agile: Retrospective

The retrospective. The cousin of the “postmortem”. Why not a postmortem? Because our project didn’t die. We want to reflect on what we did right, wrong, how we can improve, what did we learn.

What is the retrospective? I like to have a 15-20 minute section before “review” and “planning” in the Sprint Planning Meeting. Everyone goes around and says what can we do better? What did we do bad? What did I learn? Capture the thoughts and feelings of people and look back at the last retrospective and see what you did this sprint to improve on last sprint.

The hardest part of this “retro” seems to be 2 things, depending on team. Some teams find all the *bad* things and list them out. Some just find all the *good* things and list them out. You need to have a balance. Some things always go better, some worse, so put them out on the table.

If you don’t know where you came from, you don’t know where you are now, or where you are going.

Categories
Product Reviews

office.live.com – Docs in the Cloud

For a while, there have been offerings from Google (Google Apps/Docs), Zoho, and others, and recently, Microsoft jumped into the “online office” game with office.live.com.

Pretty cool. Word, Excel, PowerPoint and OneNote in the cloud. Limited, but you can create docs, share them, edit them, with *no software* installed on your system. Good in a pinch, good to sync some docs up that you might want to edit, good on a relatives computer that doesn’t have office.

Where have I started to use it more though? OneNote. What is OneNote? Well, before Office 2010, OneNote was installed as a separate application with Office. Kind of like Visio. My biggest problem with OneNote was that I was stuck to my laptop, or whatever. Had to be on the actual box.

Now, you can create a OneNote notebook in the cloud, and edit it in the browser, or on your machine. OneNote also has some cool features, like

“You can now share your notes with other OneNote users in real time by hosting or participating in shared note-taking sessions. Over a live connection, you can work together on a project or share a read-only copy of your notes with an audience.”. It also integrates nicely with tablet/bamboo and mic/text/voice recognition, as well as Outlook and meetings, etc. Integration everywhere.

I actually like OneNote better than Evernote – but Evernote I can get on my computers, web, iPad and iPhone. Yes, there is a OneNote iPhone app (MobileNoter) but you have to install a client, blah blah. Should just work over the cloud.

Anyways, if you need office online in a pinch, try office.live.com, but also check out OneNote and using it with others to share/read notes in real time, really cool features.

Categories
Agile

Agile: Scoring

Once you have your stories defined and you are ready to “score” them, there are some things you need to keep in mind.

What scale are you going to use for scoring?

I use 1,2,3,5,8,11, and 13. Why? Well, that is just what we used when I started doing Agile, and it seems to work 🙂 Fibonacci + 11. I know I probably should change it so it kind of goes along with the more mainstream numbers that some 3rd party tools and other people recommend. Maybe, someday 🙂

1 is the lowest, 13 the highest.

At first, the team has no idea what a 1 or 2 or 8 or anything is. It takes time. Over time the team gets a gut feel for what a 1 is, or a 3, or whatever.

Don’t equate points to time! No, a 1 isn’t an hour, or a day, or X. It is a 1.

What are points?

Well, I try to explain it as time, effort, complexity, outside factorness, craziness, etc, etc. You kind of have to bundle all those things up and say, yea, that is a 2. It is more than a 1, less than a 3. Each team is going to have a different meaning for what a 3 is.

During your sprint planning, what you want to do is give everybody a pack of “planning poker” cards so they can score as you go through stories. (There are also web apps for virtual teams, iPhone apps instead of using planning poker cards). As you get done reading the story, and answering any questions, the team should “score” – show their cards. If they are all the same – great! You have a winner.

If some are different, then you discuss or come to an agreement on why some do’ers think it should be higher or lower, and get a score at the end. Example? 6 devs, 4 say it is a 2, 1 says a 3 and 1 says 1, well, most say it is 2, do the other 2 devs agree? if so, you can mark it a 2. If not, you might discuss why. The one dev saying it is a 3 might say, “what about this an that” and then everyone realizes, oh yeah, it is more than 2, and you go with a 3.

What happens if you see 13’s?

What I try to do is say – if you score it a 13, then the story is too big, you should break it up into smaller stories. With that logic, you should never have a 13 on your board.

The biggest thing to remember is that the team is going to have to take a few sprints to get used to the scoring, and understand how stories fit into points. You ARE going to over and under score – it is just reality. But don’t adjust the scores during the sprint. Things just tend to work themselves out over time. What you can do is capture actuals at your retrospective and compare to what the original scores were. The team might get a better idea on what they should be scoring things then. Another thing to try is a scoring guide. After some time, you can say “every story we do that involves making a new button on a form is usually a 2” so then if you have a story like that, and the team scores it a 8, or they don’t know what to score it, you can look back at your guide and say -hey, we usually score these 2’s, so is a 2 ok?

Who scores?

This is a good question, who should score? My opinion? Just the do’ers. The scrum master shouldn’t score, and product owner/analysts shouldn’t score. Just the do’ers.

What do you do with the points/scores?

You track your daily burndown, and your “velocity” per sprint. More on that later.

Just remember, think of stories as being scored by points. Or bananas. Or stars. Just not hours 🙂

Categories
Geeky/Programming

Facebook Graph API – Getting Friends and Gender in C#

I recently blogged about the Facebook Graph API and if you have the Facebook C# SDK you can start making applications.

After I had my Facebook app set up, I started making a C# Console application to just get my friends and see what I could do. Here is a snippet to get my friends and their gender.

       string token = ;

            Facebook.FacebookAPI api = new Facebook.FacebookAPI(token);

            JSONObject f = api.Get("/me/friends");

            KeyValuePair friends = f.Dictionary.ElementAt(0);


            for (int i = 0; i < friends.Value.Array.Count(); i++)
            {

                Console.WriteLine("Friend #" + i.ToString());

                JSONObject friend = api.Get("/" + friends.Value.Array[i].Dictionary["id"].String);

                Console.WriteLine(friend.Dictionary["name"].String);

                try
                {
                    Console.WriteLine(friend.Dictionary["gender"].String);
                }
                catch(System.Collections.Generic.KeyNotFoundException knfe)
                {
                    Console.WriteLine("No Gender Specified");
                }

                Console.WriteLine();
            }


            Console.ReadLine();

There is a probably a better way to do this, but getting the JSONObject back and then getting the values you get back from that, I just kind of brute forced it. Also, handling friends that don’t have information set, the quick and dirty way was to just catch the exception. I know there has to be a better way but for now it works.

Categories
Product Reviews

Goto Meeting vs Whatever

I have used a ton of “meeting” apps. Live Meeting, Goto Meeting, ATT Web Conference, TeamViewer, etc, etc.

Best of the best? My opinion? Goto Meeting. Easy to setup, easy to use. Just works.

There is also an iPad app! I have used a couple of times and it works great. Whenever some *other* meeting software seems to fail, Goto Meeting works.

Not saying there isn’t room for improvement, but it just seems to always work. I have had to use it to step in when LiveMeeting fails, or ATT web meeting fails, etc. It is a pretty awesome product and if you have a chance to use it, I would say go for it, You won’t be disappointed.