Chaos in Web Development? Tools to Streamline Projects in Your Company

Droptica
12 min readMay 28, 2024

--

Well-chosen tools and processes in a web development company are one of the main factors affecting customer satisfaction. Without taking care of this aspect, projects are often delayed, quality is not maintained, and clients aren’t satisfied. See how, based on more than a decade of experience at Droptica, we’ve selected tools to help build web apps and websites. In this blog post, you’ll find a ready-made list of solutions to implement right away in your company.

To begin with, determine the goal of implementing a web development tool

The decision to choose a tool or implement a process should be tied to achieving a specific goal. So, before you begin to put the solutions from this article into practice, review the list of purposes below and consider whether the tool will help you achieve any of them for your organization. If you don’t clearly specify the goal, you’ll never reach the point where the implementation can be considered a success.

Examples of the goals for implementing tools to support the work of a web development company:

  • Reducing the time to complete tasks (here, it’s best to specify what type of tasks this goal addresses).
  • Increasing the value delivered to the client over time, e.g., for customers who regularly pay monthly for work time (e.g., if they have a 40-hour package purchased, how can we deliver more tasks/functions to them in that time or resolve more bugs, etc.).
  • Improving the timeliness of project implementation.
  • Streamlining communication. It’s useful to define how to measure such a goal, e.g., by reducing the number of customer requests that weren’t completed in the project or measuring internal communication with a survey, and repeating the survey after implementing the tool.

Good equipment reduces work time

Tools aren’t just software. Hardware is equally essential. At Droptica, we selected our hardware from the beginning so that working on it wouldn’t be a bottleneck (e.g., waiting a long time to build a project or loading a large graphics file for a long time).

Projects with a more extensive database (tens or hundreds of gigabytes of data) are good examples of this.

If we reduce the database import time from 30 minutes to 15 minutes and perform such an import by a programmer once a week, then in a year, we’ll save 15 minutes x 50 weeks = 750 minutes (12.5h). If we have 10 programmers, it’ll be 125 hours per year, which is already almost one whole month of work for one person.

With some equipment changes, we had improvements in importing and building projects from 60 minutes to 30 minutes, and these are even higher numbers.

At Droptica, we currently use two types of laptops:

  1. Macbook Pro 14 (currently the latest processor is M3 Pro or M3 Max) with 32/36 GB RAM,
  2. HP Elitebook (currently the latest series is G11) with 32 GB RAM and an AMD processor.

Our company’s developers can choose whether they prefer to work on macOS or Ubuntu and get the proper hardware based on that.

In the case of the HP Elitebook, we recommend the AMD processor, as it heats up less than Intel. The windmills aren’t too noisy, and you can run for a long time on battery alone (our tests yield 5–8 hours on the laptop alone).

In addition to the laptop, we use additional monitors — two full HD monitors or one larger one (27-inch 4K or 34-inch ultrawide).

In our intranet system, we write down the Geekbench Multicore score for each laptop listed in the hardware inventory. We regularly check which laptops have the lowest score and change them to newer models.

A single source of truth to streamline communication

Nowadays, the hybrid or remote working model is standard in many organizations. Companies have many online communication tools and use them. Sometimes, however, there are so many of them (email, project management system, text messenger, video messenger, online documents, etc.) that information is scattered in too many places, and it’s hard to remember what was saved and fixed where.

That’s why it’s essential to specify a main channel of communication during a project. This channel should provide general information about the project’s status and detailed information about each ongoing task. At Droptica, such a place is Jira.

If we establish something in a video call, an email, or a Slack, it’s always ultimately reflected later in the form of a task in Jira. Once a task associated with an action to be performed is in the Jira system, that’s where we keep all the related discussions. This also applies to communication with the client.

Designating one primary communication system and auxiliary systems helps control communication chaos. In a situation where, for example, four people are on the Droptica side, and three people are on the client side in a project, communication gets very busy.

Project management in Jira to keep everything under control

At Droptica, we chose Jira for project management for two reasons:

1. This is a system familiar to many of our clients.Re 1.
2. There are many options for customizing Jira to meet the needs of a company or a particular project.

Re 1.

We run projects in Jira, and there, we invite our clients to see precisely what is happening during the project. We set our work up so that it’s always transparent (what we’re doing and who specifically is working on the tasks). If the client is already familiar with the system, there is no need to educate them on how the tool works. This cuts down on our time at the start of a project and is a big help to clients when they hear they can communicate with us in Jira.

