Tuesday, May 19, 2009

Being a program manager

One of the key things that every software development effort needs is an excellent program manager. That manager's key vision, leadership and customer advocacy drive success. In How to Be a Program Manager, author Joel Spolsky gives us some insight on combining agile programming and program management in a productive way. Since Joel worked on the team developing the next generation of Microsoft Excel, he's qualified to speak authoritatively about dividing up large projects into manageable bite-sized pieces. Like at OS-Cubed Joel believes that one program manager should be responsible for a team of up to 4 programmers, and that work should be divided up by functional area.

The most important part of Joel's article states that the program manager must be the customer advocate on the team. They must look at every interface from the customer (or end user's) point of view, and express that point of view to the programming team. Their job is to help the programming team design something that users will find easy to use and appealing. If users complain that the program doesn't work - it's not the programmers fault it's the program manager's fault.

I think this is an important point about program managers. Too often development teams focus on the program manager's job of coordinating resources and delivering on-time and in-budget without defining their visionary status.

Joel goes on to say that - despite agile programming pushing prototyping as a methodology, the program manager must write specs - detailed functional specs from the user's point of view - not the programmer's point of view. It's their job to advocate for the user and build an interface that is the best for them. I typically fill this role within OS-Cubed, Inc. I have just enough programming and platform knowledge to be dangerous, but not enough to be so buried in it that it's all I think about. I would go on to state that a good program manager probably has a high "DI" in the DISC test and a low "C". I will talk more about DISC and how it integrates into a programming team later.

