Supporting a community through interaction and opening your technology for all to see is extremely difficult. It is not a transition that all companies or developers are ready and able to make. Clear communication and an open nature are vital for success. Working habits and methods for developers will need to be changed. People at all levels now need to explain their decisions to a community of users and developers every step of the way.
Open development requires strong, open and scalable software engineering techniques.
Methods for accepting and rejecting patches, reporting bugs and so on need to be clear and well maintained. This involves substantial administration work and careful documentation of changes by your internal developers. It can be very difficult to find a successful business niche within open source projects that have a massive user base. Different users will have a wide variety of needs from the same project, your job is to find the common thread. Perhaps worst of all, is the absense of a financial perspective in the Open Source model.