- You need really good technology. Open source doesn’t make bad or mediocre technology look good. Open source can’t save a bad products, so please don’t try.
- A governance structure that would encourage broad industry adoption. If you want broad adoption, including your competitors, make sure you have a governance structure that is vendor neutral. Obviously, I believe open source foundations like the Eclipse Foundation, Apache Foundation or Linux Foundation, offer the best solution.
- A company needs to spend significant technical and marketing resources to kick start the project. Putting code on a download server and expecting a community to emerge is unrealistic. It takes a lot of work and resources to start an open source project. Someone needs to spend the time and money to nurture the community and promote the project. This is one criteria a LOT of companies overlook.
- A commercial friendly license model. If you want industry adoption and participation, you need to allow other companies to commercialize the technology. Licenses like EPL, Apache or BSD provide a commercial friend license model.
- IT infrastructure that encourages collaboration and distributed development. Someone needs to implement and support the tools for collaboration. Today there are lots of services that can be used but someone still needs to be responsible for administrating them.
Most of these should be obvious. However, I am still surprised a lot of companies forget that all 5 have to be implemented if your strategy is going to be successful.
This guide will introduce you to the world of Software Architecture!
This 162 page guide will cover topics within the field of software architecture including: software architecture as a solution balancing the concerns of different stakeholders, quality assurance, methods to describe and evaluate architectures, the influence of architecture on reuse, and the life cycle of a system and its architecture. This guide concludes with a comparison between the professions of software architect and software engineer.