Eye on the Ball

It is a project management week for me on three fronts.

1. I’ll be teaching Gantt charts as well as Scrum burndown charts in the OOAD (Object-oriented Analysis and Design) class on Tuesday.

2. We are testing out Scrumy this week for SnupNow.

3. Our first pilot site is a project management consulting company, specializing in earned value. I hope to talk to them this week since our meeting last week was canceled.

While I was googling for tools that students could use for an assignment, I looked again for a Scrum tool that might work well for SnupNow. I tried out Planigle earlier and it did not feel like a good match, and I have alluded to our disastrous attempt integrating Agilo with trac. We have roughly 200 open tickets in trac (requirements, tasks, and bug-tracking software), with more than 500 closed tickets in that system. I would like to have something that integrates with trac. My second choice would be something I could migrate to from trac.

That might not be the ticket, however. So far, so good using Scrumy for a couple of days, except that we are duplicating data. Worse yet, I have no doubt that we have some information now in Scrumy that is not in trac, while we definitely have lots in trac that is not in scrumy…heavy sigh. There is not even a good place in scrumy to put the trac ticket number, although in some cases I tried to put it in the description of a story or task. At this point, I do not see a way to replace one with the other.

With it’s visual appeal (see my purposely blurry screenshot below), I think scrumy might help the team with our focus and productivity. I also like the connection of the requirements (stories) to the tasks, something we only do manually in trac, if at all. I decided to go for it and paid the few dollars for the pro version so I could password-protect the project.

Some SnupNow Stories and Tasks in Scrumy.com

Some SnupNow Stories and Tasks in Scrumy.com

I often decide what I will work on in a week, get those things in my sights and then tackle many other things, sometimes not getting done what I set out to do. This should be no surprise to anyone in this industry, not to mention to anyone who knows me.

I look forward to seeing the burndown chart. With many stories added during the week, I’m sure it will not look like it should. We can then work to improve that, with a visual that just might help us do so. Seeing the sprint start with a certain number of stories and increase over the course of the week as we all toss more into it, while also chunking down, knock on wood, might be a very helpful visual. Of course, since we are just starting out and did not do a real sprint planning session, it already shows. I’m thinking we might need to do 1 week sprints, as 1 month and 2-week iterations have not been highly successful, but this is what the burndown chart looks like right now.

Scrumy Burndown chart start, not yet doing it right

Scrumy Burndown chart start, not yet doing it right

I have tried doing a manual burndown chart, and that was just a ton of work from our ticket system. I’m also not ready to figure out how to customize and write our own burndown charts in trac, although I did initially write a burndown report that was less than satisfying.

A Subset of our Open Trac TicketsReport with Open Trac Tickets

To get from here to alpha delivery in January, I really need to get and stay focused, while also trying to provide whatever others on the team need in order to do the same. That is much harder to do while teaching on Tuesdays and Thursdays, of course. During the week, my brain can be all over the place right now. That isn’t good.

When I started dating my husband, I found myself participating in a very athletic family. In addition to the Thanksgiving football games (snow or no snow), they were having a family softball game. While I played tennis and table tennis, that was about it. There I was up to bat, petrified, knowing I sucked at this sport. His sister pitched to me. I swung and missed. My boyfriend called out “keep your eye on the ball.”

Holy revelation, batman! Although I guess I did that in tennis, this was a lightbulb moment for me. I thought “Hey, that just might work.” I watched the ball, swung, and connected. Really. That worked. My husband still laughs about how this whole “eye on the ball thing” was new to me.

With my mind all over the map right now, I need to focus, to keep my eye on the ball and hit a line drive. I know I want a home run, but it is a team effort. I need to get on base and when others do the same, we will make it around those bases. Scrumy, I hope you can help.

OK, Dawn, OK SnupNow team, keep your eye on the ball.

When to Bake Crackers, When to Mash them Up

Friend: Just try making something from scratch the next time you need to bring something. You might enjoy potlucks more if you don’t feel guilty for buying whatever it is.

Dawn: OK, I’ll give that a try and see what I think

(later)

Potluck coodinator: Dawn,why don’t you bring crackers and cheese on Saturday?

