Published on

Published in: Business, Technology
  • Be the first to comment

  • Be the first to like this

No Downloads
Total views
On SlideShare
From Embeds
Number of Embeds
Embeds 0
No embeds

No notes for slide


  1. 1. Development & coordination Tools Juan José Sánchez Penas Master on Free Software
  2. 2. Coordination tools Master on Free Software
  3. 3. Coordination tools (I)● Goal: we group here the tools devoted to the work management of a hackers group● There are multiple areas managed by these tools: ● Work schedule ● Documentation/information ● Repositories ● Tickets/bugs ● Communications Master on Free Software
  4. 4. Coordination tools (II)● Some tools cover various areas (sourceforge and forges)● Usually they try to integrate multiple services or collaborate with other tools● These tools do not depend on the platform and are commonly shared by the communities● Communities and projects inside companies decide which ones are interesting for them● Agile methods and practices are very common Master on Free Software
  5. 5. Coordination tools: work schedule● Goal: organize and plan the work of the project● Project organization using Agile methodologies and practices, very flexible (XP, SCRUM, DSDM, Lean software development, Post-agilism, etc.)● Tools: wikis, agile tools, planning● Examples: Twiki (XPTracker), Trac (Timing and Estimation, Burndown chart), planner, OpenProj, dotproject (web)● Commercial: VersionOne and TargetProcess Master on Free Software
  6. 6. Coordination tools: documentation/information● Goal: organize, create and maintain project documentation and information● This repositories allows the fast development, reorganization and sharing of the information and documentation.● Tools: wikis, content management systems● Examples: TWiki, Trac, Mediawiki● Commercial: confluence Master on Free Software
  7. 7. Coordination tools:documentation/information Master on Free Software
  8. 8. Coordination tools: Repositories● Goal: store and manage the modifications of the code and documentation● Key role in the software development● Different types of repositories examples: ● Decentralized: GNU arch, bazaar, git, SVK ● Centralized: CVS, SVN● Commercial: BitKeeper Master on Free Software
  9. 9. Coordination tools: tickets/bugs● Goal: keep track of a pending tasks list or bugs inside a project● Helps to the definition of list of tasks or roadmaps (schedule tools)● It is important for the quality assurance of the projects● Tools: bugtracker, issue tracker● Examples: bugzilla, request tracker, CVSTrac Master on Free Software
  10. 10. Coordination tools: Communications● Goals: direct communication between the hackers in a project● These tools are important because they allow the hackers to discuss and coordinate in the daily work● Tools: mailing lists (archives), chats, instant messaging● Examples: mutt, evolution, xchat, pidgin Master on Free Software
  11. 11. Development tools Master on Free Software
  12. 12. Development tools (I)● Goal: help the hackers to write code, compile it and debug/profile it● These tools could depend on the platform and community that you are working● It is interesting if we can use the same tool for multiple platform/environments● Project development integration (from compilation to testing) Master on Free Software
  13. 13. Development tools (II)● We can classify the tools in the following groups: ● Designing tools ● Editors and environments (IDEs) ● Building systems ● Testing ● Continuous integration (coordination) ● Debugging ● Profiling Master on Free Software
  14. 14. Development tools: design● Goal: draw the design of the software we are developing● It is important to draw the designs in order to communicate and think about the developments● Mainly OO designs● Examples: Umbrello, Dia, ArgoUML, xfig, graphviz, kivio Master on Free Software
  15. 15. Development tools: design● Goal: draw the design of the software we are developing● It is important to draw the designs in order to communicate and think about the developments● Mainly OO designs● Examples: Umbrello, Dia, ArgoUML, xfig, graphviz Master on Free Software
  16. 16. Development tools: editors (IDEs)● Goal: interfaces that help writing the code and integrate other development tools● Different depending on platform and community● Some try to be a multiplatform solution (GNU/Emacs, Eclipse)● Others are focused in one platform (NetBeans, Anjuta, Monodevelop, Kdevelop)● Important in order to do an efficient work to know well the tool we are going to use Master on Free Software
  17. 17. Development tools: building and testing● Goal: help with the construction of software, mainly with not simple projects and development/execution of tests● The main tools here are the GNU autotools (depends on the platform)● Java community uses Ant● Unit and functional testings are usually integrated with the building system Master on Free Software
  18. 18. Development tools:building and testing Master on Free Software
  19. 19. Development tools: continuous integration● Goal: manage the code automatically● One of the core pieces when working in a agile group, allows the fast integration of the code● The project must compile all the time● It usually runs the tests● Examples: buildbot, mozilla tinderbox● It can also integrate repository information and profiling Master on Free Software
  20. 20. Development tools:continuous integration Master on Free Software
  21. 21. Development tools: debugging and profiling● Goal: find the bugs and problems of the projects and solve them● Very important to use some basic tools and its semantics to create good software● These tools depend on the platform and the community, and can be integrated in the IDE● Examples: gdb, valgrind, Electric Fence, kcachegrind, OProfile, Sysprof, gprof, exmap, iogrind Master on Free Software