|
Q: (Initially posted on 8/5)
FROM MENTEE LAUREN S. IN CT
I was on a programming team for my FIRST robotics team, and
I saw how much work and how much time can be put into just
to make a light blink on and off regularly. So, how long does
it take for someone experienced to program a computer, never
used, to operate?
|
|
August 7, 2002
A: FROM MENTOR AIMEE WILLOZ. To read bio. click
here.
Kristin gave a great answer to this question! I'd like
to expand upon it a
little bit with an example. Disk drives (my area of expertise)
have a
fairly complicated software system (especially disk drives
intended for
large storage systems that companies use to run their businesses).
I've
worked for three different disk drive manufacturers in my
career, and I
would estimate that it takes 10-15 people to develop a new,
complete set of
disk drive firmware (if you want to do it in a reasonable
amount of time,
say a year). The good news is that we don't do a complete
redesign very
often! Once the first software set is developed, later products
are based
on that, and the software is modified each product generation
based on new
product and customer requirements. There are a lot of software
people
working here; many more than I thought it would take when
I was in college!
August 6, 2002
A: FROM MENTOR KRISTIN TAGHON. To read bio.
click here.
Good question, Lauren. When something is being programmed
for the first time,
it DOES take a long time to make sure it works in all situations.
These days,
once a new concept is developed, it is patented and often
sold as a package.
That way, it doesn't have to be "re-invented" more
than once! Most companies
create new products combining third-party software (software
written and sold by
another company) unless the company wants to improve on the
functionality. If
there is a new feature to be added, this takes time to write
requirements for
the feature (EXACTLY what should this new functionality be
- should the light
blink in patterns, or be changeable by the user? and how does
a user change how
it blinks? Is performance important? what color?), write the
design ( what kind
of computer should the software work on? what language - Java?
C++? what
should the software interfaces be?), program the code, test
it thoroughly, test
it again. And again. Test until everyone is satisfied that
this new feature
meets the requirements. Then, package it and patent it and
sell it! Depending
on the size of the new feature, this could take anywhere from
1 week (maybe the
feature demands a very small change ) to 1 year or more (maybe
it's a brand new
computer that has multiple new features or enhancements)!
Normally, new
features and new functionality is created by more than one
person. So, one
person does not have to have expertise in all areas. There
is a systems
engineer who writes the requirements, an engineer who writes
the design and
codes the product and tests it, another engineer who may test
it and pass it on
to another tester. Meanwhile, someone is patenting the concept.
Another person
is creating the packaging and the marketing strategy. Some
of these roles are
occuring in parallel so that the feature gets to market as
quickly as possible.
|