OK, so which one should I be making from scratch–the crackers or the cheese or both? Have you ever baked a cracker? I haven’t–at least not on purpose, and, frankly, I’m not about to try it right now, even if I could make these  http://daringtothrive.blogspot.com/2008/10/success-is-crispy-healthy-gluten-free.html or any of a number of other recipes. I’m just not the kind of girl who bakes her own crackers, and you can quote me on that. I’m OK with baking a cake with a mix.

I’m a believer in the division of labor. If someone else has made something that would work well for me, I would rather use that unless it is cost-prohibitive either initially or over time.

For example, I’m not going to write map software. We will use the google maps API like many a web site has done. I’m not sure what to do with the calendar, however. I wrote one homegrown calendar component for one read-only purpose so far, but we will need to start doing data entry via calendar too in the future.

We will have work to do with whatever calendar approach we use for our application. Our framework now has a schedule component that we can work with as part of the raw ingredients for baking our own. Google calendar is another option, if this would best be done with a mashup. It has a lot of features, with a good user interface. However, it might be best to minimize our external dependencies and avoid a mashup in this case.

Because this is not critical path before we go to alpha delivery, we have some time before we need to decide whether the data entry via a graphical calendar feature is a mashed up cracker or a piece of cake.

Remotely Close

Where is this?

Where is this?

When I saw this sign, I was surprised, even delighted, to find this in Fargo, ND. Yes, Fargo! My next thought was wondering if those inside the building were embarrassed to have this designation outside, given the amount of bad press regarding the Vista user experience.

We took this drive up to North Dakota so that I would join my husband in having been to all 48 of the contiguous states. I’ve known for years that I only had ND left on that list, and I live only about 3.5 hours from the ND border, but I was never before motivated to head there. My impression from others was that it was the western side of the state that was worth the trip, and that trip was much longer. I had no idea that Fargo, about 5.5 hours from our home, was such a happenin’ place, did you? Who knew there were all these Microsoft employees sitting here on the prairie (now corn fields)?

Here is one of the new Microsoft buildings going up on this campus.

It is quite beautiful on this Microsoft campus

It is quite beautiful on this Microsoft campus

While I really enjoyed my visit to Fargo and have nothing bad to say about the city (shown in a way to mislead folks in a more traditional photo below), I do have an idea how cold it gets there. I can just imagine those kids getting that good news / bad news call — yes, you got the job with Microsoft and you will be located in Fargo (I’ll let you decide which is the bad news). There are more than 1,000 Microsoft employees in Fargo now, with plans for more than 5,000 to be there in the future, if I understand correctly.

Historic part of downtown

This part of the historic downtown is what I thought Fargo looked like

Apparently Microsoft has figured out how to work in multiple locations. I asked our team recently what we need to do to pick up the pace on SnupNow development. We continue to move in a forward direction, but our progress is still at a snail’s pace. I continue to improve my ability to facilitate a distributed group of people who each work a few hours a week on the project, in most cases fewer than anticipated. I took my cheerleader uniform out of the storage room, thinking that might help, but, alas, it did not fit. [No, you are right, I was never a cheerleader.] The answer I got was that we needed to all be in the same room at the same time working together. Yes, I know that would help A LOT.

And help is what we need right now. [Gotta love starting one sentence with “and” and then following it with a sentence fragment. Oh the rules we can break! ]

We have an alpha delivery date. It is in January 2010. If we do not gear up and move faster, we will not make this date. So, how do we address the problem of being located in different places? This has a direct bearing on the lack of hours spent on the project each week and the slow rate of progress. We have plenty to learn and a lot to do before we can go live with an alpha version of the software. We must pick up the pace.

There are plenty of technologies that help mitigate issues with distance. I live far away from any relatives other than my husband, so I use many technologies to help me keep in touch with my parents, kids, and siblings for example. I still get in the car or on a plane and head their way quite often, however.

Email, phones, facebook, skype, and wikis can be helpful for communication with people separated by time or space. Other tools, such as WebEx or gotomeeting cost money. Resources, whether people or dollars, seem to be critical to the success of a project, eh? This is not a revelation to me, but I have definitely not yet figured it all out.

I do understand there are easier ways to write software initially than bootstrapping a company with close to zero dollars and making an effort to gear up a team rather than jump in as a solo coder. Among these are writing software on a client’s dime or with dollars saved up from consulting. I was a consultant, so I do know that, but there is an uninteresting story–which I will skip–that brings me to this project in this way.

