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.

Tuesday, October 12, 2010

DroidX is a Mighty iPhone Competitor

Tired of waiting for the iPhone to be available on the Verizon network I decided to jump onto the Android bandwagon and abandon my Blackberry Storm. The rumor mill continues to heat up with stories of an impending CDMA iPhone available in 2011. I am happy to report that after only two weeks of using the new Verizon 3G Motorola DroidX I really think Apple has very serious competition.


A couple of my concerns about the Droid-type phones were the quality of the user interface and the availability of business oriented Apps (iPhone set the bar very high). Both of these concerns were totally unwarranted. The DroidX’s gesture based user interface works well and is very intuitive. The new Swype technology allowing one to trace out a word on a displayed keyboard is truly amazing. At first I thought it might be gimmicky or even a throwback to Palm’s Graffiti language. However, it is neither of these. I find it to be a major productivity enhancement in creating messages, documents or emails over the multi-tap on-screen keyboard.


What can I say about Apps, there is simply no shortage. Like the iPhone there are tens of thousands of Apps from which to choose. Some are free and some may be purchased. Unlike the iPhone, where there is one central location for Apps, the Android world provides several alternative websites to choose Apps. I am just beginning to discover them; more on this in a later post. The phone came with about 2-dozen Apps. Many of which are very useful. My favorite is Navigator, a voice activated and turn-by-turn spoken navigation system. It is based upon the built-in GPS system and provides a real-time traffic overlay. Well almost real-time.


The first App I needed to find was one to link the DroidX to my company’s Microsoft Exchange Server for email, contacts, calendar and tasks. There were several to choose from in the Android Market and I selected TouchDown (NitroDesk). I downloaded a free and fully functional trial of the App. After spending a few minutes to enter login and server information I was connected to my company’s server. Within 15 minutes I had all my Exchange emails, contacts, events, and tasks on my new DroidX. No more local synchronizing! All updates between the phone and the Server are via the 3G-network or WiFi the updates are immediate.


Of course the Android syncs with the entire Google eco-system of Gmail and its associated apps. You need to enter a Gmail address and you all your Google data is now available on the phone. Other email accounts work well and are easy to setup with the built-in mail application. In future posts I will talk more about some of the business oriented Apps and yes, fun Apps, I am now discovering. If anyone out there has any specific MUST HAVE apps please speak up.


Oh, one other thing, it is a pretty darn good phone!

Wednesday, September 29, 2010

How to Be a Successful Woman in a Technical Field

I’m on the workforce development committee for one of the professional organizations I’m involved with. Recently there was a conversation about how the girls that were being recruited for a technical program (with the expectation they would take technical jobs in a field that’s predominantly male) were not the right girls. My knee-jerk reaction was to take offence to this comment, but when I thought about my early career for just a second, I realized the speaker was absolutely right. It’s not for everyone.


Back (20+ years ago – yikes!) when I was starting out as an Electrical Engineer, there were pictures, cartoons, and calendars in the labs that you’d get fired for today, the older engineers called you “honey”, and the VP in my organization was well known for feeling up all the “girls” he could get near. We all learned real quick to stay an arms length away.


The focus on sexual harassment has changed the most overt issues, but it still takes a special kind of young woman to be successful in a predominately male field.


I think my initial visceral reaction came from a sense of justice – it shouldn’t be this way, but you know what, it is.


Until we reach that state of utopia, what’s a young woman to do? My feminist friends may take issue with some of this, and I’d love to have a discussion about it, but here are my thoughts:
1) Have a sense of humor - Running to HR every time you overhear a raunchy joke is going to do nothing for your career, or your relationships at work. Am I saying women should put up with harassment – NO, absolutely not, but not everything is harassment.
2) Have a thick skin – Men (and women) can be rough. It’s usually not personal. Men don’t usually have an issue with this, but young women sometimes take things too personally.
3) Stand up for yourself – If you’re going to be intimidated by a big gruff crusty old engineer who yells and swears, it might not be the right field for you. If you are going to back down to the young male engineer who’s threatened because you’re smarter and work harder than him, then maybe it’s not the right field for you. Believe me, it’s not always easy to do, but it’s the only way to earn respect.
4) Work is work – Men get this. Watch them. They can argue like crazy about business issues, then go out, and have a beer together.


Remember, one of the big keys to professional success are the relationships you form, and if you’re working in a male dominated field like engineering you MUST be able to form healthy, professional relationships with those in your field – men. I’m curious to hear what other women think of this.

Thursday, September 23, 2010

Making ethical decision making easy

When I was joining my firm, I spent a lot to time talking with my future partners about a wide variety of topics – compensation, benefits, division of responsibilities, growth strategies, future personal plans, and values – many, many conversations about values. I thought this was odd at first, not that we talked about it, only how much we talked about it. I don’t know why I thought it was odd, considering I had left my prior position in part because of a mismatch of values.


Five years later, I am still in awe of what a strong foundation we’ve been able to build because we share the same values.


I was listening to a speaker recently talk about when leaders have to make tough decisions, and how sometimes they make those decisions consistent with their values and sometimes they do not. He made me feel so grateful about my situation. When we’ve had to make those “tough” decisions, it’s actually been fairly easy. When one of us wavers, and it happens, the other is always there to be steady. I can’t think of a single instance where we’ve made a decision that went against our values.


In fact, we were participating in an RFP and the purchasing agent suggested we do something we weren’t comfortable with. It was not so egregious as to be called unethical, but it was not consistent with the way we wanted to run our business. He subtlety suggested we’d get more business if we did it. This was about a year ago and getting more business was a HUGE challenge! We talked a lot about that decision and in the end, we decided to stick to our guns, and if we lost the business, so be it. Turns out that was one of the best tough decisions we ever made. We did not lose any business, and MUCH more importantly did not lose any self-respect. Shared values are critical to making ethical decision making easier.