The Ruby Freelancers Show 058 – Convincing Clients of the Value of Testing, Refactoring, Documentation, etc.
Panel Eric Davis (twitter github blog) Charles Max Wood (twitter github Teach Me To Code Rails Ramp Up) Discussion 01:13 - Is there value in testing and refactoring? Client Value vs Developer Value Unit Tests Acceptance Tests 09:22 - Saving time and money Better Code Maintainability 13:45 - When not doing tests hurts 14:39 - Refactoring “Changing Shit”/Restructuring 19:48 - Approaching restructuring “Leave it better than you found it” Use metrics Coding “taste” and style 30:36 - Software exists to provide value 32:33 - Documentation 34:45 - Getting clients to see the value in tests Characterization Tests 41:04 - Deployment 42:57 - Client Dictatorship Using specific libraries or tools or databases The Trust Factor 054 – Red Flags with Potential or Current Clients with Ashe Dryden Draconian technology Picks Software Engineers Spend Lots of Time Not Building Software (Eric) Status Board (Eric) Backbone.js (Chuck) Toy Story: Smash It! (Chuck) Next Week Overcoming Burnout Transcript [Hosting and bandwidth provided by the Blue Box Group. Check them out at bluebox.net] CHUCK: Hey everybody and welcome to Episode 58 of the Ruby Freelancers Show! This week on our panel, we have Eric Davis. ERIC: Hello! CHUCK: I'm Charles Max Wood from devchat.tv. It looks like everybody else is busy, so it's just going to be us this week! So how's it going, Eric? ERIC: I'm not that busy. I had a busy week last week; and basically, I actually took yesterday off. So, I'm just starting to kind of get back into things again so I actually have a bunch of time. CHUCK: Yeah. I just picked up another contract so things are starting to ramp up for me again. And then I'm trying to get all these stuff together for a few other things I've got going on. But yeah, there's always something to do. ERIC: Yeah. The hamster world never stops spinning. CHUCK: Yup. I'm seriously thinking about going and taking a nap after this instead of working, though. So this week, we're going to be talking about "How to Convince Clients of the Value of Test and Refactoring" and things like that. I guess we should talk about the premise really quickly of "Is there value in Test and Refactoring and stuff?" ERIC: Yeah. I don't know, I don't agree with a lot of the kind of popular opinion about bits on how you test everything and all that stuff. I'm very -- pragmatic is a good way of raising about it, I'm not sure -- I think there's value there, but I don't think there's as much value as a lot of people place in it. And especially if you consider it from the client's perspective, there might not be as much value in testing and refactoring, all that stuff, as developers put into it. CHUCK: Okay. What value do you see in tests? ERIC: For client, the value that they're going to get out of test is going to be "Regression Type Test", like this bug occurred, it was fixed; there's a test to prove it's never going to come back. There's also value in kind of like "End-to-End Test" - some people call that "Exception Test" or "Integration Test" where the system works from point A to point C going through point B. That's where the clients are hopefully really involved with like writing the test, how it's going to flow, and all that stuff. In those cases, I think there's a lot of value for the client. Depending on the client and the type of software you're building, they might not want to put a lot of time into it. I've had couple of clients where they are too busy to actually write this Sentence test, and so I would write them based on what the client would tell me, and then as we iterate on it like the workflow, we would tweak or understand the system and I would take that understanding and write the test for them. On the other hand, "Unit Test" I think for a client, there's very little value for them directly in unit test. I think,