Weekly discussion by freelancers and professionals about running a business, finding clients, marketing, and lifestyle related to being a freelancer.

Episode 58: The Ruby Freelancers Show 058 – Convincing Clients of the Value of Testing, Refactoring, Documentation, etc.

April 25, 2013 56:16 54.01 MB Downloads: 0

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,