There ain't no rules around here. We're trying to accomplish something! --Thomas Alvo Edison
If you've ever been thrust onto a project already in progress, you've no doubt gone through a few different phases. No, I'm not talking about project phases, such as design, develop, test, etc. I'm talking about the personal phases that you, as an idividual developer, go through.
When you're new to the project, you're in the the Inquisitive Phase. Here, you ask a lot of questions, because that's what you're supposed to do. That's how you learn. You inquire about the requirements of the project, about the architecture of the system, and about the design of individual classes and packages. As you ask more questions and learn more about the project, you discover a few things that just strike you as a bit odd. Perhaps it's the requirements, or the architecture, or the design that just doesn't seem right or make sense to you. So you inquire about these as well. "Why did we do it this way, when we could have just...?" you ask. Now, sometimes, you don't like the answer you get. And those of whom you inquired don't appear too pleased that you even asked the question. You are a humbled, like scolded child or puppy, so you are conditioned to curtail your questions as you move into the next phase: the Complacent Stage.
In the Complacent Stage, you've grown weary of asking too many questions and making too many suggestions. Internally, you still question a few decisions, but you've accepted that either there are things you haven't yet learned which could explain these decisions, or that you're simply not likely to change matters so it's best not to rock the boat. So you plug along, not without a degree of discomfort, but you are getting your job done under the constraints of the project. And you aren't making any enemies.
As you progress through this second stage, you learn more about the project structure and team dynamics. As you do so, a few of the questions you had in the beginning get answered and you realize there really was a good reason for specifying the system in such a way. Other points, however, you continue to question, and your conviction has only grown along with your knowledge of the project design and the consequences of that design. At the same time, you are establishing a reputation for yourself as a knowledgeable and productive work. This growth has brought you to the Emboldened Phase.
Now, you're confident enough to question once more. But this time, you're doing so not strictly to learn, but to help steer the project in a better direction. Perhaps it's mere stubbornness; we all have a tendency to want to see things done our way. Or perhaps you're left with no choice. You've got a schedule to stick to (which may already have been blown), and requirements to meet, and that design you've been stuck with just isn't going to fly. You've been on the project long enough to know the design has reached its limits, and you've also established enough of a reputation that, this time, you'll be taken seriously when you suggest alternatives. The success of the project demands some changes, and you cannot wait for those who remain in the Complacent Phase (or have slipped back into it) to make these changes. You proudly unfurl that Edison quote above your cubical, and you dig in. Nothing is sacred anymore. You're emboldened now, and you're taking action.
Ah, it feels good to have made it to that third phase.