Re 2.

Jira provides a huge amount of configuration options. In my opinion, number one is JQL, a query language that retrieves tasks from the Jira database. JQL queries can be saved as filters and used later, creating dedicated dashboards or boards in the project.

Project structure in Jira

We divide projects in Jira in several ways. Each project is assigned to a client, and the project name includes the client’s name, such as “[Acme] Intranet system” or “[Droptica] Marketing.” As you can see, we also have internal projects. All activities at Droptica are organized around projects in Jira.

Such naming makes it easy to navigate through the project list and find projects assigned to a particular client (often, our clients implement several web systems with us, and each has its project in Jira).

Workflow in the backlog

By default, a project in Jira has tasks in an open sprint and a backlog. In the Backlog section, you can create future sprints and schedule tasks. We use this functionality to split tasks into several groups to better plan future sprints. We have this division in most projects and also in internal activities.

Sections in the backlog in Jira:

  • Ready to start / estimated — tasks here have a fully prepared description and time estimation. All tasks that go into a sprint must have an assessed completion time in order to plan well how many tasks we can fit into the sprint.
  • More information is needed — here, we have tasks for which the description isn’t complete, and additional questions need to be answered in order to understand what has to be done and estimate the time well.
  • To estimate — in this section are tasks that the project team should evaluate or ask additional questions and move to the “More information needed” section.
  • Icebox — this is where we keep the tasks we don’t want to do right now, but maybe we’ll come back to them in the future.
  • Backlog — this section is treated as an inbox, and we try to clean it regularly (preferably once a day), relegating tasks to one of the other sections.

Dashboards in Jira

Each Project Manager has between 10 and 20 client projects under their care. By project here, we mean both projects implemented by a full-time team and maintenance projects where the client has a package of monthly hours (e.g., 40 hours).

We mainly use two types of dashboards at Droptica:

1. Dashboard per Project Manager: on one dashboard, we collect information from all their projects.
2. Dashboard per project: on one dashboard, we collect information only from a particular project.

The purpose of dashboards is to get information quickly:

  • Which tasks should be implemented next?
  • Which tasks need to be analyzed and estimated (backlog)?
  • Are there any tasks that are running over time compared to the estimate?
  • Are any tasks running too long (past the due date specified in the task)?
  • Burndown chart to check if task execution is going according to plan.

Depending on the Project Manager and the project, as well as the client’s specifics, the dashboards are expanded with additional information. You can find sample dashboards at the end of this article.

Boards in a project in Jira

The default boards in a project in Jira show tasks grouped by assignment to people. Depending on the project, we change this setting and most often organize tasks according to this order:

  • P1 — critical errors of type P1
  • Overdue — tasks with an overdue task completion date
  • Highest priority — tasks with the highest priority
  • High priority — tasks with high priority
  • Created X+ days ago — tasks created X days ago (set the value depending on the project, e.g., for 15, 30, 60 days)
  • Medium priority
  • Low priority
  • Lowest priority

Such a division allows the whole team to see what is currently on the project most important to do and what the team needs to focus on. The Project Manager doesn’t have to explain the priorities. Everything is visible on the board in Jira.

Plugins for Jira

The two main plugins we’ve installed in Jira are:

  • Timesheets Tempo — mainly for viewing and creating reports related to logged work hours.
  • Activity Timeline- for planning the team’s work for the coming days and weeks.

We also have a custom application written in Symfony. You can find a description of its functionality in the toolkit at the end of the article.

“Inbox Zero” in the mailbox reduces the time it takes to handle emails

As in Jira, we also set a way to manage emails in the mailbox. We aim for an “Inbox Zero” state.

We sort incoming emails into 3 folders:

  • 01 Action Needed — here are emails that require a response, but it’ll take more than 2 minutes;
  • 02 Waiting for — here are emails where we’re waiting for someone to respond;
  • 03 Someday — here are emails to do “someday,” not urgent tasks.

We also use filters to automatically categorize emails. The most common filters are these:

  • Per client — to have all emails from a given customer in one place.
  • Notifications from Jira.
  • Calendar notifications (e.g., someone has confirmed attendance at a meeting).
  • Emails where we’re in the CC or BCC field.
  • Emails to general email addresses (e.g., to [email protected]).

Filters and “Inbox Zero” allow us to manage emails more efficiently and quickly.

Slack — a hub for fast communication in remote work

We chose Slack as the center of our text communication shortly after it was released. Before that, we used the now-defunct HipChat app from Atlassian.

