I work within a relatively newly formed 'architecture' group within a large organization. Within this group, I mainly work with the JEE endeavors of the organization.
Without getting into a long discussion about our culture...I have made a turnaround about how to communicate our standards for application development. More specifically, what frameworks, APIs, etc... that developers are to use (much of it has to do with making sure licensing is okay with legal when dealing with open source).
Initially, I was of the opinion that we would not take the approach of telling developers what they had to use (sort felt like an ivory tower approach). Rather, ask development teams to work with the architecture group to find the best fit for their requirements while matching them to skillsets of the particular group. As time moved on, the more experienced developers in the organization recommended such a standards approach (which is contrary to what I thought would happen).
Well after getting out of my utopian world ... I am of the opinion that the best thing may be to mandate specific frameworks (ie Struts for presentation tier).
I am wondering what/if anyone has any thoughts on this? What is the medium your company uses to communicate/govern this (a powerpoint slide, a council of sorts)?
I am just not finding anything out there that would outline such a practice so I am wondering if I am on the right track . I am not big on large meetings to discuss such topics but rather small settings with developers to find the best fit and what will be best considering the skill sets of the development team at hand.
Thanks in advance.
I visit maybe 20 organizations that are in the process of becoming J2EE shops each year in the role of mentor/technology trainer, so I've seen a lot of what people do regarding the propagation of standards, and I have not found any consistent approaches - or even any approaches that I could tag as "best practices". That being said, I can tell you that most organizations tend to start with more open policies and end up with more centralized, rigid systems.
Apparently your experience is not unique - most people find that better results are gained when the standards are actively imposed than when people are left relatively free to implement what fits best.
The shops that I have seen where this has worked out best tend to take the approach that there will be specific standards that everyone must adhere to, but anyone can have input into what those standards will be. Note that this doesn't mean that everyone can freely change the standards, but it does mean that there should be a free exchange of ideas about what the standards should be and some agility in changing standards based on new ideas and new information.
Beyond that, what really tends to affect this stuff is existing investment in tools/frameworks. Many shops know they're not using the best practices/tools, but they are too invested in their existing stuff to change. Still other shops - and this is what one would want to avoid - have no real standards, because no one has had the time to define/propagate/enforce any, and are in a relatively constant state of chaos over which tools/practices/frameworks to use.
I hope this helps at least somewhat - no real answers, but at least you have an idea what some other organizations look like in this regard.