Answer the question
In order to leave comments, you need to log in
How does the web development process work in large/industrial companies?
Good afternoon. I work as the head of the development department of several people. The department is at a certain stage of development. For a long time I have been tormented by the question: "How do all the processes I created look like in large companies where development is carried out on an industrial scale?"
Perhaps there will be an immediate answer: "It's different for each project," but I would like to know what are the general trends.
1.What development tools do programmers use?
2. Programming is carried out on local or remote machines. If on local then what is done if the application uses heavyweight services (possibly developed by the company itself), if on remote then how is synchronization of the code with development tools ensured?
3. How is the process of working with hard currency and rolling out to the industry?
4.How is the testing process, does everyone use selenium for automation?
5. How is the task distribution process arranged and with what help?
6.Is there a division of roles for the development of new features and projects and support for the launched ones?
I apologize for the large number of sub-questions, but I think that it will not be correct to separate them, because the question is complex.
Answer the question
In order to leave comments, you need to log in
Well, in general, I saw different organizations in different companies, the general points are usually the following:
1. A programmer should not be forced to use a specific tool if it is not convenient for him and he can use others without complicating teamwork and with the same efficiency.
2. It will depend on the projects, usually either local virtual machines are used, or a common development server (several servers), where each has its own copy of the project (s). On the server, you can also use virtualization for convenience. Heavyweight services usually also have a test server, as a rule, where you can connect, or it’s worth using mocking in general. Development servers are usually local, so there are no particular problems with synchronization: shared folders, sftp, nfs, whatever your heart desires.
3. The process of working with VCS
often depends on the product, but generally accepted standards and conventions can be used, read here habrahabr.ru/post/106912
, functional, and manual testing. In serious companies, there are usually testers, selenium is used where there really is a benefit from it (sometimes it is really easier for testers to manually pierce the necessary things).
5. There are also a lot of tools here, they choose based on the list of functions that are needed for work. I most often had to work with redmine, phabricator.
6. It also depends on the team, what kind of developers it has, who can do what better - this is the work of the team leader, to achieve maximum efficiency from the team. I am not a supporter of dividing tasks according to this principle, it is better to divide by the area that the task affects (by modules in the project, frontend or backend, etc.)
And, of course, you need to take into account the specifics of projects and teams, if any of this only hinders, maybe it is worth abandoning it. And often you have to implement something of your own in order to increase the efficiency of the team, complete the standard development and task control tools, hang different hooks on git, etc.
1. How convenient.
2. On local. For heavy servers, there are development servers. But in general, everything can work locally.
3. Use git. There is a master branch for development. For rolling out to production, versioned brunches are assembled after a full testing cycle. In the future, for any task, its own branch will be created and merged into the master. Screwed jenkins for ci + code quality control system. The layout is done through phing in manual mode.
4. Basically phpunit for unit tests. It is also used for integration tests, but they are carried out manually due to their specifics. There are API tests for java. We also tried behat behavioral tests to check object access matrices depending on roles - we didn't like it. We do not use Selenium yet, there is no need.
5. Redmine. I don’t even know what to comment on, everything seems to be clear.
6. No. Not yet the same level.
Development environments: from vim to webStorm. Computers - mostly MBA 13'.
It’s convenient that you can take home to work, a full-fledged unix (that is, there are no problems with node, imagemagic and other tools). Nice operation.
Git+github as code repository and development through pull requests with reviews.
To run tests and build examples: TeamCity + selenium grid.
Didn't find what you were looking for?
Ask your questionAsk a Question
731 491 924 answers to any question