"I remember my uncle showing me how to play around with VB (Visual Basic)
as a young child," says Amber Shah. "I'm sure I couldn't do anything useful
but my family always nurtured that potential."
Shah has certainly done a lot since then to develop her potential. The
20-something software developer has been a software project lead for NASA
as well as project manager for a multi-million-dollar product package. Oh,
and she's a mother and has a black belt in martial arts.
"Software project managers must have flexibility above all," says Shah.
"Requirements change, technology doesn't cooperate, people leave the team.
These things are part of the day-to-day of a project manager's life so it's
important to be able to take roadblocks in stride."
Handling all those requirements isn't easy. Communication skills and people
skills are a big part of a software manager's role. "The important thing
is to stay in close contact with the programmers and the client," says Shah.
"If you can do this, you're golden, but that's easier said than done. It requires
perseverance, since everyone is busy and distracted. It requires trust and
mutual respect [so] that both sides will come to you with a problem.
"[As a project manager], I spent a lot of time listening to concerns the
client had and then following up on them to make sure they got handled," says
Shah. "I spent a lot of time listening to concerns the programmers had...
and then following up to make sure they were taken care of. That's why I said
flexibility was so important. Whatever job needs to be done in order to move
the project forward -- that's what the project manager needs to do."
Like Shah, Justin Grant had an interest in software beginning at an early
age. He leads the product management team at Cantaloupe, a software company
in San Francisco.
"I always played around with nerdy stuff when I was a kid," says Grant.
"I started programming BASIC when I was nine or so, and then kind of just
kept with it, more as a hobby than anything, and then when I was in high school
I ended up getting my first programming job, sort of in the way that some
kids get work in construction in the summers or waiting tables or whatever.
For me, I just loved software [but] when I went to college I didn't really
expect to continue that, I just thought of it as a short-term, money-making
thing."
Grant explored other possibilities, such as becoming an English teacher
or an architect. However, after talking to people in those careers, he decided
those careers weren't for him. He fell back into technology as a default,
he says.
"That said, working with technology is one of the best things," says Grant.
"It takes some aptitude and it takes a while... I spent years and years wasting
lots of time learning my way around technology before it actually became something
that I could make money at."
Grant was a software developer for a number of years before becoming a
product manager. He says it was a great foundation for his current work.
"I find it helpful to have been a software developer for a long time, because
it gave me insight into what it takes to build stuff," says Grant.
Knowing how to build stuff isn't enough, however. You have to make sure
you're building the right stuff. And that means having your finger on the
pulse of what customers want and need.
"I think it's really important to have passion for serving customers,"
says Grant. "It's helpful to be able to distill customer input into concrete
steps you need to do to [translate] what the customer wants to what you need
to do. It's not always the same thing.
"A lot of times, people are really good... at internalizing what it is
that the customer wants, but they can't really translate that into, 'Okay,
Customer A asks for this, Customer B asks for this, C asks for this -- you
know, we really need to build Feature D because that will help us in the long
run and satisfy most of what all these people want,'" says Grant. "It's the
ability to translate customer input into something that's actual."
Two personal qualities help software managers understand what customers
need -- curiosity and empathy. So says John Turnbull, a former software product
manager currently working as a systems consultant.
"The software manager needs curiosity," says Turnbull. "Knowing how something
works is knowing how it doesn't work. He or she also needs complete empathy.
You have to be the person no one would think of lying to, even if they are
just lying about their emotional state. You will also need the courage to
avoid telling your own lies to your clients and customers."
There's another quality that software product managers need -- pragmatism.
That means having the ability to be practical and to see what's necessary
to get the job done.
"I think it's helpful to have a real sense of pragmatism," says Grant.
"The people that I see that don't do very well in this job are the people
where everything has to be perfect [as opposed to], 'How do we do something
that's good enough?' and then move on."