A lot depends on what you want to achieve
It sounds like you're in a good position, as you can use task management skills rather than project management skills.
I suggest what you probrably need is to evaluate all the project management tools (including Excel!) using the client as the nominal project. Then when you have decided, get training for all your developers in how to use that particular piece of software.
50 employees is not a small number. Developing software, means, you have multiple teams working on different projects. How is it possible that “you don’t work by projects, your clients assign you the tasks and your teams work on it”. A similar tasks related to a single software will form a project. Another set of tasks for other software will form another project. So in your case different developers working on the same software tasks assigned by the client form a project team, and since the tasks assigned are not independent, the task completion is somehow related to each other’s performance (or task completion). Task management is one component of the project management. When all tasks are completed by different programmers, one or two persons would be assessing or evaluating the integrity of tasks in term of module/software/product. Definitely team needs to learn – team management, task management and project management. But all this may not be relevant to all developers, it will depend on level of work they are performing.
There are ample tools available (opensource/free, low cost/ at a good cost) depending on your requirement, and level of management you need. The question has come from you, itself shows that you are lacking somewhere in managing teams performance, task management and monitoring. That way, there is, definitely a need to adopt a tool. May be, to start with, you can start in excel, or MS project. If you need a list of open source tools available, do let me know explaining what and how much management you require to start with.