The last few weeks, with my return to focus on development, have been somewhat revolutionary for us as a development team. We’ve really started working on what we want to be as a development team, and where we want to go. As a team, we read the excellent e-book Foundations of Programming by Karl Seguin, which is kind of a peek into the ALT.NET world.
That caused some developer soul searching, as we realized that we wanted to focus on Domain Driven Design, but we’re not 100% convinced that NHibernate is the way we want to go for O/R Mapping. Maybe I’m misunderstanding it (and that’s certainly a reasonable expectation), but in our case, where we are using MS SQL, period, it seems like a lot of decoupling for no real return.
In the context of YAGNI, it seems like a lot of extra mapping that doesn’t really need to be done, if one uses LINQ to SQL, as we do. Now, granted, I recognize that does inherently somewhat limit all of the testing that can be done. But if the focus is on the domain objects, my thought is that if they are tested thoroughly, and pass, then we’ve certainly done due diligence and should be good to go.
As much as I recognize that becoming a better developer by understanding and applying more OOP principles to our development is essential for career progression, longevity, and personal satisfaction, at the same time, I recognize that it can go too far. I DON’T have a C background. I DON’T have a Java background. Shoot, I don’t have a programming background, outside of the .NET world, so I have grown up eating the Microsoft cereal, and drinking the Microsoft Kool-Aid, and I haven’t found myself to be malnourished or parched, so it must not be THAT bad, right? Granted, I’d like to make that cereal into more of a 3-egg omelet, and I’d love for that Kool-Aid to become more like sparkling grape juice, which is why we’re working on becoming better OOP developers, but I certainly think that baby steps in that direction are the right move.
On another front, that of overall project management methodology, we had proven to us this week the necessity for moving towards Agile/Scrum. We had a project which was not properly scoped out, with little communication and guess what? It ended up not being what our “customers” wanted and required additional work out of scope to get it up to where it needed to be. It was absolute solid and real proof that we HAVE to move to iterative development. We have to include the project sponsors in weekly meetings to review progress and make small changes, rather than sweeping ones.
Now I’ve just got to find some good training for the team…