Being in the same room with other team members would help considerably, and I have considered various options for actually doing that. While I have visited each SnupNow partner, it would not be all that productive in project time to do so again before January. I also don’t know how I could get each person to take a vacation at the same time and to spend that vacation with the project team. Would gathering for 3 or even 5 days to try to work together, with all of the logistics involved, be worth the huge effort right now? I doubt it.

There must be some other creative ideas, so I’m pondering that question and will discuss it again in our weekly skype meeting this week. I keep coming back to some scrum-like tool or kanban board available from our wiki as another possibly useful tool to help with motivation and focus, but we failed miserably in our earlier attempt to get that working. So, we  do what we can with trac tickets for tracking requirements, tasks, iterations, etc. I could use more help on that front, no doubt. Ken H. has stepped in to help with some of that administration, while Tom H has been the most productive coder of late, although he would tell you he has done little in the past few weeks.

We have a build of software that does something, but it is not yet fully useful. We have more than loose ends–we have many required features missing. When what we have is ready, people will surely be amazed at the lack of features considering the months we have put into this. I need to resist making excuses. Of course I want more, sooner, but we have a minimal required scope (with Agile development, in theory you fix time and resources and adjust scope for iterations, but there is still a minimum scope required for useful software) and a budget (minimal), so the timeframe has to play out, right? Nope, now we have a deadline too. Yes, I know what can suffer when resources, time, and scope are all fixed, but we definitely care about quality, she says, quoting every employer she has ever worked for. I want everything to be perfect, but that is not possible nor even wise, so I will work with the team to make good decisions in that regard. We will not let perfection be the enemy, nor will we cease to aim for it.

We will aim to have something tight that has enough features for the pilot site to get their work done with SnupNow starting in January. How close are we? Well, we are closer than we were six months ago, but by my calculations, we are not remotely close.

Go team!

Mastering the Art of Web Development

I loved the Julie and Julia film, which my husband, somewhat surprisingly, also liked. Julia Child wrote Mastering The Art of French Cooking, a book that is missing from my cookbook stash (I don’t cook, but I do read). I might have to remedy that someday.

Julia Child was a delightful TV personality who I remember from my youth as fun to hear and watch. My husband remembers her as an unattractive woman whose voice he did not like. Different strokes… I did some quick research and decided it was safe to take him to this film anyway, that it was not just a chick-flick. He is a good sport when I get it wrong, but if he would not enjoy it, then I would prefer to go with girlfriends. I decided I deserved this outing. One of my favorite ways to treat myself is to see a film. Although software is never in the can, I like to compare the work of the filmmakers to the work we do with software, where an ensemble of people create a product that is brought to delivery.

This film was great for me in that it showed not only a finished film product, but also the process of writing a cookbook and a blog. What fun! If you see the film, you might note that I am not obsessed with my blog as this Amy Adam’s character was. There is no aspect of writing this blog that has taken any toll on my marriage, for example. Clearly I am not writing every day, not even every week, but when I feel like writing, I do. Some might think I’m undisciplined, but I think I do a reasonable job at setting priorities.

I thought I deserved the film break after working this week on SnupNow, with two new developers coming on board (super!), as well as on one of the two courses I will begin teaching in a couple of weeks. Yikes. The course is called Client/Server Programming, but it is now all about developing web-based software. I chose the book Internet & World Wide Web: How to Program (4th Edition, Deitel)) as a text. It has information about various languages and tools so that I don’t have to do any information dump on such topics in class. Students will pretend they have read the assigned pages, and I will pretend I believe they did. I will at least know that I have read it, even if I have not tried all exercises.

We will walk around various aspects of web programming from the early chapters of the book, while they each pick a platform for their project, some from the later chapters. We will write html, css, and javascript. We will create web pages, a web site for each student, each setting up and using a different development environment but working toward a similar goal.

While I hope that both new SnupNow developers as well as students come away with a good overview plus some more detailed skills related to web-based development over the coming months, I am trying not to put pressure on myself to know everything. I will be a Sherpa. In the case of the students, I can teach them some things that books do not related to software development, with some stories that might add insight. In the case of the new developers, they are seasoned pros, but web development, particularly with our tools, is still new to them too.

