Software Developer at IBM
Raleigh-Durham, North Carolina Area
Software Developer at IBM
Raleigh-Durham, North Carolina Area
I have developed software for over 10 years, using C, C++, and Java. I enjoy designing and writing high-quality code. From my experience, here are some key elements that go into producing great software:
· Interaction design. Understand the real user goals, and design the software to meet them. Quality and usability are some of the most important features.
· Clear design specs and a good review process. Know what you’re going to build, and specify the interaction clearly. Give the team a chance to look it over and give feedback to make it better.
· Good programmers. Form a team that knows the language and is always striving to improve by studying books and articles by top practitioners in the field.
· Unit test. Create unit tests that run automatically to ensure code correctness and make it possible to refactor and enhance code with confidence.
I enjoy sharing what I learn with my team -- recently I have been involved with the "Best Practices" efforts, helping decide on and share with the team more effective ways of using Java.
I am a strong believer in Interaction Design -- reading Alan Cooper's _The Inmates are Running the Asylum_ a few years ago changed the way I think about software development. Meeting the real user goals has become one of my primary development goals.
I have learned the power of design reviews, and know what it takes to conduct good design reviews (and how to avoid some of the potential problems). I have seen how good design makes implementation faster and smoother.
I enjoy reading about programming and software development, by writers such as Joel Spolsky, Martin Fowler, Fred Brooks, Steve McConnell, Alan Cooper, Steve Yegge, and Joshua Bloch. I like learning how to use the tools well, learning how to make the process better and more efficient.
Java, software design, programming, refactoring, development best practices, writing, design and code reviews, unit testing