📜 ⬆️ ⬇️

Tools that we use for team development.

This article will be of interest to developers who decide to try themselves in a team, as I once did with my real colleagues. I’m not going to tell anything new, just share my modest experience and, I hope, push someone to do the same in the comments.

When you work alone, you can do with a simple notebook. Notepad ++ for writing code and a sheet of paper with a pencil for notes. Of course, I exaggerate, but, in fact, this is the case. Team development is a little different.

Project Management Systems

Here you need to constantly communicate with other participants in the process, while it is necessary that the history of correspondence be preserved and that it is easily accessible. To do this, use the services and web applications for project management . In our case, this is Redmine. Before him tried TeamLab. There is both a SAAS version and a web application for installation on your server, by the way it opensource. But the latter somehow did not catch on. Now there are a lot of similar tools, both paid and opensource. They help distribute tasks among developers and set priorities for them, track time spent and more.
')
Separately, I would like to say about role management. For each such role, you can customize access rights. Take a special case. By default, redmine has a reporter role, i.e. a person who only reports problems found without taking part in solving them. We set it up so that the user with this role sees only projects in which he participates. So we managed to involve customers directly in the development process. If they find bugs or want to make improvements, then go into Redmine and add tasks on their own with the corresponding tracker (bug, improvement, development or support). Of course, the manager controls all this and, if necessary, corrects it, as well as preliminarily conducts briefing with each client. You can also write instructions for them using the Q & A plugin.

As they say, meet on clothes. That's why redmine is not impressive at first glance and looks dull compared to its paid counterparts like JIRA, basecamp, etc. This is a common thing for opensorce. But for redmine there are beautiful themes, with high quality, for example A1 .

Also, Redmine can be turned into almost full-fledged CRM using the free RedmineCRM plugin, which adds contacts, deals, notes and sending messages directly from the interface, in conjunction with free Invoices (accounts), Finance (Finance) and People (people).

The same manufacturer also has a Helpdesk plugin for organizing customer support. It is paid, but not expensive - from $ 156. Of course, this is not the best solution on the market, but its undoubted advantage is full integration with redmine.

Version Control Systems

Also in team development, there is the issue of versioning. If two developers simultaneously opened the same file and started editing it, then saving the results will inevitably cause problems. The second simply overwrites the changes of the first. To avoid such situations, there are version control systems , such as SVN or GIT. This is another indispensable thing for team development.

In SVN (I have no doubt that in GIT too) there are extremely useful hooks - scripts that are triggered on a specific event. Among them is a post commit. When executing a commit, this hook loads all edited files to the specified location on the server. This is very convenient, for example, when working with typesetting. Sverstal layout, made a commit - gave a link to the customer. If he found bugs - he corrected, made a commit, answered that he could be checked. No downloads of archives to the server, which with a large number of edits take a lot of time.

IDE

Since I started talking about automating routine activities, it would be wrong not to mention the IDE - (Integrated Development Environment). Strangely enough, but many developers, especially programmers, use a primitive software, such as Notepad ++. I have nothing against this program and I often use it myself when I need to quickly edit something. It loads instantly, this is a definite plus. But when it comes to daily use, such miniature applications should give way to a full-fledged IDE with all their advantages. I personally use PHPStorm. I will list only the most useful, in my opinion, functions:



It goes without saying that PHPStorm was developed specifically for PHP programmers. If you are working in another language, you can choose the IDE you need for your IDE from the same developers (JetBrains) on this page. At the moment they have programs for the following programming languages:



Cloud data storage

In addition to text files, when working in a team, you also need to exchange binary files (for example, images). For these purposes, the version control system makes little sense to use: in the event of a conflict, it will still not be possible to merge the two files, with a large number of revisions, the repository will have a huge size. In the case of PSD files, which often weigh 20 megabytes or more, this problem generally becomes critical. Therefore, cloud storage is better suited for such purposes. We use Dropbox. This service has a very worthy alternative - Google Drive, which has several advantages, for example, a good system of distribution of access rights to files. This can be very convenient if you need to give someone access to the materials on the project, but that while he could not edit them. But, unfortunately, when we chose such a tool for our team, the latter was simply outrageously raw. So we pummeled a bit, spat on and switched to Dropbox.

We also use dropbox to demonstrate design to customers. This is very convenient - I downloaded the PNG thumbnails of the layouts into a separate folder, clicked on “Share link” and got a link with such a gallery . Images need to be loaded in PNG, because JPG layouts dropbox additionally compresses and they become very poor quality. The main advantage of this method of demonstration of design to the customer is that he always sees the latest versions of layouts for the same link. For example, the designer made edits to the layouts, updated thumbnails and they were updated in the gallery by the link that was previously given to the customer. It remains only to tell the customer to refresh the page in the browser.



Of course, this list can be expanded and expanded. So I’ll be happy if colleagues in the comments share their secrets on team development optimization.

Source: https://habr.com/ru/post/178827/


All Articles