I am not sure why this is the case, but after three decades working in software development and two years of specifically web-based work, I am nowhere close to saying that I have mastered the art of web development. So wish me luck. I might just have to rely on my big personality, even if it is a tad bit smaller than Julia’s, to get SnupNow to delivery (still miles to go), teach these courses, write this blog, be a wife, mom, grandma, daughter, friend, and sometimes preacher’s wife, and maybe even tap into my inner-Julia to prepare some meals.

Grateful Management

This is a reflection about management, particularly the management of people. I have been in management of one sort or another for more than twenty years. As with most of my roles in life, I’m good at some aspects of it and not so good at others.

Somewhere around 1986 my business cards listed my title as “Systems Analyst/Project Leader, Major Projects.” I was not organizationally a manager, but the project leader role was a good stepping stone to having my own budget and doing more than just participate in hiring decisions in future management roles. It was around this time that my company got its first female in a management role in an application systems department in the Information Systems division, although they were not ready to open the floodgates to women, of course. [One of my only exchanges with the VP in my division was when he put his hand on my shoulder and told me he liked my dress. Thankfully my immediate boss, who reported to the VP, told me that I was the smartest person who ever worked for him.] Although I really liked my job, I moved on to another organization as a manager at the end of 1988.

I left working for other people’s companies in 2002 after a couple of different Director titles in two organizations, having served as both a co-located manager of people and a remote manager of people. Being a remote manager was difficult. I could not always make the right pitches to the right people at the right time to get what my team neeeded, but I gave it my best, was an asset to the company, and learned a lot.  Remote people management is harder than onsite management, at least it has been for me. I can come off as more of the B-word, perhaps, when people cannot see my smile and the twinkle in my eye, although I’m quite capable of bringing out the inner-B in person too. I simply try not to do so.

In my role as the Managing Partner of Snupnow LLC, there are no employees, per se, but there are currently 6 active partners with ownership in the company. Two of these partners, Ken H and Sierra Bravo, with Matt being our system administrator there, have put in some significant hours this past week trying to get us set up again after some form of bot attack on various of our linux ports combined with our subsequent decision to bite the bullet and upgrade our database server to Cache’ 2009.1 as part of the effort to get the gateway between apache and our database going again. We were eager to get to 2009.1 for other reasons as well.

In addition to owner-partners, we consider InterSystems a significant partner in our company. They have been there for us many times, with considerable effort put in this past week by at least Derek, Deirdre, and Sudheer putting in time with Ken, Matt, and me. And, yes, that gets us back to me.

I did everything I could to try to delegate the system administration required to get us past this problem, because of my exceedingly poor system administration interest in the details, poor skills, and not-so-great sys admin temperament, as evidenced throughout my career. System administration work is stressful to me. Sometimes I can be helpful in system administration efforts. I recall times in past roles when I have called in the reserves (e.g. consulting companies) or bought meals as a relief to those in the trenches, as well as times when I listened to all information when complex issues arose, netted it out, made the call, and even at times did hands-on work to get the job done. However, I suspect the time I did my best work during a sys admin crisis was when I kept high-profile users at bay, pretended I was unaware of the six pack placed under the cool machine room floor, or when I made homemade mint-frosted brownies with grandma’s recipe.

I have experienced and participated in a variety of management styles. I used to do management by walking around, which is rather out of the question now. It is still important to try to help identify and remove anyone’s obstacles to doing good work, even if the walking around takes other forms. IM and Skype have been good tools for that.

I have experienced management by intimidation, my least favorite management style. I recall watching a VP for whom I worked berating a colleague of mine soon after I started working for a company. I turned and looked him in the eye and said “Just to be clear, management by intimidation does not work for me at all. Please do not try it.” It was about a year after working for him that he lost it and yelled at me in a meeting with one other manager, someone relatively new, so perhaps he was trying to show her who was boss. Afterwards, she asked me how I kept from crying. I told her that when people behave badly, even if they are insulting me when doing so, I just think to myself how I feel sorry for them, they must have some issues in their life. By the way, the next week I was proven right on the issue that prompted him yell at me. Poor bast*rd. :q!  I figure you can be competent and/or you can be kind, but you just don’t get to keep your job if you are an incompetent jerk. He didn’t.

