Increase Code Quality While Staying Lean
John Sindelar of SeedCode needs no introduction to FileMaker developers. Sindelar wrote the SeedCode calendar solution (now called Dayback), SeedCode Complete, FMChat, and his firm develops custom FileMaker solutions (naturally).
So when Sindelar talks about increasing code quality while staying lean, it's worth your time to pay attention:
What does Quality mean?
Sindelar goes straight to the point: He's only interested in code quality as it relates to money and time. Mainly because increased code quality delivers results:
- Less rework
- Increased delivery velocity
- Role portability in your team
- Speedy project restarts
Video: The new testing
I have been using video for years to show an added feature (or features). Sindelar uses it as well:
- Every small delivery is accompanied by a 3-5 minute video
- Large projects/products are broken into smaller cases, each with a video
- The video demonstrates the "whole feature using the customer's data
I like the above approach, but also have my clients use short video to describe problems/bugs, especially in complex processes. Seeing what the user is doing and how they do it in a short video saves a lot of time.
Sindelar recommends two products: Screencast-o-matic and Monosnap. In a later blog post, he shares that they are using Monosnap exclusively. I am trying out Monosnap now as a replacement for Jing and Camtasia, and so far I like it.
The video capture capability is powerful, allows you to choose a variety of options (frame rate, audio sources, etc.). If you want, you can do a screen capture with your camera capturing you talking in a small window that you are able to move around and resize. Pretty nice. The only serious drawback so far: It won't allow the user to change the default save folder for images or video. Update: Since I started this blog post three days ago, I have had occasion to explore and use Monosnap several times. I'm a convert now.
Deliver Every Week
By that, Sindelar means deliver and deploy a small chunk (another of his ideas) on each project. Even if things aren't done, stop where you are, deliver it and make a list of things not done to start the next case.
This idea is intriguing:
- Write your case number (also called a bug number) in a comment in the code
- Search your bug software for an issue reported by the client
- Use Dracoventions to search the scripts to find the exact line where the code was modified. No matter who wrote the code
- Conversely, find a code in a script and check out the bug software for the details
Any developer, at any time, can find that case number and track it back to the source of the problem. What was wrong, how they fixed it. And the developers find this so helpful they actually use it.
Record Technical Debt
- Defer hardening until work is validated by the customer
- Create a case for what is undone (critical!)
- Create cases for what is undone
- Record your tech debt avoids premature optimization
There is a lot more in this video (cutting to the chase, Unknown vs Blocking, project management software suggestions), and all of it is worth your time and attention. And as a final bonus, check out the recent blog posts by Sindelar, each containing more and updated information.
I have a dream that my four little children will one day live in a nation where they will not be judged by the color of their skin, but by the content of their character.