Project Management
Software development usually requires the ability to track many details, assign tasks to individuals, prioritize tasks, and coordinate everyone’s activities in order to produce a quality solution quickly and with minimal waste of time. Many companies provide software tools to track much of the activity and those tools increasingly integrate with email solutions, communication platforms such as Slack and Microsoft Teams, as well as DevOps tools such as Microsoft DevOps and GitHub repositories. With a large selection of tools to choose from, it is worth the time it takes for most organizations to evaluate several sets of products to identify what tools have the features that will help them the most. Although some small teams or solo developers may find a simple Trello board or pen and paper are sufficient. Some tools can integrate with documentation tools to help produce customer documentation as well as documentation in code and for APIs exposing development information to other developers. A good selection of tools can not only help increase productivity, they also may limit how you would ideally like to manage your development process and visualize features developers are working on versus tasks unrelated to development they may be spending time on. Bug tracking systems are a common software solution teams implement and they may choose to integrate some of those with their development process; whereas other teams keep bugs managed separately. Even within an organization, an approach that works well for one team may not work well for another. The organization then must decide if it is best for each team to use different tools to optimize the development process for each team, or if it is best to require each team to use the same tools to gain the value of consistency across teams. Some organizations require not just tools, but perhaps processes like scrum to be used by all teams to facilitate comparable reporting across all teams to a product management office. The company must decide which is more valuable: processes that make their development teams most efficient, or processes that make PMO aggregate reporting most efficient.
The tools we use to track our tasks impacts our decisions because the tools often focus us on specific things, which is good in some cases, but not as good in others when the tools don’t remind us or raise our awareness of other, more valuable tasks. When we have multiple sources, such as a kanban task board, bug tracking system, email inbox, and slack channels all providing us things we could do, it can be easily to overlook items and inadvertently perform less valuable tasks. Tools often offer ways to prioritize items, but don’t account for the fact that priorities can change, can have different priority to different people, or that the priority of some items change depending on what other tasks may currently be performed. (If we need to reboot the server and incur downtown, let’s replace the RAM while we are at it, or remove the http headers) (If we are doing feature A in our shopping cart, we should go ahead and do feature W also).