we're moving backwards
This is technically another rant (long overdue), sorry to the guys involved.
1. From test-driven development to deadline-driven development
We are practicing test-driven development and continuous integration (okay, just some!). I saw the following code comment in one of our code sheets:
Search uses ShipmentCriteria as intermediate object between UI and search engine. ShipmentCriteria is unnecessary but due to tight schedule, i couldnt delete it from the current implementation lest ill end up rewriting the presentation. Perhaps in a test driven development environment we can refactor this but for the deadline driven, this will do.
There are also ignored test cases with a comment "New search engine using deadline driven methodology."
Projects will always have deadlines, and in our company, developers are the ones estimating their tasks. It's up to you to give an estimate which covers the inclusion of automated tests for it (if you want to, but actually nobody is forcing you). Yes it's normal that a team couldn't find time to include automated tests for the project especially when the release date is very near. However, there really are persons who are dedicated to the practice and finds time to include some tests especially for the crucial functionality. Checking the subversion logs, he's the only one who have added test cases for the application. If you are really dedicated to improve the project, drop your email and blog reading routine and contribute to the project by including tests for your feature (look who's talking, :p).
I've been monitoring the Unit Tests of my previous project and for the past couple of months, you won't notice an inclusion of the new test case in it, just modifications to adapt to the new requirements. Coverage for the tests is continuously dropping sad to say.
2. From subversion to non-versioned
My two teammates are working on the same task and chose to not integrate with my created versioned solution (I don't know why).
I saw the junior guy using a CSV parser from some library when he asked me a question. When I visited our lead's desk, I saw him doing a normal string.Split routine in his code for parsing (proven to be problematic!). Smells fishy!
I found out that they are working in a non-versioned environment. I asked them how are they integrating? Senior guy is giving junior guy latest copy of his bits every morning. Hmmm, interesting...
3. From ASP.NET to ASP classic
- was surprised why my teammate was coding a simple webpage table form in asp style (foreach script blocks in aspx page)
- a consultant saw the implementation and commented that it's not the way we do in .NET (of course)
- consultant proposed to do all the html creation logic in codebehind and assign the formed HTML (really?)
- I proposed using asp.net data controls and databinding
- teamlead commented data controls are costly pointing at hidden viewstate (classic argument)
- me and junior guy did the page using asp.net data controls
- code is now constructing an HtmlTable instance in the codebehind, lead's code, but he agreed to change it (thank god)