Can “One Windows” Fix Microsoft’s App Problem?

History of Windows logosWhat Does One Windows Mean for You? – Don Jones on Pluralsight blog

The idea of one Windows is intriguing, but as Don points out, it can mean different things to different people. The elusive “one application to rule them all” approach to cross platform support has been around for decades without ever truly coming to fruition. My experiment with Microsoft Surface over the last year has taught me that the tablet apps and desktop apps are entirely different animals. Microsoft’s attempts to build one operating system that does both desktop and touch at the same time has produced an OS that does neither particularly well.

I hope that Microsoft is leaning from the dismal uptake of Surface (and other Windows tablets). It’s all about the user experience. While people say they want to run all their Windows apps on any device, if the experience becomes a frustrating series of impossible-to-click buttons and text editing nightmares, they’ll decide tablet computing just isn’t worth it. Don’s view is that much of Apple’s success with developers hasn’t been because of write once/run anywhere software. Instead, he suggests that Apple’s iOS and desktop application boom comes from allowing developers to reuse code to create separate applications that cater the strengths of each platform. I agree. Microsoft has to embrace the advantages of each its various computing platforms (phone, embedded, desktop, tablets and Xbox) while making it easy for developers to move and reuse code between all of them.


Does Iterative Development Stifle Innovation?

bulb in hand“Shorter sprints leave less time to recover if a promising but risky initial approach fails to pan out.” – My Primary Criticism of Scrum, by Mike Cohn

I came across the above blog post from Mike Cohn today and it got me thinking about whether and how my development teams innovate. It is definitely easy to get into a rut, where the team is constantly focused on the simplest possible solution and burning down. It is up to the project leads (Project Manager or Technical Lead) to be intentional about encouraging innovation within the boundaries of the agile process. For our project teams, this is a two step process:

First, project leads must look for opportunities to innovate. Sometimes this will result directly from a Retrospective improvement. Other times, the project leaders need to recognize when a project has a need for innovative solutions and the space and time to pursue those solutions. There is no science here, this is a balance of project resources (people and time) against the value of the innovation.

Second, once we make the decision to explore a new technology, approach or process, we break down the steps to complete this exploration. We define a user story, estimate the story and break it down into smaller stories as necessary. Next we task out the steps needed to satisfy the story or stories and, finally, we execute the stories in time boxed iterations.

I’ve found it useful to place time limits on research tasks. Research is one of those activities that can go down the rabbit hole. When asking developers their Definition of Done for research tasks, it’s not uncommon to hear, “I’ll know it when I see it.” I could work with the developer to force them to define “done” for the story or task, but instead I usually just say ask them how long they want to spend on the research (e.g., four hours, full day, whole week). We use that time frame as a hard stop to discuss the next steps in the process. For example, is more research needed, should we implement the solution or is the approach is unworkable?

What Sports Doesn’t Teach Us About Winning

basketballI started this post back in January, but just realized I never published. Hope you still enjoy…

I’m at a basketball tournament in Kearney, NE this weekend where my son’s team is getting hammered by the competition. It’s not their fault really. There are a number of reasons they don’t play well (which I won’t go into here), but needless to say, their coach has a very difficult job ahead of him as we look towards two more difficult games tomorrow. It reminded me of a very important principal we should apply to our projects and other organizational initiatives: How do we define winning?

The goal of a sporting event is usually evident to all of the participants (i.e., spectators, players and coaches). Sports are usually made up of winners and losers as measured by score, time, distance or finish line. In the real world, wins and loses may not be so obvious (even in sales, which is more blood sport than most business areas). As a project manager, I often find that the project participants start out with differing assumptions about the goals and objectives of a particular initiative. Unless project leaders take care to define project goals, the team will have no hope of measuring wins and loses, successes and failures.

As most project managers know, the key to success is setting measurable goals. It’s not enough to just have goals, but those goals need to be SMART. They also need to be in alignment with a vision for the project, team, division or organization. Ideally, our goals should allow us to get at least part way towards realizing our vision. One of the best methods I’ve used for goal development is to lay out the vision and allow the team to come up with the goals. Not only is this a phenomenal way come up with realistic goals (since the team probably understands how to get there better than you do), but you are also communicating those goals with team and getting buy-in all at the same time.

As for my son’s team, coach better figure out how to get that team focused on the little goals that lead to wins. If those boys can improve their rebounding, turnover ratio, shots in the paint and free throws, they will have concrete measures of progress and success. If, however, they stay focused on the more “obvious” goal reflected on the scoreboard, it’s going to be a very long weekend indeed.

Agile Manifesto Signatory

I can’t believe I’ve never added my name to the Agile Manifesto before. I feel like I’ve probably tried before, but must have botched it somehow. Anyway, hopefully today’s my day. Here’s my endorsement:

“Collaborative teams of developers and customers can achieve great things. The foundation of collaboration is communication. The Agile Manifesto and Agile Principles are not a prescriptive process for managing projects, but instead serve as a vision or framework around which teams build their own development or project management processes. The genius of Agile Alliance was to recognize that, while each project and project team faces different challenges, this collaborative philosophy can help focus a team’s approach, resulting in more effective, productive project efforts.”

To-Do Philosophy by Marissa Mayer

Those who know me know that I’m a list maker. Whether it’s a grocery list, scrum backlog (list of project requirements), vacation packing list or a chore list for the kids, I rely on lists to keep track of what needs to be done. I know that prioritizing the list is important too, so I stay focused on the important items first. Still, I’m always beating myself up for what I don’t get done on my to-do lists. Mayer’s suggestion that there is an extent to which we should be proud of what we don’t get done is interesting and something I will have to keep in perspective going forward.

Marissa Mayer on Why Having To-Dos Is Better Than Finishing Them