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

Thanks for flagging this SlideShare!

Oops! An error has occurred.

×

Introducing the official SlideShare app

Stunning, full-screen experience for iPhone and Android

Text the download link to your phone

Standard text messaging rates apply

Tools

1,001
views

Published on

Published in: Business, Technology

0 Comments
0 Likes
Statistics
Notes
  • Be the first to comment

  • Be the first to like this

No Downloads
Views
Total Views
1,001
On Slideshare
0
From Embeds
0
Number of Embeds
0
Actions
Shares
0
Downloads
7
Comments
0
Likes
0
Embeds 0
No embeds

Report content
Flagged as inappropriate Flag as inappropriate
Flag as inappropriate

Select your reason for flagging this presentation as inappropriate.

Cancel
No notes for slide

Transcript

  • 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