Codective: Crowd-Sourcing Software Development-Silicon Valley Campus - Carnegie Mellon University

Codective: Crowd-Sourcing Software Development

Have a great software idea but lack the skills? Or have the know-how but still looking for that great idea? Or simply love to collaborate and problem solve? Codective has users contribute to all aspects of software development. Codective is a web-based collaboration framework for software development projects. The Codective Platform supports technical and non-technical users, allowing input on all aspects of a software product's development. Codective’s vision is to provide a crowd-sourced development environment where every contributor receives credit for his or her contributions to the products’ successes.

Codective's company mission is to provide an environment where developers and non-developers alike can meet and communicate. Non-developers need an environment where their ideas can be heard by professionals who could implement the ideas. Furthermore, users need confidence that they will receive credit for their good ideas and effort. Developers need an environment where they can build a development community and work on interesting problems. Additionally, they need to be able to receive credit for producing high-quality software and software engineering artifacts. Codective has the vision and asked CMU-SV to help refine requirements and begin development.

Students utilized the skills they learned from CMU, as well as knowledge from their industry background, to achieve the client's vision and goals. The first two weeks of the project, students met with the client to define the scope of the project that the students will be responsible for, discussed development and testing environment logistics, identified key risks, and implemented mitigation plans. After the plan was set, the team constructed the development environment using the Ruby on Rails web-development framework on the Ubuntu OS as a Virtual Box client. This envoirnment was effective and deployable to all developing members of Codective. The students collaborated with the clients to iteratively refine both the vision and the requirements and coordinated meetings with Codective team members located within the US, Palestine, and India.

In order to solve the main problem of linking idea creators and software engineers, the CMU-SV team developed a beta web platform (Codective.com). To cope with these ever-changing requirements, the students employed agile project management and engineering practices. Newly-developed features were demonstrated weekly to obtain rapid feedback from the clients. As the project progressed to beta, CMU-SV students were able create a web platform that provided for community and internal review of submitted product deliverables such as feature lists and proposed revenue models. To encourage community members to put in effort, the beta also tracked users' work in various ways; this information would then be used to determine what share of the product revenues they should receive. Users could look back at previous versions of submitted ideas to vote on or rate their favorites.

To sustain high productivity while maintaining code quality, students used pair programming and test-driven development. Students used behavior-driven development to tie the developed code to the Codective acceptance criteria. Students also researched and tested additional resources already developed by the Ruby on Rails community and adapted them to meet the needs of the client. For the benefit of Codective contributors, students recommended to the client that they should create artifact documentation for to assist with troubleshooting and to help bring new contributors up to speed quickly.