A
A
AstonMartin2016-08-18 15:47:50
Work organization
AstonMartin, 2016-08-18 15:47:50

How to technically organize web development?

Good afternoon!
In the near future, I will be organizing and managing a small web development department (so far 1-2 developers, then maybe more). We will deal with internal projects, not for clients. While the main platform is Yii2. Need not binding to a physical office.
I have never done anything like this before and I want to do everything as correctly as possible, using modern methodologies and best practices.
Describe, plz, the scheme as it should be? I want everything to be efficient, convenient, manageable.
- Dev & Production server understandable. Do I need to make a local server from the developer? Is it worth it to physically separate dev and production, or are there enough different virtual hosts and databases?
- Where and what kind of code repositories should be made? There will be no servers in our office, and the office itself too;)
- Do you need a specialized task management (like Jira)? Now we use WorkSection to manage tasks. Is it worth using something separate specialized for development? I understand that the same Jira can track commits in git as a process of completing tasks - that would be cool!
- Do I need a separate bug tracker? Dedicated testers are not expected yet.
- Should you use Scrum? Or just stupid to go on tasks?
- Do you need some kind of wiki for the development department? What to write there so that it is not a big overhead for developers and has real benefits.
- What else did you forget?
PS. Another question I can’t understand: should requests for software improvements coming from other departments go through me as a development manager (I evaluate the feasibility and set the task for the developers) or is it better for them to directly contact the developers? Wouldn't that be a waste of time on my part?

Answer the question

In order to leave comments, you need to log in

7 answer(s)
K
Kirill Timofeev, 2016-08-25
@AstonMartin

- Dev & Production server understandable. Do I need to make a local server from the developer? Is it worth it to physically separate dev and production, or are there enough different virtual hosts and databases?

Depends on the scale of the project. At the initial stage, the developer should always have the opportunity to check what was written locally - this is fast and convenient. Like in my case Django's built-in server. In the future, when the project becomes large, you can resort to automating this process through build environments on test benches.
Physically (as I understand it from different pieces of hardware), it makes sense to separate dev and prod only when it is required for the correct functioning of the system (i.e. prod takes up 70-80% of the physical server resources).
When you reach such proportions, the decision will come by itself. Now follow the path of maximum cost reduction (VPS or one dedicated server in a DC).
By the way, I advise you to immediately discard ideas (if such ideas appear in the team) "yes, I have a powerful computer at home, it will pull for the first time", because still have to be transferred soon due to a number of inconveniences.
And as a dedicated server, https://www.soyoustart.com/ie/essential-servers/ with VMware ESXi installed is good. Then spin the virtual machines what you want.
Path 1: Github/Bitbucket in the cloud
Path 2: GitLab/Bitbucket Server on your server.
Need! And it should be from day zero when you started working. Otherwise, when you get stuck in tons of correspondence in instant messengers and Google Docs, you will remember the day when you were too lazy to spend time organizing work.
For whom? For users of your software? See answer above.
Stupidly going on tasks will never work. There is no such self-organization in humans. Get a lot more headache solving other people's jambs in your PM role. Learn methodologies. We use Scrum + TDD.
Need! It's like a task tracker. And the habit of writing down everything according to the project is also needed. Develop API - great! First describe it on the wiki, then start coding. And everything like that. All useful links on the project, access to stands, etc. - everything should be stored not in correspondence or clouds, but precisely in a single starting point.
It is also convenient to use the same Confluence for meetings. There are ready-made templates for this. Allows you to easily record all questions and decisions made.
Git project management methods have been forgotten, such as GitFlow.
Containerization from Docker to simplify / speed up the work of developers / testers / admins.
Should.
Directly with the developer - only to discuss the task already set in the plan, and to set the task - with the PM and the whole team (if Scrum)
This is your direct work.

U
ummahusla, 2016-08-18
@Antonoff