In spite of working to steer clear of managing by intimidation, in prior roles I certainly did more pressure-packed management, pushing toward deadlines, questioning, moving fast, calling meetings, holding people accountable, etc. than I can do with the current sweat-equity scenario.  I don’t know if we would be further down the road if I turned up the heat, but I suspect it would be bad for the long haul. My current intent is to enjoy this job for a long time, and I will only enjoy it if those working with me are enjoying it too.

This last week was not enjoyable. We got there, however, thanks to the work of many people and to Derek having more clues than perhaps the rest of us put together. He figured out that the apache gzip compression was conflicting with the cspgateway (no need to know what that is) after our installation, or something like that. [I try to say things like this imprecisely so that no one ever thinks I am capable of using vi. I used to be in a position to be clear that I should not be included in any meeting where anyone said either grep or RS-232.] We are back up and running. Good deal. ZZ

Yesterday when I cut out for a few hours to run some errands in Sioux City, I used the driving time to reflect on the situation and those working on this problem. l thought about how I feel very, very grateful for Ken, Matt, and everyone at InterSystems who was helping us. I told myself not to be stressed, that we will get there, and I’m lucky to be working with people who have skills and interests that I lack.

For many years organizations like Calvin College, my Alma Mater, and Dordt College, my part-time employer this Fall when I start teaching part-time again, have talked about an appropriate leadership style being that of Servant Leadership. I am now in a position to say that a good management style, at least one to add to those already in use, might be one of Grateful Management. Thanks Ken. Thanks Matt. Thanks Deirdre. Thanks Sudheer. Thanks to others at InterSystems and Sierra Bravo who helped as well. I very much appreciate your efforts over this past week+. And Derek, you da man, brother. Thanks. I am very grateful.

On the Label, Label, Label

Our server is OTL right now after an attack, heavy sigh, but while others were doing some of the heavy lifting at various times, I had a few extra minutes to do some reading. Yesterday I decided to dive into details of interest to me related to html forms. Forms are the face of web pages from a data processing perspective or data processing from a web design perspective.

Regarding the design of forms, I had made a number of decisions early on based on research at the time. These include:

Tabs for Large Forms: Perhaps the most controversial of the decisions is that we would handle large forms by splitting the form fields into logical sections on multiple tabs in a single page. The tabs in any given page are not necessarily just different parts of a form, they could be tabs where the user makes a selection from a table too, for example. The key of this design is not to dump a ton of fields into a single tab, in general, but to split them up to make for a good user experience.

I just filled out a form on a new site where after I filled out one part they popped up another section. It was very cool and rather disconcerting. I had no idea what or how much would pop up. There are advantages to seeing named tabs in front of you, even ones you cannot yet access (at various times).

One of the first responses we got from a developer looking at an early build was that we should have an entire form on a single tab to streamline the user experience. Rats. I’ve been working on that module a lot lately to nail down a good workflow, among other things. Once we are ready for real user experience testing, maybe you will be willing to give feedback on whether the tabs work for you. If they don’t, well, uh, we will work on how to make them work rather than ditching them.  Decisions regarding the overall site navigation strategy, which is likely also controversial, would be easier to change than our tabbed approach.

Labels above input fields, left justified: I did about 1 hour of reading on this tiny topic of where to locate the label, which some of you think was way too much, I’m guessing. I chose labels above, rather than to the left of, input fields. I also decided on no colons after the label text. I spent less than 10 seconds on that decision. A graphic designer chose the font, font size, and font colors that I implemented with css. I will spend no more minutes on these decisions before we are live d.v. A textarea in one of our forms looks like:

field

Input field lengths all the same: There are some exceptions, but having the start and end of each input field be along the same vertical lines as the other input fields helps to minimize visual noise in a form. The alternative is that each length is determined by the developer based on what data is usually placed in the field or perhaps based on some fixed maximum length for the field. Having them all the same has the downside of giving no visual cue as to the anticipated length of a field.

There is another downside. I have spent well over 20 hours, I suspect, trying to get IE and FF input field lengths the same, to no avail. Apparently our toolkit which generates pages with no DOCTYPE, tossing browsers into quirks mode, is just plain not gonna get us there with the packaged components, although there are enhancements in the works that might help. The issue at hand is the dreaded IE box model combined with the old-fashioned table-based layout.

