Dev Lesson 2

Knowing something is possible does not make it easier, it just makes it more frustrating when it doesn’t work the first few times. This even goes for things you already know how to do. Putting the pieces together is much more difficult than the design. It’s true that a good design can help the pieces fit together seamlessly, but ‘bad’ designs can have the simplest implementations. Then what makes the design ‘good’ isn’t the ease of implementation, it’s the reliability, impact, and extensibility of the completed system.

Dev Lesson 1

Soft errors require more finesse to avoid. Carefully aiming before attempting to blast down the problem will save time and frustration, although nothing beats the experience of trying all the possibilities. I spent the last few days setting up automated e2e tests with node for Angular. I hadn’t done any real back end JavaScript, so I was learning how to put together grunt tasks with a node server. The problem was simple enough: start a proxy authentication server that registers with a central authority and point the tests to use the temporary proxy server.

Dev Lesson Learned 0

Debugging and refactoring go well together. I spent the past few days bug hunting near the end of a release, and I took the opportunity to address all the todo comments as well as buggy behavior. A task that started off as simply removing a library that wasn’t being used anymore lead into a more serious refactoring of the database interface that exposed a few latent bugs. During the long build cycles, I again tried to go through the Learn You A Haskell For Great Good, but I found that I just wasn’t absorbing it without the ability to test it out.