I will answer briefly, use Trello - It plays the role of a task manager, and you can do great agile sprints there. Now there are a lot of different kinds of integrations for Trello and Slack + Trello, which also worked well.
For git - put on a dev server - GitLab or look towards a paid account on GitHub or BitButcket.
Use the bug tracker from the GitLab/GitHub Issue, because it's easy to track how things progress when someone commits with #issue_id.
Well, the communication system must be on top! I would take Slack .
If you like Atlassian products, look towards Jira, BitButcket and HipChat.
But for me personally, GitHub, Trello, Slack and that's it.

N
nikolaj, 2016-08-18
@nikolaj

On the last point:
1) there are usually more tasks than resources for their implementation
2) it depends on the company, but for the most part requests come in such a form that they still need to be brought to the task stage. Sometimes Wishlists fall off by themselves after talking about what exactly is needed or are transformed beyond recognition
3) tasks tend to come at random, and not at the moment when the developer is ready to switch to the next
In general, if you don’t have some kind of exceptional company, it’s better , if the tasks in the tracker fall on you, and only then, reformulated and with priorities, will they go to the developers.
And if not critical, then it’s better to pack it when planning a sprint.

D
Danil Biryukov-Romanov, 2016-08-18
@urtow

- Dev & Production server understandable. Do I need to make a local server from the developer? Is it worth it to physically separate dev and production, or are there enough different virtual hosts and databases?
Costs. Safety at least. As a maximum, the virgins will die, well, ok. Prod will die - ААААААААААААААА
- Where and what kind of code repositories should be made? There will be no servers in our office, and the office itself too;)
Github, gitlab, bitbucket.
- Do you need specialized task management (like Jira)? Now we use WorkSection to manage tasks. Is it worth using something separate specialized for development? I understand that the same Jira can track commits in git as a process of completing tasks - that would be cool!
Trello saves :)
- Do I need a separate bug tracker? Dedicated testers are not expected yet.
Enough Issues in github/gitlab/bitbucket. I was a separate tester and this option was enough.
- Should you use Scrum? Or just stupid to go on tasks?
Decide for yourself - maybe it's worth it, but maybe not.
You have to look at the project and think. Not to say from the outside.
- Do you need some kind of wiki for the development department? What to write there so that it is not a big overhead for developers and has real benefits.
Again, there is a wiki at github/gitlab/bitbucket. For a small project, that's it.
- Another question I can’t understand: should requests for software improvements coming from other departments go through me as a development manager (I evaluate the feasibility and set the task for the developers) or is it better for them to directly contact the developers? Wouldn't that be a waste of time on my part?
And here it will be in the Agile topic. Gathered the requirements - decided what to do in the current sprint and rejoice. All additional requests go to the task pool and you can delete tasks if the project does not need them or lower the priority.

D
Dmitry Kovalsky, 2016-08-19
@dmitryKovalskiy

I would add solutions in the area of ​​Continius Integration.
It is very convenient to see that the branch is broken not only for you, but for everyone + what commit was broken.
It is also convenient to automate the process of publishing both for pre-industry / industrial, and simply for test circuits.

S
Stac, 2016-08-25
@Stac

It is better to ask your questions to your own developers - what and how they use and what it will be interesting for them to see and study.
Until you have your own established best practices "written in blood", you should focus on the tastes and preferences of your people and yourself. You don't want to implement something that no one will use later, do you? What will reduce labor productivity and product quality?
On the other hand, customers may have their own ideas about the development process. Theoretically, you can push and force developers to follow processes and procedures. This usually doesn't work with clients.
You'll have to be flexible.
I would not advise you to use anything that you personally do not know and cannot clearly justify the use of.

A
Artur Nurullin, 2016-08-22
@Splo1ter

If you have questions about such simple things, then I think you should not let people be subjugated.
You don't have the skills yet.

Didn't find what you were looking for?

Ask your question

Ask a Question

731 491 924 answers to any question