Your SlideShare is downloading. ×
Upcoming SlideShare
Loading in...5

Thanks for flagging this SlideShare!

Oops! An error has occurred.

Saving this for later? Get the SlideShare app to save on your phone or tablet. Read anywhere, anytime – even offline.
Text the download link to your phone
Standard text messaging rates apply



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

Report content
Flagged as inappropriate Flag as inappropriate
Flag as inappropriate

Select your reason for flagging this presentation as inappropriate.

No notes for slide


  • 1. Development & coordination Tools Juan José Sánchez Penas Master on Free Software
  • 2. Coordination tools Master on Free Software
  • 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. 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. 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. 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. Coordination tools:documentation/information Master on Free Software
  • 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. 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. 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. Development tools Master on Free Software
  • 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. 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. 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. 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. 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. 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. Development tools:building and testing Master on Free Software
  • 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. Development tools:continuous integration Master on Free Software
  • 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