Care About Your Craft
For you, what defines the craft of programming and what can you do show that you care about your craft? Make a list of ways to show quality in your craft and pick one to improve on this week.
The craft of programming for me includes tools, knowledge, skills, experience, and interactions. As a Microsoft developer, my primary tool is Visual Studio 2010 with its editor, debugger, designers, and add-ins. There are additional tools that I use regularly such as Blend, Reflector, Silverlight Spy, Fiddler, and LINQPad. I glean knowledge from blogs, books, magazines, MSDN, forums, and tweets. Every day I learn something new about C#, Silverlight, Azure, WCF RIA Services, MEF, MVVM, or some other pattern, methodology, or tip. Each day is a new experience and opportunity to hone my skills.
I talk to (at watch) my co-workers to see how they approach different situations. Two examples. I’ve worked with a programmer that handwrites code using pen and paper before his hands touch the keyboard. He doesn’t do this for every line of code. I think it is his way of solving more challenging problems. Another former co-worker keeps notes in spiral-bound notebooks. The pages contain answers to questions, how he approached a problem. Things he tried that didn’t work. Sometimes I would ask a question about how to do something or why a particular choice was made on the project. He would pull out a notebook and find the appropriate entry.
I feel the craft of programming has a lot to deal with people. How you interact with your co-workers, how you mentor someone new to a project or technology, how you deal with a client.
Here is a list of some things that I think shows that a programmer cares about his craft:
- Understand requirements, ask clarifying questions
- Have a broad knowledge of technologies
- Know the ins and outs of your tools
- Write unit tests, practice TDD
- Comment code
- Use code analysis tools such as FxCop
- Look for code smells and refactor
- Be prepared for meetings and be on time
- If you are leading the meeting, send out an agenda at least the day before
- Be precise in answering the 3 questions for the daily Scrum standup
- Add tasks to TFS before working on them, update items regularly
This week I am going to explore new features of Visual Studio and incorporate some of them into my daily programming.
What are you going to do this week to show that you care about the craft of programming?
