Heads up... You're reading this book for free, with parts of this chapter shown beyond this point astext.
Danny is a mobile developer by heart. He lives and works in Berlin, the city he loves as much as Android. Danny signed the Software Craftsmanship manifesto as a strong believer in the value of life long learning. He dreams in clean code and could speak about unit testing all night. That’s also his favorite topic when speaking or writing about Android. Danny was in charge Android for eBay’s classifieds business in Germany before moving to Groupon to build a team there bringing mobile to life for merchants. Even before Android came along he programmed for mobile phones and every device that could run some kind of Java. Currently he is using his learnings about media streaming at Viacom for the music app SoundCloud. His first computer was a Robotron KC87 and he still loves technology. In fact so much he has a magnet and an NFC implant.
Connect with Danny
You’ve been advocating for better testing in Test-Driven Development, or TDD. How would you define “better” testing?
I’ve been looking into testing for quite some time now. I actually gave my first public presentation to a tech audience about ten years ago at a Blackberry developers conference. Even back then, I was focused on Unit Testing. I’ve learned a lot since then.
It sounds like you think the best way to approach testing is on an individualized basis. Is there anything developers often underestimate when we are developing our tests?
In terms of quality, I think we are not putting enough effort into the tests themselves. We learn all these rules, like not to repeat ourselves, right? Often, developers ignore this when it comes to testing. But tests should be as clean as production code. The same rules apply! Make your tests easy to change! If you change functionality, the changes in your tests should be small, as well. But very often, the reality is duplication everywhere. It’s at that point when people start to hate testing. However, the real problem may be that the developers didn’t apply the same principles to testing that they applied to their code.
That’s an interesting perspective. I’d like to know more about how you’ve developed your point of view. What are some books that have had a lasting impact on how you do work?
There are several books that have made a significant impact on me. The first is Effective Modern C++: 42 Specific Ways to Improve Your Use of C++11 and C++14 by Scott Meyers. I started my career as a C++ developer, and this book kick-started everything for me. It’s still the best-written and most engaging IT book I’ve ever read.