Steve Grahame is a computer scientist working for a small software company in Portland, Oregon.
“My job is to come up with good software ideas that meet public and professional needs–then to lay plans for seeing the project through to completion,” Steve explains. “Because ours is a small company, I participate in a wide range of tasks, from brainstorming new software to writing design documents to actually writing code.”
A Day in the Life of a Computer Scientist
8:00 a.m. Steve arrives at his desk, checks e-mail, and sets the day’s priorities. Designing and programming computer software is very detail-oriented and complex, so Steve likes to set a few simple priorities at the beginning of every day so that he doesn’t get derailed too far by the fine particulars of whatever arises during the workday.
8:25 a.m. Steve browses several technology blogs and publications. In a field that changes as quickly as computer science, it’s important to stay abreast of new gadgets, software, and computer hardware. “Sometimes I get ideas just by reading about the capabilities of a new tech gadget, like the new generation of cell phones,” he says. “Right now mobile phones with Internet access are becoming more and more popular all over the world, so I’m constantly looking for ways to use this new technology to tie-in with our existing programs or enhance future projects.”
9:30 a.m. Time to work on a proposal for the company’s next major software project. This time, Steve’s idea is to develop specialized productivity software for use by individuals and corporations. It allows for the planning of long-term projects, then tracks progress on the variety of smaller tasks that comprise them. “The core idea is to give the management of any given company a way to visualize, at a glance, how progress on a complex project is going on a number of fronts. Is one department ahead while another is behind? Is any part of the project behind schedule? This program will allow supervisors to instantly answer those questions at any stage.”
11:00 a.m. Having written out a rough draft of the design document, Steve now focuses his efforts on estimating how long it will take the company’s team of programmers to actually write the software’s many features. “This is where my experience as a programmer helps,” he says. “You can never say for certain how long development is going to take, but after a long time in this industry your guesses do become more accurate.”
1:00 p.m. Steve takes lunch at his desk while reading more tech blogs for ideas.
2:00 p.m. Steve receives an e-mail pointing out a significant bug that has turned up in one of the company’s existing products. Steve devotes the rest of the afternoon to searching through hundreds of lines of programming code, searching for the subtle programming error that’s causing the problem.
5:00 p.m. The bug still isn’t found, but Steve has managed to narrow his search. He’ll spend more time on his software ideas and the bughunt tomorrow—for today, it’s time to go home.