My job is to develop or test new algorithms based on the needs of
the manufacturing departments within our company. To minimize the
algorithm development time, I use Mathematica as a prototyping
language.
Because I can place texts, codes, graphics, and other results in a
single notebook file, it's very easy to document my results. I
can reproduce the results any time later just by rerunning the
notebook.
Since I always add explanatory text into my notebooks while I'm
doing my calculations, once I have my results I can use the
notebook as an internal report to my company. This is really
efficient; in fact, I often write patents using the Mathematica
results immediately after submitting my internal report. And if I
think the results are significant enough to deserve a fuller
explanation, I sometimes go on to write a technical paper using the
same Mathematica results.
After finishing the notebook, I also upload it to our web server
so that anybody in the company who needs the algorithm can
download it. Because my contacts in the manufacturing departments
also have Mathematica, they can not only view my notebook but
also rerun my calculations with new parameters as the need arises.
Because they have a direct copy of my code and my notes, the
opportunity for miscommunication is significantly reduced.
I know my contacts in other departments will
have Mathematica because I specifically recommend they
get it. This smoothes the development process considerably.
I am also looking forward to working with MathCode C++, a
third-party product which lets me translate the algorithms I've
created in the Mathematica language to C++, saving me the need to
recode the algorithms I have developed.
--Kiyoshi Yoda