Do you outsource programming tasks? Many of us do. However, problems frequently arise in outsourced programming. The people you select or the company you select might not be strong enough to handle the most difficult parts of the job. Even if only 10% of the job is tough, if they can’t do that 10%, then your job is sunk. Failing to meet deadlines is another common problem. It is often the case that an outsoruced company will just quit in the middle of a project that is too hard and keep you waiting month after month. I call this, “The never ending job” and that situation has happened to me many times.
But, communication or the lack of it is what can kill many IT outsourcing deals. You need to make sure that all team players have access to the same files and the same version of files otherwise you will not be on the same page in any sense of the word. You also need to have a system for keeping track of who is doing what, how far along they are, what commentary they would like to give, and when they finished various pieces of the puzzle. If you are managing multiple programmers on a task, and they just don’t get back to you, (which is typical for programmers) put in the contract that you will deduct a certain amount from their pay every time they “just don’t get back to you.”
Many software companies will rant and rave about how much better their software for job tracking is, and then not even use it. Or they will not tell you how to login. The sophistication of the system being used for project management tracking is not as important as making sure all of the team uses it in a punctual manner. If they are supposed to login twice a day for a progress report and just don’t login, then the system is a waste.
There are various types of software out there. Procore is a provider of construction project management software. There are others like smartsheet which uses a spreadsheet format, Clarizon, Asana, Jira, Genius Project and more. Agile is quite famous in the software crowd.
Here is a link to some reviews of various IT project management systems
http://blog.capterra.com/free-open-source-project-management-software/
My suggestion is that you could come up with your own customized project management system. That way you could tweak the system to meet your own company’s needs. It might cost ten thousand to create your own system and more to customize it after the fact, but a good system will keep your projects running smoothly.
Jeremy’s tips for a software PM system
(1) Have a timing system that has windows of time when a programmer is supposed to login. If they are late, or just don’t login and report, then create a “late log” where the boss can deduct from his pay. Programmers are notorious for not getting back to people, so you have to have a system where they get crucified if they don’t.
(2) Have fields (data entry) for the various components of a job, or particular tasks. Then have fields for the various individuals who are working on the various tasks. You might need fields for “subtasks” as many jobs can be broken into parts. There can be an assigned date for each task, a deadline, and room for commentary about each task and subtask which the programmer could add. You can also have quality ratings that the management could add at various stages of the project with information ranging from the quality of the coding, to the quality of the commenting to punctuality.
(3) Data Queries could be to see all jobs, jobs that have not been assigned, jobs that have been assigned, but are not done, as well as jobs that have been assigned, but were not commented on time (which is a red flag and indicates where management might need to focus.) You can also show the done jobs. In real life, this type of job tracking can also be done on paper if you have a good form and are neat in your handwriting. But, having a computer system makes it so much easier to keep track of everything, especially if there are reminders to tell you what you need to be checking up on.
(4) Late info & quality queries
If you use the system for multiple programmers, you could come up with very detailed information for how punctual various programmers are, and how good the quality of their work is. You can decide who gets hired, fired, demoted, promoted, etc. partly based on that data.