The program manager should not however, be the person writing up the actual specifications for how the product should be developed (that responsibility is the programming team lead's job), nor should the programmers report the the program manager because that would allow the program manager's ideas to run roughshod over the programmer's. This needs to be a negotiation between what is optimal and what is possible and both the user's and programmer's needs are taken into account.

Agile programming is typically about fast turnaround and constant customer approval. So the program manager must stay ahead of this curve, constantly re-examining the impact that feature and user interface changes have on the full vision. Sometimes it will be their job to control the scope of the project and to do that they need to retain and update the vision as it changes.

Joel's article is a great read, and I highly recommend both the blog post itself, and the links he offers for help and assistance.

Wednesday, April 8, 2009

Inside a Google data center

Presented without comment:



Friday, April 3, 2009

Introducing RochesterStartups.com

I was asked by the folks at SpringStage to be the Catalyst for the Rochester area Startup blog and I eagerly accepted. To get a feel for what Springstage is, and what a "Rochester Catalyst" is I encourage you to review this post, which I will summarize here.

" “What is SpringStage.”

  • First, let me explain what SpringStage is NOT:
  • SpringStage is not an angel network
  • SpringStage is not an investment group
  • SpringStage is not a business incubator

SpringStage is a network of community catalysts who are in tune with their local entrepreneurship and startup scenes. Our goal is to find entrepreneurs who are interested in promoting startup culture and community in their hometowns. The network formally launched in early 2009. This is the first step in ensuring that there is a visible resource in every community for early stage entrepreneurs.

Today, if you’re new to a city and you want to be involved in the startup scene there, there is no clear cut way to get involved. Springstage hopes to fix that by identifying and promoting credible catalysts in each community. We are providing the infrastructure for those catalysts to begin promoting their location entrepreneurship scene immediately. "

As a board member on the Eyes On the Future event board, Rochester GVCSHRM, Rochester Neighborhood of the Arts, and JSEC, and a former Rochester Small Business Council board member, and an advisor to Nazareth's Business development program, as well as a serial entrepreneur and developer myself, I feel I have a good cross-sectional background to publish articles of an interesting and engaging nature in www.rochesterstartups.com. But I do need your help. I'm looking for entrepreneurs (at all stages in development) and in all different growth areas to answer a brief 5 question profile, and I'm looking especially for great articles or interviews from Angels, Venture or other investors.

If you are a consultant who works with entrepreneurs, I urge you to pitch me on a story about your services and how they can help the local entrepreneur be successful. We also want to build a link-list of service providers in the area.

Tuesday, March 31, 2009

End users are not stupid....

I read a great post today thanks to Larissa Reynolds, a good friend down in the great state of Texas. The post was written on http://cuhype.com and entitled "Hello, Our members are Morons". The author identified only as "Tony" was discussing how when he would pitch a Credit Union (his marketing specialty area) on a new marketing idea they'd frequently shoot it down saying that their members "wouldn't get it". He went on to explain why this was really a fallacy, and that with the right message and the right delivery you can hook a lot of people you wouldn't just assume would get it. Management's assumption seemed to be that it was ok for THEM but that their MEMBERS wouldn't get it, understand it, or be able to do it. This sort of belies the fact that most of THEM are members of their own credit union :)

I was reminded of a particular phrase that I usually use with my entrepreneurs when they come to me with their ideas. Take Knowledge Athletes for instance. They come to me with a great educational idea and I have said more times than once "you guys are the education experts - I'm just the software developer". If they think it's a great idea - it's worth a try.

Which is not to say I don't push back sometimes for a simpler interface. It's my job to advise people on the best way to implement their idea so that it can be enjoyed by the widest audience. But we must always be careful not to dumb something down to the point of no returns. It's ok for our users to have a brain - and to need it to accomplish a task.

We were pleasantly suprised for instance how quickly kids were able to pick up the Kajour application and run with it - sometimes despite bugs and growing pains caused by it only being a demo system. We found we could make the interface much more complicated than we originally anticipated and it would still work great for the kids. They were USED to figuring out complex interfaces. They'd grown up in the world of Facebook, MySpace, YouTube, and other tools and didn't mind poking around in menus or selecting icons until they could figure out what they needed.

So the all around summary - don't assume your users can't use a sophisticated interface. Don't underestimate their ability to "get it".

Monday, March 23, 2009

Internet Explorer 8 review

OK, being the brave intrepid Microsoft Fanboy that I am I put Internet Explorer 8 on both my home and laptop machines. The great thing - I haven't been disappointed. Oh yes - you will read in the news all the "bad things" about Microsoft, but let me tell you some good things about IE8:

  • The new browser is faster - it takes less time to load, less time to load pages, and less time to render. All in all it operates much more quickly than IE7
  • It is one of the first browsers ever, and Firefox and Chrome are included here, that provides a "compatibility mode" so that you can essentially fool a website, and the browser, into operating like an older version so that you can view sites that might have been specially coded to work with IE 6 or 7. It also allows you to link into a central database of known sites that are not compatible, and automatically switch modes so that your sites don't break. This is INCREDIBLY user friendly and a hop skip and jump above all the rest of the browsers out there. User's number one complaint on browser upgrades is that they break some sites. This utility essentially fixes that complaint. Site doesn't render well? Just switch compatibility mode.
  • It's suggestion mode is better than Google Chrome, IE or Firefox in that it suggests both items from your browsing history (first) and items from search (second) as possible URL completion targets. It's like the SEARCH bar in Vista for web, and it's quite powerful. You'll find yourself typing full urls much less frequently.
  • It seems to be compatible with all the toolbars I've previously downloaded (Google, etc.), with no messing around or tweaking required on my part. Similarly external programs that rely on browser libraries (Autotask and others) appear to work just fine with the new versino.
  • The "Suggested Sites" feature is pretty cool if you're just browsing around and looking at stuff. Very handy for finding other sites with similar material.
  • The new equivalent of "View Source" allows you to show all sorts of developer information, a DOM Tree, validation mode in both IE 7 and 8, as well as a "quirks mode". The validation mode will overlay to show you issues right within your pages, making fixes easier and providing for CSS/HTML debugging. Sure you could get all that stuff with an add-in before, but isn't it way better to have it built in? There are some cool options to show (right on the screen overlaying the content) image sizes, dimensions, etc.
  • You can now easily use the add-on's to (for instance) post web content to a gmail message (or hotmail) so you don't need an email client loaded to forward things.
  • The product provides an "incognito mode" similar to Chrome, but unlike chrome this can be managed using GPO's at the policy level to be disabled in corporate environments.
  • Speaking of manageability - the new browser can be managed right down to the feature mode using GPOs. Turn on and off view source browser, incognito mode and other features easily.
  • I'm not sure why they had to rename feed readers as web slices but oh well. The powerful capabilities of an RSS feed reader are built into the product and continue to integrate well with Outlook.

All this and it has not crashed once - not on my 32 bit Vista Laptop or my 64 bit Vista desktop. All in all I think this is a great improvement over IE 7. It's not quite Chrome for speed, it's not quite Firefox for flexibility, but it's got enough of both products to be a serious contender and is a welcome replacement for the aging IE 7. All in all I give this product a big "thumbs up".


  • Wednesday, March 18, 2009

    We won't feed you a line...

    I was somewhat appalled at reading this post, by a blog author I respect Chris Coyier of http://www.css-tricks.com/. He solicited comments and twitter comments on the concept of the question "What if a client came to you with an idea for a project you knew was going to fail, and would pay for it. Would you do the job anyway?".
    I must say that the overwhelming number of "web designer" and "web engineering" firms out there who responded to this post basically said "Yes I'd do the job". Wow. Please go read the post. Please read the comments by other "professionals" in our field. Then ask yourself - would you rather that someone gave you the straight honest truth and always acted in your best interest? Or would you rather pay someone to just do it your way? Would you rather rely on their experience and expertise when they LIVE in that world? Wouldn't you want to work with someone whom you know will give you their honest evaluation of an ideas success or failure, act like a partner in your success, suggest better ways of achieving the same goals, or guide you to a more successful conclusion. I would rather turn away a job where I know that the client just hasn't done their homework, than take their money and build them a fail-boat.
    Short term I may not make more money this way. But long term I develop 3 key features for business success:
    • Loyal customers - I would rather have my customers say "This guy saved me from making a big mistake" than "this guy built my idea, took my money and then it failed". News travels fast, especially in a small city like Rochester.
    • Personal integrity - Hey, maybe I'm old fashioned - but I like to be able to sleep at night knowing that I did good in the world - even if I made a bit less money than the guy who did not. If I have to let a customer go because we don't see eye-to-eye I'll do so with honesty, integrity and cooperation. You never know - sometimes they even come back.
    • Loyal and honest employees - the way YOU act in the workplace defines how your employees act. If you develop a culture that creates an environment of dishonesty and money-above-everything, you will reap what you sow. Ask Bernie Madoff.

    I vow in this post that I will always give a client the advice and product that is in their best interest. If you've got an idea I think is bad I'll tell you. If you can convince me I'm wrong I'll change my mind willingly. I will then help you to develop the best version of your idea that has a chance of success - or tell you that I might not be the right company for your requirements. I invite you all to take the vow and ensure your own personal integrity.

    Followers