I tend to be a perfectionist. I can easily get into analysis paralysis trying to figure out the ideal approach to a problem.
The idea of TDD appeals to me because it is supposed to enable rapid progress while proving the code does what it’s supposed to. You keep it simple and quick by doing the simplest thing to get it to pass the test. Once it passes the test you get to refactor to clean up the code and you know it still works if it passes all the tests. Then you write the next test.
Sounds lovely. Wish I was there. I’m not, but I’m trying to head that direction.
I’ve found that writing tests can be hard. Particularly dealing with GUIs, database access, legacy code and deadlines.
Most of our codebase is in classic ASP with few tests. I’ve written a few tests using ASPUnit, but running tests from a web browser isn’t my favorite. So I just wrote a .NET library that enables running ASPUnit tests from NUnit. (I’ll share details of that in a future post.)
I feel like I’ve learned so much over the past year. I also feel like there is so much more I still need to learn and so much room for improvement. I actually get pretty frustrated by my slow progress at times and how much I still have to learn.
I had a season where I spent a lot of time reading technical books and articles and programming and I’ve been attending user group meetings, but I let other areas of my life suffer. Then God readjusted my focus. As much as I love programming, it is not my source of joy. Jesus is.
So I’ve been adjusting my priorities and trying to put God first. But I still program at work. And I want to grow as a developer and become excellent in my craft. So now I’m trying to find the balance, where I keep God first and don’t neglect important things like sleep and friendships while still growing as a developer.
Anyways, those are my thoughts. It may or may not make sense to you, but if you have any feedback feel free to leave a comment. I think I’m gonna go hike for a bit now.
4 comments: