60 likes | 74 Views
Discover the key principles of successful collaborations, including setting clear goals, creating clean interfaces, supporting collaborators, and fostering an organic community. Gain insights on how to build strong collaborations that benefit the community and achieve project success.
E N D
Successful Collaborations Everything you needed to know about collaborations you learned in kindergarten. Bob Dalesio
Make Clear Goals • Decide if you are working toward the good of the community or those of your laboratory. (For one project, it costs more to consider others. For the community, it costs less when you can build on previous work) • Identify the requirements (these are things that can be measured – not those that use the words good, fast, real-time, object oriented, application framework, Oracle).
Make Clean Interfaces • Code that is structured with clean interfaces can be extended independently. • A narrow interface that is rarely extended allows code developers on either side of the interface to make changes that do not impact the entire community.
Support Collaborators • To have a collaboration, you need collaborators. • Smart collaborators are better than ones that are not. • Collaborators become smart a lot faster when they are able to get support. • One day, you are going to call your collaborators for support. • This load is only accomplished by people dedicated to making the collaboration work with management that supports this goal.
Collaborations need members • There is no collaboration if there is only one group. • All collaborators using the software contribute in some way, testing, bug fixes, and commentary at the least. • It is important for those joining a collaboration to understand that they are not customers – all problems are their problems.
Collaborations are organic • A collaboration is a group of individuals that decide to work in the environment. • Software develops in many ways in a collaboration. • A community of collaborators is as important as the software.