Tuesday, February 22, 2011

Watson on Jeopardy

Did you see Watson, the IBM computer compete on Jeopardy last week. I did, in fact I was really looking forward to it. Obviously the geek in me was awed by the computing power.

Watson clearly dominated. In the three day match he beat the two human competitors by a margin of roughly 3 to 1. Obviously Watson got many answers right, but what I found interesting was what he got wrong. When he was wrong, he was VERY wrong! I’m sure we’ve all heard about the Final Jeopardy answer in the second match. All those people from Toronto never knew they were Americans! But some other more interesting mistakes where when he didn’t even give the right kind of reply.

For example, on the question: “In May 2010 5 Paintings worth $125 Million by Braque, Matisse & 3 others left Paris’ museum of this art period?” The answer was Modern Art, Watson said Picasso, obviously not an art period.

The use for this kind of computing power boggles my mind. We just have to remember to sanity check his answers!

Tuesday, February 15, 2011

Cloud Computing – Connecting People

I know of three different companies right now that are developing some sort of distributed applications, running on multiple computers and platforms. In many aspects these systems are wildly different. They’re being developed for consumers and businesses world wide. The platforms may be PC, Linux, proprietary hardware and/or mobile devices. The applications themselves, the complexity and the architectures, vary wildly, but the most interesting thing is the commonality.

All of these applications are about connecting people. Whether it’s a consumer focused social application or a global business application or a new distribution channel for an industry where distribution has been a huge issue, all three of these applications really are flatting the world and leveling the playing field.

It’s fascinating and gratifying to be playing a role in changing the way we interact and do business. It makes me wonder what I’ll be writing about changing ten years from now!

Wednesday, February 2, 2011

Software Process Improvement Consulting

In 2005, I joined Advanced Decisions to establish a Software Process Improvement practice within the company. Well, long story short, I got busy with our core business of software and hardware product development and we never formally developed that practice. The interesting thing is that we seem to provide consulting on Software Process and SDLC as part of many of our engagements anyway.

The most obvious example is our work with start-ups. We typically are engaged to develop their product, but often wind up developing their process, their team, and even on occasion aspects of their business. With our larger clients we develop good quality documentation that’s often used as an example of what to develop in the future. Even with our prospects, we ask them enough questions about how they are developing their products to get them thinking.

It just goes to show, the outcome of a goal or desire may not always look like you expect.

Tuesday, November 23, 2010

Getting kids interested in Software Development

One of the things I worry about is the lack of talented young people going into software development. I know when I’ve been looking for junior engineers, it’s been almost impossible to find them, so I’m always on the lookout for ways I can help promote Software Development, Engineering or other STEM careers among young people. I think it’s critically important to the future success of our country.


That’s why I was so intrigued when I read about Kodu Game Lab, then I remembered something about this in Randy Pausch’s Last Lecture (if you’re one of the very few people that have not seen this – it is a MUST SEE. Yes, it’s long, but years later, just thinking about it still brings tears to my eyes) - a tool, or game, or learning environment invented at Carnegie Mellon called Alice. Two seconds on Google, revealed that there were quite a few of these tools, (or games, or environments, or whatever you call them)


I think these tools (or games, or environments, or whatever you call them) are brilliant ideas, but I don’t hear about them being used too much. Has anyone out there had any experience or first hand knowledge with any of these?

Thursday, November 18, 2010

When you’re done with product development

….you’re not really done. Let me explain what I mean.


We meet with lots of people and companies that would like us to develop products for and with them. They are sometimes under the impression that when we’re done creating the product, they won’t need any technical, engineering, or software development. After all, that phase is done, right? Well, yes, but the next phase is just beginning, and faltering here can be deadly to your product’s success.


Even if your product works perfectly, customers are going to have questions. Some sort of support will be needed. Not planning for this can be fatal to your product’s success. Often times, customers will be highly engaged and wanting more features and add-ons, creating opportunities and the need for enhancements. Ideally, more customers will want your product – maybe from an adjacent market or with needs not exactly targeted by your product, perhaps creating a need for other products.


All of these scenarios require additional support and/or continued development. Hopefully your product will be so successful, you’ll never be done!

Friday, November 5, 2010

40 years of Innovation at PARC

As many of you know, Advanced Decisions turned 40 this year, but this post is not about us. I recently came across this article about Xerox’s Palo Alto Research Center (PARC), which also turned 40 this year. I don’t know if you realize, but many of the things we’re calling innovative in 2010 found their roots decades ago. I think many of us have heard the stories about Xerox’s initial Graphical User Interface that later became the Mac interface and is the basis of how we use computers today (anyone remember using DOS? Wow – that was a different experience!). What I did not know was that in the 80’s they invented the PARCPad – a precursor to the iPad, and the PARCTab – the first PDA.


Another area they innovated in was culture. Work and play mixed, beanbag chairs were scattered throughout and shoes were optional. Sounds like the roots of the 90’s dotcom startup culture to me.


Having worked in a pure research environment early in my career, I know first hand that the most exciting aspect of an environment like this is the minds that surround you - not only the most technically elite, but wildly creative as well. The diversity is amazing, lunchtime conversations are completely engrossing, and in every lab, something is going on that could change the world. A great book about the early years at PARC is Dealers of Lightning. Full disclosure - it gets mixed reviews for technical and historical accuracy, but I found it extremely inspiring. If you have a budding engineer, scientist or inventor in your life, this might make a great holiday gift.

Monday, October 18, 2010

Qualities of Top Developers

We’ve often heard about the two fold (or five fold or ten fold) productivity increase between the top developer and the average developer. I’m sure we’ve often (ok, always) wished for a team full of these folks, but somehow we rarely get that. We tell ourselves that top developers are hard to find, they’re one-in-a-million, or that it’s just luck to hire them. There may be some truth to that, but there are certain characteristics that software experts share, and if you recognize these characteristics, you are more likely to either find them or cultivate them on your team.


First, and most obviously, top developers are among the most technically competent on your team. The have a wealth of tools in their toolbox, and the ability to use the right one for the right job. Both the breadth and the depth of their expertise are usually built over time and a variety of project challenges.


In addition to skills and experience, the best technicians tend to have great natural ability. Their brains just work in a way that makes designing programs easy. This has enabled them to build up their toolbox by allowing them to learn tools and techniques easily, and determine which ones are valuable and which are not.


A third characteristic is attention to detail. Whether it is in the requirements, design, coding, or testing phase, attention to detail will help ensure the work product is high quality. In their own personal growth, attention to detail is also important as it helps them develop new techniques and avoid old mistakes.


Fourth is the desire for continuous learning. Top software professionals are always “sharpening the saw”. They are learning new languages, processes, tools, or just simple techniques to build more good code faster. They are always up on the latest trends and eager to work with new technologies.


A final characteristic that is found in many of the most effective developers is teamwork. In most companies these days, interpersonal relationship building is a necessary skill. Most developers are not people oriented to start with, and those that can develop this essential skill have a huge benefit over those that do not.


Every top developer may not have all of these qualities, but be assured that they have most. Screening for, interviewing for, selecting, and nurturing these qualities will go a long way towards improving the effectiveness of your teams and your software development efforts.