Does your company have architectural principles that are written and agreed upon? How did they come about? How do you manage ownership and acceptance of these principles? Are they helping you or hinder you?
-
Not sure I agree with a question being moved from StackOverflow and being closed right away there... Architecture community is better represented there I think.– Yuriy ZubarevCommented Feb 28, 2011 at 4:57
-
1this is definitely a subjective question fitting for Programmers. StackOverflow may very well have more StarCraft players than gaming.SE but those questions would still belong there.– NicoleCommented Feb 28, 2011 at 6:08
-
All of them. Sitting in a document that some manager in the past wrote up, felt proud about his 200 page essay on code principles, with no buy in from the team. Sent them an email with it attached. Hands it to new employees when they start. Then ask no more questions or never refer back to it again...– Martin BloreCommented Mar 30, 2011 at 17:58
2 Answers
We internally maintain a set of architectural guidelines for engineers in the organization. These are reviewed and vetted out by a developer advisory forum run across the organization. The developer organization forum is a small forum of developers having sufficient representation across all product streams. This developer forum internally debates different architectural practices and once consensus is reached for a guideline, it is incorporated in the document templates for different specifications to be used by developers.
So far we have found these practices helpful as they help maintain a set of guiding principles. However sometimes we internally debate process to see that we are not causing process bloat leading to decrease in productivity.
I am outlining the process here but for confidentiality reasons cannot shares the patterns themselves.
-
1Thank you for outlining the process. I understand the confidentiality issues, but would it be possible to summarize the essence of at least 5 top principles? Commented Feb 28, 2011 at 5:01
-
No
We have core principles (non-technical; company philosophy), which do not change. Architectural principles change as technology changes, and as required by the project.
It is common in larger companies to have architectural principles, often overseen by a committee. It is far too easy for these to become an excuse not to think, and often they become an institutionalized policy of stagnation.
Guidelines are great, they offer suggestions. Principles imply axiomatic acceptance and application, and can lead to progress-killing dogma.