<> = Contributing = ROS-Industrial is a community developed project. Anyone and everyone is encouraged to participate in whatever way they feel comfortable. Contributions include everything from answering a question on the email list to developing a library that fulfills a ROS-Industrial need. Contributions fall into two main categories (detailed in the sections below): * Informal Contributors - have no formal role within ROS-Industrial and as a result these contributions, although valuable, are mostly on an ad-hoc basis. * Formal Contributors - have a recognized role within the ROS-Industrial organization. Such roles have clearly defined expectations and are critical to the ongoing success of ROS-Industrial as an open source project == Informal Contributors == Informal contributors are the largest group of contributors in the ROS-Industrial community. Informal contributions are typically small efforts that address an immediate or near term need in the community. The following is a list of ways anyone can informally contribute to ROS-Industrial: * Enhancing documentation - updating wikis, add tutorials, etc... * Answering user questions * [[http://answers.ros.org/questions/|ROS-Answers]] * [[https://groups.google.com/forum/#!forum/swri-ros-pkg-dev|Email list]] * Reporting & fixing bugs * Submitting small pull requests (PRs) == Formal Contributors == Formal contributors have a well defined role within the community. They put significant effort into ROS-Industrial and ensure it is successful long term. They also perform tasks that are time sensitive and ensure the responsiveness to the larger community. The roles for formal contributors are outlined in the sections below. === Technical === ==== Team Lead ==== Leads a team of developers and maintainers with a specific technical focus. Typical tasks include: * Organizing/hosting developer meetings * Creating ROS-Industrial standards/specifications (f.i. the ROS-I driver specification) * Serving as key technical contact to the larger community * Maintaining roadmap for development/deliverables * Responsible for recruiting project developers and maintainers The typical team lead commitment is multiple days per week to full time. '''Open Team Lead Positions''' * [[http://wiki.ros.org/Industrial/organization#Misc_Drivers|Team Lead - Miscellaneous Driver Team]] * [[http://wiki.ros.org/Industrial/organization#Quality_Control|Team Lead - QC Team]] ==== Maintainer ==== Maintainers perform the day to day (release to release) tasks that ensure existing packages continue to build and are available as binaries and/or source. Typical tasks include: * Keeping documentation up-to-date (minor changes) * Answering user questions * Reporting bugs and performing minor fixes * Reviewing/accepting minor pull requests (PRs) * Updating and releasing new package versions The typical maintainer commitment is about 4 hours/week on average for mature repositories. Less mature repositories may take more effort early on. '''Open Maintainer Positions''' * [[http://wiki.ros.org/Industrial/organization#Industrial_Continuous_Integration|Maintainer - Industrial Continuous Integration]] * [[http://wiki.ros.org/Industrial/organization#Industrial_Calibration|Maintainer - Industrial Calibration]] * [[http://wiki.ros.org/Industrial/organization#Robotiq|Maintainer - Robotiq]] * [[http://wiki.ros.org/Industrial/organization#Keyence|Maintainer - Keyence]] * [[http://wiki.ros.org/Industrial/organization#Siemens|Maintainer - Siemens]] * [[http://wiki.ros.org/Industrial/organization#Acuity|Maintainer - Acuity]] ==== Developer ==== Developers add new capabilities or functions to software packages. Typical tasks include: * Keeping documentation up-to-date (major changes) * Reviewing major/large PRs * Creating new packages/libraries from scratch The typical maintainer commitment is about 8 hours/week on average for mature repositories. Less mature repositories may take more effort early on. '''Open Developer Positions''' * [[http://wiki.ros.org/Industrial/organization#Industrial_Continuous_Integration|Developer - Industrial Continuous Integration]] * [[http://wiki.ros.org/Industrial/organization#Industrial_Calibration|Developer - Industrial Calibration]] * [[http://wiki.ros.org/Industrial/organization#Robotiq|Developer - Robotiq]] * [[http://wiki.ros.org/Industrial/organization#Keyence|Developer - Keyence]] * [[http://wiki.ros.org/Industrial/organization#Siemens|Developer - Siemens]] * [[http://wiki.ros.org/Industrial/organization#Acuity|Developer - Acuity]] ==== Quality Control/Testing ==== Quality control and testers ensure that ROS-I development processes are being followed. They also ensure quality control measures are in place and properly executed. Typical tasks include: * Script development for continuous integration and test * Documenting policies and procedures for software development * Issue logging * Test code (gtest, rostest) development '''Open Quality Control Positions''' * [[http://wiki.ros.org/Industrial/organization#Quality_Control|Quality Control]] The typical tester commitment is about 4 hours/week on average for mature repositories. Less mature repositories may take more effort early on. === Non-Technical === ==== Program Lead ==== Lead non-technical teams in building and expanding the ROS-Industrial community * Organizing/hosting business development meetings * Industry liaison * Prepare grant and other proposals for ROS-Industrial funding * Serving as key programmatic contact to the larger community * Maintaining value proposition for ROS-Industrial The typical program lead commitment is multiple days per week to full time. ==== Technical Writer ==== Technical writers produce and ensure the accuracy of wiki and other web content * Develop and maintaining web content for [[http://rosindustrial.org|rosindustrial.org]] * Develop and maintaining tutorials for ROS-Industrial packages * Create and solicit blog entries from the ROS-Industrial community The typical technical writer commitment ranges from about 4 hours/week to multiple days/week. '''Open Technical Writer Positions''' * [[http://wiki.ros.org/Industrial/organization#Promotion|Technical Writer - Promotion]] ==== Marketing ==== Marketers promote the ROS-Industrial program * Participate in industry forums, conferences, meetings, etc... * Produce ROS-Industrial video content * Produce ROS-Industrial flyers/brochures The typical marketer commitment ranges from about 4 hours/week to multiple days/week. '''Open Marketer Positions''' * [[http://wiki.ros.org/Industrial/organization#Promotion|Marketer - Promotion]] ==== Project Manager ==== Lead ROS-Industrial project teams (2-4 people) in execution of small to medium sized projects * Create project plans and allocate resources * Report progress to the ROS-Industrial community * Work with Marketing to promote projects and the value they bring to ROS-Industrial The typical project manager commitment is multiple days per week. '''Open Project Manager Positions''' * [[http://wiki.ros.org/Industrial/organization#Promotion|Project Manager - Promotion]]