Welcome back to our second interview. Last time we caught up with Uncle Bob and learned what’s important to him when it comes up to coding. This time, we caught up with Stephen Price and wanted to hear his opinion on unit testing, code katas and a life without sugar.
Tell us a little bit about yourself
I have been coding since I was 16, starting with a Pascal course at Tafe. I joined the Australian Navy as an Electronic Technician when I was 18. I became a civilian 7 years later, moving into Server support, as computers were my passion. I kept the programming going as a hobby but finally decided that it was something I wanted to full time, so started my degree part time. I have now been a developer since around 2003.
I am married and have a daughter and two step-daughters. I am a cartoonist and a gamer. I am a cat person. I quit sugar two years ago and one year ago switched to a ketogenic way of eating after hearing about 2ketodudes.com.
How did you get started in programming?
When I was a kid, about 12 years old, a friend of the family we visited had a Commodore Pet computer. He showed me how to write a Basic program and showed me an ASCII base star trek game and I was hooked.
What are some of the languages you use today and why?
What type of applications do you develop?
Xamarin mobile apps, Web apps and Web APIs for the back end
What’s your biggest passion these days related to programming?
Helping out another developer when they are stuck on something. Writing unit tests and finding ways to improve code performance, design and maintainability. I am currently running four different meetups. The Appreneures meetup (App development master mind group), the Perth .Net mobile meetup (was Xamarin), the Perth Hackers meetup (Open Source hack afternoons in a coffee shop) and the Perth ACA Cartoons and Coffee meetup (Australian Cartoonist Association). If you can’t find me, you aren’t looking.
I was really lucky in that my first developer role was on an Agile project where there was unit tests. I was a build developer so it was my job to configure and automate the continual build server. It wasn’t until I left there and went to my next role that I discovered that unit testing, continual deployments and Agile development as a whole was NOT the way most people worked back then. It was a new emerging practice which now days, thankfully, is usually the norm. For good reason, it works.
What still sucks and shouldn’t be in programming?
I would not change a thing. It’s perfect as it is.
What are some of the most important skills developers can have?
Logical fault finding and Communication skills. Being able to troubleshoot in a system which bit is failing is important. Once you narrow down where the problem is you can zoom in and look at the code. Being able to communicate with other people is essential so you can get help, as well as ask questions. This improves your understanding of what is required. It doesn’t matter how good your code is if you implement something other than what was needed/wanted.
How did you learn about Typemock and what was your first reaction?
Back when Silverlight was hard to test, Roy Osherove used Typemock to write an open source framework which could be used to unit test Silverlight in a test runner rather than embedded within a Silverlight application.
Do you have tips for readers who are just starting out with Typemock?
Read The Art of Unit Testing by Roy Osherove. He used to work for Typemock and Unit testing is his thing.
How do you convince your manager to write more unit tests or practice TDD?
Easy. Don’t. Just do it, it’s your responsibility as a developer to write code that you know works, and unit tests prove that to yourself, and TDD helps you explore your implementation as you are working on logic you are not yet sure of.
Any tips on making managers understand the importance of using Typemock?
There is a lot of code which exists which has been written without any thought on how it can be tested. Typemock can help test impossible code without major changes. Minimising those changes can help reduce the introduction of bugs and/or behaviour changes.
The thing I love about Typemock is that I can easily mock anything, Interface, or Class, and easily program the behaviour for your tests.
Do you practice TDD and if so, what are some of your favorite code katas?
That’s how it all started with Stephen…
Not always. I find I use TDD when I am working on code that has complicated logic in it and I want to be sure I’ve covered as many paths through the code.
What are some of your must-have tools or libraries that you use in your daily working life?
VSCode. NDepend. LinqPad. Typemock when I can.
Who or what inspires you in the technical world?
Just look at who I follow on Twitter. The list is long. Most notable, Scott Hanselman, Carl Franklin and Richard Campbell.
When you need a quick recess at work to regain focus, what do you do?
Go and get Coffee
What’s your horror/war story from the coding trenches?
Once worked on an app so complicated that I could not run the application to test code I had written. The company hired experienced users as testers. The only way I could have been productive in my first week was to do TDD and unit test new functionality. Then get the testers to help me make sure it worked.
What’s the best advice you’ve ever received or what advice would you give your younger self? (If you have more than one advice, please do tell.)
Don’t try to be the best programmer in the world. That’s impossible. Instead, be the best programmer that YOU can be. Always look for ways to improve. Ask questions. Practice. Never assume you are right about anything. Suspect your own code before all others. Unit test all logic, forget about anything with no logic.
What are some interesting links you can share about yourself?
My Twitter feed is a good place to start, anything I think is funny or witty, I usually post. Warning: It’s really not funny OR witty.
What is one question that we should have asked, and we didn’t and what would be the answer?
“Would you like to work for Typemock, we are looking for a remote developer and we have lots of money to give you.”
Can’t believe you’ve not asked that yet… 🙂