I guess it's protection so if someone finds a glaring mistake, or several, they can just say "I told you so!".
I guess it's protection so if someone finds a glaring mistake, or several, they can just say "I told you so!".
At a certain point, you have to stop thinking about what your skill level is and start just doing. Spolsky used the term Architecture Astronaut, which I definitely was going in to my first job out of college. Now, I rarely think about architecture up front, I think about requirements and the fastest path to them, with the post step of eliminating repetition. This ties into YAGNI and 7 Habits and OODA and all kinds of different decision making strategies that it just feels right through and through. Architecture seems to fall out from that and makes up for a lot of my own failings for design.
Point being: we're all at certain level X, and our relative level compared to other people isn't important, it's what we do with our personal level to develop and deploy projects. I've seen pure procedural code written in object oriented languages that got the project done and got it done well. I've seen object oriented systems with perfectly defined abstraction hierarchies fall over on itself. Don't get me wrong, I'm not arguing against OOP with those examples, just saying "Code Elegance" be damned, you can't argue with "Shipped".
Where was I going with this? I forget... oh well.