Slack was, on the one hand, a simple text communication application (if you remember IRC, the general concept of channels and private messaging is similar here). On the other hand, it looked prettier, was more pleasant to work with, and had the ability to add integrations, the number of which was steadily growing.

Today we cannot imagine our daily work without using Slack. It serves us not only for communication regarding client projects. It’s also the main way to communicate about internal projects, as well as non-work related conversations (e.g., to discuss series, cars, electronics, etc.).

Slack has integrations with numerous third-party applications in our company, so we can receive important notifications in the messenger. See the end of the post for details.

No perfect communication can be done without a video call — Google Meet

We use Google Meet for video calls. We have a rule that every meeting must occur with the camera on. When working in a distributed team, this makes its members get along better and work more efficiently.

For most projects, we have video calls every day. These are usually short meetings of 5–15 minutes. For longer meetings, we often use the tldv.io app, which creates text notes of the meeting for us later.

Google Workspace perfectly complements the other tools

At work, we reach for the Google Workspace suite. In addition to Gmail and Google Meet, we also use text documents and spreadsheets from Google’s suite on a daily basis.

We’ve prepared a number of document templates that are used for project work, including:

  • Project estimates (time, cost, resources, schedule);
  • Project budget control;
  • Meeting agenda and meeting notes;
  • Definition of Done, Social Contract;
  • PDCA documents for projects, teams, and the company (goal planning and goal control).

We have many more templates. We also improve them regularly, as they organize our work and shorten the time it takes to complete tasks.

Create code quickly with good tools

Code development is the task that takes the most time in our company, so improvements here affect the amount and quality of code we deliver to clients. The primary tool for code development is an IDE/text editor. At Droptica, most people use PHPStorm, and some use Visual Studio Code. We have a list of recommended plugins and extensions for both applications that make code development even more efficient. You’ll find a summary at the end of the article.

Since the beginning of the creation of Github Copilot, we’ve been using it regularly to help us make code. According to our estimates, the tool speeds up the work by 20–40% depending on the project and the type of application to be done.

We also have a repository of universal modules and classes that can be used in many projects. This repository is constantly growing, making it faster and cheaper for our clients to develop more applications.

Such a big ready-made is our open source project Droopler — SEO friendly site builder. We use it as a starter for most corporate website projects. It saves us hundreds of hours of work and gives clients a much better deal than building everything from scratch.

We also use other off-the-shelves (so-called Drupal distributions), depending on the client’s needs. For publishers and media we use Thunder CMS, for intranets and online communities we use OpenSocial, and for ecommerce systems we use Drupal Commerce, Sylius or Magento, matching the platform to the specific case.

We use DDEV to work locally. This very fast-developing tool makes it possible for the developer to focus on creating code rather than on the problems of deploying the project locally. Starting a project or adding a new developer to a project takes very little time. Without DDEV, we wasted a lot of time on non-programming tasks.

Turbo-drupal is another enhancement that reduces developers’ time. It’s a starter for new projects on Drupal, which has DDEV, tools for automatic code checking, automatic updates to Drupal and modules, and integration with Platform.sh.

Platform.sh is our main hosting platform. It’s not just simple hosting but an entire platform with huge configuration options, the ability to add multiple instances, management from the console (CLI), and many other options. Switching to Platform.sh was another improvement that reduced the time we spent on application development.

See the complete list of website development tools used at Droptica

In addition to this article, we’ve prepared a diagram with a complete list of the tools we currently use at Droptica for web development. We included plugins for PHPStorm and Visual Studio Code, sample Jira dashboards, sample JQLs in Jira for dashboards and boards, and an example of a PDCA document.

Website development tools — summary

Our set of applications and processes changes regularly. The list of solutions we use today will probably look different in a year because we’re constantly developing and looking for new improvements. However, based on more than ten years of experience, we’ve already developed tools and processes that eliminate potential problems in building web applications and reduce their delivery time. We share them above.

It’s definitely worth testing and experimenting within your organization — verifying what works and what doesn’t at all. At Droptica, we have experience partnering with digital agencies, so we can help you choose right solutions. And if you use specific software and hardware in your organization, feel free to share your toolkits or processes in our social media posts (on Facebook, Linkedin, or X) about this article. It’ll certainly be helpful to other readers.

Originally published at https://www.droptica.com.

--

--

Droptica

Solid Open Source solutions for ambitious companies. We design, develop and deliver business web apps changing the status quo with Drupal, Symfony and React.