loading...

How do you handle big projects with latest tools?

entrptaher profile image Md. Abu Taher 👨‍💻 Updated on ・2 min read

Say you got a app development project, and you have a small team to work on this project. I am curious about the project management with latest tools available.

There are key points/issues like,

  • Communication
  • Design/Prototyping
  • Code versioning
  • Todo list
  • Issues
  • File storage
  • Secrets
  • and so on

I have yet to find an in depth post or resource about this where one shared their real life experience about app development. If you got a link, or any experience to share, it might be valuable to others.

Even though the answers will vary on many factors, the questions might include:

  • How do you communicate with clients? Email? Chat room? What happens if client doesn't like to chat but continuous emails just makes things messier? And, if it's chat, how do you keep important points listed out somewhere? Slack and such is very good for realtime communication. But...
  • So then you got code on github, same with issues and to-dos. How does client get proper update about it? Do you comment it or just use chat? Then what happens when you update on github, on issues, and move todo card for same issue/feature?
  • Maybe you use google drive and/dropbox for storing data. How do you save the secrets for code, and other logins around? Obviously you do not store all of them in just your mail or something? Maybe you use git-crypt, but keeping track of all ssh keys and all must be really bothersome.
  • Where do you make your project todo? Does client make an issue and then you make it as a todo? vice versa.

Long questions short, How do you manage a project around these days with everything without going crazy?

All of these are small and common project management questions. Which can easily be solved if we have more resources about it.

I went ahead and found some posts and resources,

  • Basecamp says they will handle message, chat, schedules, storage and such in one package. There are others like that too, right?
  • On this post, how Shawn Adrian used Slack, Trello and TeamGantt for project management. But I did not find anything about code versioning and file storage.
  • On this post, Lewis Ngugi shared how they used Slack, Trello, TeamGantt, Illustrator, Photoshop, Zeplin, pretty much close to what's missing.
  • Old post but helpful where he explained how Github, Slack, Trello fall short for collaboration.
  • The guys from Hubstaff made a post explaining trello. Well, still nothing for total communication.

Posted on by:

entrptaher profile

Md. Abu Taher 👨‍💻

@entrptaher

Full Stack Developer, focused on web automation, open source enthusiast and contributor. Passionate about programming, specializing in JavaScript.

Discussion

pic
Editor guide
 

Communication: Slack, rooms per project + rooms shared between client and dev team
Design/Prototyping: Sketch+Zeplin and InVision
Code versioning: Bitbucket (GIT)
Todo list and Issues + whole projects managment and time tracking: YouTrack
File storage: Google Drive and Synology NAS
Secrets: Lastpass
CI + staging env: Bitbucket Pipelines and Dokku

Over 9 years we did a long way from Redmine to Youtrack, from emails to Slack etc. but in general we are happy now with tools we are using internally. We've also developed few smaller tools/scripts/reports that we are using with the tools from the list above.

 

Thanks for sharing. Can you share your story for one of the projects? Like how everything was handled between all these tools?

The reason is, sometime you chat here and there, but then have to update other places as well. I feel there are not enough guide and can be overwhelming without everyone sharing their experience.

 

Most of the tools has own API and for our own, internal needs we created few small apps to communicate between them. For example you can report an issue to Youtrack directly from Slack using bot command and selected text, CI server is sending notification to specific Slack room each time build succeed of failed, some reports for clients or project managers are generated every day/week and send by email.

I would say that's something every organisation need to figure out. Create some rule, test it, try to automate it or reject it - that's what's working for us.

Tools won't replace procedures and won't teach people to act in a specific way.

Exactly, there are not many guide and story for this specific way you mention of. That's what missing right now, a very good guide for organizations and productivity.

 

Communication: Private rocket.chat server, Developers have their own chat room alongside with a reporting manager, and clients have their own room with a senior + junior manager combo. Occasional Email is unavoidable.
Design/Prototyping: Figma
Code versioning: git, hosted in github
Todo list: Private taiga server, Devs can use whatever they want to personalize it. Todo list is usually created with the collaboration with the working developers + team lead + manager.
Issues: Github issues + Taiga issues depending on who is creating the issue.
File storage: Google drive
Secrets: Depends.

We are much more focused on Rocket.chat and Taiga because of some key factors.
Rocket.chat: It has the guest mode where users can see each other unless they have the permission, Which is necessary because we are hosting different clients from different countries alongside with some global enterprises and developers from different projects and different backgrounds. Isolation is necessary for us.
Note: You can suggest me better tools for this use case

There are a few reasons to choose taiga over something else, Which are,
It's open source, so we can modify to our need and minimize our costs by a lot. Managers need to have gantt chart where they have quickly get an overview of what's being done or not. Also, the sprint + issue management tool is quite nice.

 

Well, that's pretty much the tools.
But how do you handle the communication between these tools?

 

The simplier version happens kind of like this.
The initial communication with the client about the project happens where the client and management team prefere, skype, email maybe in a face to face meeting. After bringing in a project a senior manager from client service opens a new project in taiga with the BTS and required information that a developer might need. After fixing up the team members for that project a few meeting happens between the developers and the manager to create a delivery plan. After that the lead developers for that project specific team gets the github repos that the team needs and tools around that with uniquely identifiable project code. Along side with a rocket chat room, different todo board for the required project (ex; back-end, android, ios )
As discussed earlier developers starts to create their task backlog and project itself and stars doing their own jobs. Cross team issues such as frontend to backend, Management to developers gets listed in taiga issue section with a brief description. Managers generates weekly update for the client via some internal and taiga specic tools.
Usually a developer might not even need to have a talk with the client as it's done by the client service team.

Note: At the beginning of the project the client, designers and the assigned manager work really closely through chats, phone calls or whatever necessary to fix up the project spec and the final design so that the developers can work with a almost final state of the specification.
I am marking this as almost because no matter what happens, a client might want to change a few things after the app finished developing.

Wow, many things for sharing insights.

 

Communication:
Slack internally. Skype with customers.
Design/Prototyping:
Photoshop, Sketch.
Code versioning + Issues + CI:
Gitlab.
Todo list:
Asana for tasks/kanban/project management, Clockify for time tracking.
File storage:
Nas + Dropbox
Secrets:
Enpass.

Seems like a pretty good stack but we're still testing some of the tools I mentioned.
Small company, ~10 people.