How we do project management
Over time, working over various projects, we have evolved our own approach to project management that has proved quite robust. Almost none of this is original. We learned, practiced and adapted as we grew.
Here is a brief description of what we follow through the beginning to the end of development as well as with post-development maintenance and support.
- Project planning: Before we start execution, we break down the project into small manageable tasks and add them to Pivotal Tracker. Using Pivotal Tracker we can easily assign tasks to a developer, hold discussions with our client over particular tasks, assess effort for each task and calculate velocity of the team and expected finish date for the project. Once we start the project, we also track all bugs in Pivotal Tracker.
- Project milestones: We also setup project milestones based on the project plan. Project milestones have dates which we hold ourselves accountable to.
- Demo on staging server: As the tasks are implemented, we deploy them on the staging server, which is typically almost every day. Then we invite our client to test it, provide us comments and feedback or even change features directly in the project plan. We welcome full participation in the project execution. Since, our complete task planner and bug tracker is open to the client, all our technical and implementation related discussions are in the open as well. Also, we develop unit and integration tests as part of the normal course of application development to make it easy for us to refactor and add modify features later.
- Weekly status report: At the end of every week, we send out a status report listing all the work that has been done in that week, what to expect in the next week and if there are any red flags or blockers in the project execution which are beyond our control e.g. access to an external API, inconclusive discussion on any particular feature etc.
- Production deployment: Once the project is finished, we configure and deploy it on the production server and after a round of final testing, make it live. We also setup monitoring, metrics, database backup, log rotation and exception notifier on the production server.
- Warranty period support: During the post-production warranty, we are available 24×7 on a rotation basis to answer any questions, provide help with running the application or fix any bugs that are found. Since we install exception notifier, all exceptions that happen on the production server will
raise an email to our team and we fix them proactively.
- Weekly Review of metrics: As we learned, not all bugs or problems result in exceptions. So, we also do a weekly review of operational metrics with our client to access the health of the running application and the server and do any upgrades or fixes that are required.
- Post warranty-period support and operations: From the post launch reaction, clients can then assess how they want to run the operations for the application. Typically, we can then continue with the weekly metrics review, 24×7 on-call rotational and regular bug fixes and maintenance. Also, if needed we then start the work on next release in parallel.