The added problem is that if I get the textareas (such as Street above) and single line of text input areas to have the same length in one browser, they are different lengths from each other in another browser. So it is not just that the lengths are different in different browsers, but that I have to choose one to be both right and left justified and the other to have input controls that have a jagged right hand side. Argh.

From my research yesterday, I have added to these decisions the following:

Labels in sentence-case rather than title-case: Currently our labels are mostly in title case like First Name. We have plenty that are still in developer form like the camel case of FirstName or whatever label the developer feels like putting on a field at the time they code it. So, we need to go through and review all field labels. That is why I decided to study this detail again. I decided to go with what seems to be an ISO standard (who knew?) of using sentence case, such as First name. OK, decision made now on that, but it will require this minor change to most of our labels, so while we are at it, better think about the following too.

Labels as short phrases instead of simple nouns: This is the more complex question for me. Is it a better user experience, resulting in more conversions (as marketing types would say), to have a form label of Enter your password for this site, Password for this site, or Password? I know it would be a better user experience never to ask for any password, but that is beside the point. I read a little and did a few experiments with myself as the user (yeah, I know), and decided that short phrases might very well give a better user experience. Hmmm.

No decision on this yet, but the examples of Street and First name show up a problem with short nouns like this. Even among the English-speaking world, these are not completely clear labels. When you translate such nouns, the problem is compounded. Making a phrase in each language that provides for more clarity might be a good plan.

We can put the power of an entire 1970’s computer room for a large business into a cell phone, but we don’t have names and addresses licked from a data processing perspective. That’s a topic for another day, but speaking of names and addresses, here’s what would seem to be a no-brainer, but is the most important of label standards.

Make trustworthy labels: I’m going to go out on a limb and suggest that we want to be sure that users can trust our labels. Below is a form I filled out early last week with dates from this past weekend (which  I can no longer select, so I’m showing it with next weekend dates). I had July 20 as my Resume Date and had the Post Office delivers accumulated mail checked. When my mail had still not been delivered by 4pm on the 21st, I drove to the Post Office. I told them I was expecting it to be delivered the previous day. They said “Oh, yeah, we don’t do that because you might not be home yet and then it just builds up.”

Of all the various issues with forms and labels, I’m thinking that whether there is a colon or not really doesn’t compare to the issues of labels and fields that give you a completely false impression of what will happen. I’ll have to give the award for my Worst Web Form Experience of the Summer so far to the US Post Office. Their form made a commitment, but they did not deliver.

Hard to see the problems with this form, but...

Hard to see the problems with this form, but they didn't deliver

Hey, Here’s an Energy-sucking Feature

I use this software, also known as a web site, named WordPress. You knew that, right? It was working well for me and it didn’t take much to set it up, so I set up a blog for my husband at wordpress.com too (http://twolthuis.wordpress.com). That’s when it stopped working for me. I know, I know, it still works the same and it should be easy for me to adjust, but…

Since my husband writes with even more typos than I do, I am his first line of editing after he makes a post (why edit before posting, eh?). He posts almost daily. I don’t do a great job, but I try to get in there and make a few fixes each day. I log in as him to do that. Then if I go to any other wordpress.com site, such as THIS ONE, and I try to be the administrator so I can write a new post, it signs me into my husband’s blog. I’ve written and deleted a few posts there. Argh.

This one tiny, little adjustment where I have to notice which blog I’m in as the administrator, then log out if it is the wrong one, then switch again to the other one that same day, is enough to discourage me from writing posts.

Now doesn’t that seem a tad bit unaccommodating of me, the end-user of this site? Doesn’t it seem like I should be able to adjust and just log out and log back in repeatedly each day? Yeah, it does. It seems like I should, but that little act of logging in and out just sucks my energy. I don’t wanna do it, so I don’t.

I’m wondering now which features we have in SnupNow that might suck energy from our users. Oh, that’s right, we have no users. Heavy sigh. Time for me to get an energy boost, I guess. Maybe meeting a friend at the closest Mexican restaurant in a few minutes will do that for me.

I wonder if there is an antidote we can put into software to offset any energy-sucking features? How can we keep from having energy-sucking features? What would an energy-giving feature look like? My current bedtime reading is the book

Instant Appeal: The 8 Primal Factors That Create Blockbuster Success

There are some tips in here that just might help answer this question. For example, there are words that boost people, such as “Hey”.