Software Development and Project Management Best Practices
January 12, 2022
The software development environment at most organizations has drastically changed over the past few years and will likely continue to evolve to keep up with the fast pace of technology advancements. As customers and end-users increasingly demand rapid delivery of software that works well and performs, development teams have had to find a way to release high quality software products fast and frequently. The older and traditional methodologies like ‘waterfall’ project management haven’t kept pace with today’s environment, so many organizations are turning toward one of the more popular project management styles in use today called ‘Agile’.
Agile software development and project management have two main units of delivery: releases and iterations. A release consists of several iterations, each of which is a micro-project. Features, enhancements and defects and other items are organized, estimated and prioritized and then are assigned to a release. Within a release, work items are assigned, based on priority, to an iteration.
Each iteration results in a working, tested and accepted release containing the associated work items.
These development iterations are assigned a fixed short deadline that is generally the same for all iterations. By doing so, developers can produce new, tested and running pieces of the project so that immediate feedback can be provided. This process helps to keep the development team on track and on schedule. The production of these iterations also provides information needed to understand important schedule information such as, “How much work did we accomplish last month/quarter,” “How much work did we accomplish compared to the month/quarter prior,” and “How much work do we expect to complete in coming month/quarter?”
There are many nuances in the art of Agile project management and software development. This article will not attempt to cover the Agile methodologies, but instead will focus mostly on the mechanics of tracking the software iterations mentioned above.
Stages of the System Development Life Cycle
There are seven primary stages of the modern system development life cycle. Here’s a brief breakdown:
- Planning Stage
- Defines the problem to be solved, the scope of the project as well as objectives for the new system.
- Feasibility or Requirements of Analysis Stage
- Gathering specific details for the system. Define prototypes and system requirements and other research/analysis.
- Design and Prototyping Stage
- Design of the user interface, system interfaces and network storage or database requirements.
- Software Development Stage
- Developers will write the code to satisfy the requirements.
- Software Testing Stage
- Testing of the software that has been developed to insure it meets the requirements defined and is ‘bug’ free.
- Implementation and Integration
- The software is integrated into its final environment and the software begins to be used in production.
- Operations and Maintenance Stage
- The software life cycle doesn’t end when it reaches the implementation phase, rather the developers move into a maintenance mode to handle issues that may arise during the use of the software. Also, other changes may be proposed which might require modification of the software which will go through a miniature version of these outlined phases.
Agile software management encompasses all the above phases of a software development life cycle. In fact, each small iteration of development defined in an Agile environment (with the exception of the ‘Operations and Maintenance’ stage)_can be found within an Agile user story or iteration.
Responsibilities of the Project Manager
Project management is an important function in the software development process. The primary duties of the project manager are (or should be) as follows:
- Plan and develop the project idea.
- Create and lead the development team.
- Monitor project progress and set deadlines.
- Solve issues that arise.
- Facilitate and manage stakeholder and developer interactions.
- Ensure stakeholder satisfaction.
- Evaluate project performance.
- Ensure product quality and completeness.
One of the most important roles of the project manager is to ensure that all the internal standards for the firm are being met throughout the development process. These include:
- Completion of documentation for the project (no matter how small the project).
- Adherence to standards for testing and quality assurance.
- Proper release procedures and documentation to support the release.
- Code has been checked in to the software repository with the appropriate change notes.
- Proper communication has taken place between the development staff and the stakeholder alerting the stakeholder of the release to production.
- Monitoring user acceptance once the software is in production.
Software Management/Project Management Tools
In today’s world, there are many different tools that can be used for tracking each step in the life cycle of an iteration. In general, the following capabilities should be present in software development management software:
- Description – what is the purpose of this iteration.
- Item type (i.e., story, issue, etc.)
- Status – in what phase of the life cycle is this iteration.
- Assigned team or individual
- Sub-tasks. If this iteration is comprised of several identifiable steps or pieces, the project should be able to be broken down into sub-tasks directly related to the iteration and which must all be complete before the entire iteration can be marked as complete.
- Documentation – where is the documentation for this unit of work (usually in the form of a link to another repository).
- Checklist – each unit of work should have the following items that must be completed before the entire iteration (or story) can be marked as complete:
- Development complete
- Documentation complete
- Unit tested
- User tested
- Deployed
- User acceptance
- Attachments
- Time estimates
- Other related activity (comments, notes, conversations, etc.)
- Location of code in its repository and related pull requests, branches, builds, etc.
- Ability to link the iteration to another issue.
- Ability to set a ‘must be complete before’ – which ties this task to another and must be completed in order to be able to begin the task to which it is tied.
Other features of project management tools that are ‘nice to have’.
- Kanban board
- Integration with other 3rd party software
- Scrum tracking
- Burndown charting
- Ability to switch between ‘card view’ and ‘list view’.
- Priority settings
- Public vs Private view for collaborations
Software Development Tools Comparison
It isn’t practical, nor particularly useful to do a comparison of all the software management utilities in today’s market because there are literally hundreds of project management software applications available. Instead, we will focus on a select few which seem to be the most popular as of the writing of this document.
- Jira by Atlassian
Jira Software is a project management tool that supports any agile methodology, be it scrum, kanban, or your own unique flavor. From agile boards, backlogs, roadmaps, reports, to integrations, and add-ons you can plan, track, and manage all your agile software development projects from a single tool. - Trello (also by Atlassian).
Trello is a visual work management tool that empowers teams to ideate, plan, manage, and celebrate their work together in a collaborative, productive, and organized way. - Teamwork
Teamwork is a project management tool that helps in-house & remote teams improve collaboration, visibility, accountability and ultimately results. - Zoho Projects
Cloud-based project management software helps you plan your projects, track work efficiently, and collaborate with your team, wherever they are. - HoneyBook
Helps creative entrepreneurs and freelancers book more clients, manage projects, and get paid all in one place. Their business management software can automate a busy work and stay on top of all to-dos, saving time and money in order to grow a business. - Forecast
A full suite solution that helps professional services organizations finetune operations and finances with the help of intelligent project automation. With a focus on increasing predictability and making projects profitable, Forecast provides functionality to enhance productivity and planning with AI.
Software Development Tools Features Comparison
The following table compares some of the more important and most used components in a project/software management application.
KanBan | Custom Dashboard | SubTasks | Track Dependencies | Checklists | Card View/List View | Mobile | Client Portal | |
Jira | Yes | Yes | Yes | Yes | Yes | Yes | Yes | No |
Trello | Yes | No | No | No | Yes | No | No | No |
TeamWork | Yes | Yes | Yes | No | No | No | Yes | Yes |
Zoho | Yes | No | Yes | Yes | No | No | Yes | Yes |
HoneyBook | No | No | No | No | No | Yes | Yes | Yes |
Forecast | Yes | Yes | No | Yes | No | No | Yes | Yes |
Pricing Guide
Per Month | Free Trial | Free Version | |
Jira | 7.00 Per User | Yes | Yes |
Trello | 10.00 (Premium) 17.50 (Enterprise) |
Yes | Yes |
TeamWork | 10.00 Per User | Yes | Yes |
Zoho | 5.00 Per User | Yes | Yes |
HoneyBook | 9.00 Per Feature | Yes | No |
Forecast | 27.00 (GBP Per User) | Yes | Yes |
Selecting a Software Management/Project Management Tool
A software management/project management tool needs to fit your organization’s chosen style of development. It should enforce a disciplined approach to software development without requiring the organization to abandon processes, techniques, and approaches that work well or provide a competitive advantage.
The best way to select a software management/project management tool is to use the preceding tables and the full feature lists that follow to narrow the field to two or three products that have what your organization is looking for. Then, given all of these products have a free trial version, take these products for a test drive. Actual use by a team on a product is the best way to determine which product to select. See the feature list for each application below.
Feature List by Application
The following charts show all available features for each of the project management software applications reviewed in this document.
Jira Features
Access Controls/Permissions Agile Methodologies Alerts/Notifications Assignment Management Audit Trail Backlog Management Budgeting/Forecasting Bug Tracking Build Log Business Process Automation Calendar Management Change Management Collaboration Tools Color Codes/Icons Compatibility Testing Compliance Tracking Configuration Management Continuous Delivery Continuous Deployment Create Subtasks Customizable Dashboard Dashboard Data Connectors Data Import/Export Data Modeling Data Visualization Debugging Deployment Management Document Management Drag & Drop Due Date Tracking Employee Management |
File Sharing Financial Management Forecasting Forms Management Gantt/Timeline View Goal Management Goal Setting / Tracking Idea Management Inventory Management Issue Management Issue Scheduling Iteration Management Kanban Board Knowledge Base Management KPI Monitoring Marketing Automation Marketing Calendar Media Planning Milestone Tracking Mobile Access Mobile Development Percent-Complete Tracking Portfolio Management Predictive Analytics Prioritization Private Dashboards Product Roadmapping Progress Tracking Project Management Project Planning Public Dashboards Purchasing & Receiving Quality Assurance |
Recurring Issues Recurring Tasks Release Planning Reporting/Analytics Reporting/Project Tracking Requirements Management Resource Management Roadmapping Search/Filter Software Development Source Control Spend Management Status Tracking Strategic Planning Supports Agile Supports Scrum Surveys & Feedback Task Management Team Management Testing Management Testing/QA Management Third Party Integrations Ticket Management Time & Expense Tracking Time Tracking Traditional Methodologies Training Management Vendor Management Version Control Web App Development Widgets Workflow Configuration Workflow Management |
Trello Features
Access Controls/Permissions Activity/News Feed Agile Methodologies Alerts/Notifications Assignment Management Backlog Management Billing & Invoicing Brainstorming Budget Management Business Process Automation Calendar Management Checklists Client Management Client Portal Collaboration Tools Commenting/Notes |
TeamWork Features
Access Controls/Permissions Agile Methodologies Budget Management Bug Tracking Business Process Automation Calendar Management Campaign Management Client Portal Collaboration Tools Compliance Tracking Cost-to-Completion Tracking Create Subtasks Customizable Dashboard Customizable Templates Document Management Due Date Tracking File Sharing Gamification Gantt/Timeline View Idea Management Issue Management Kanban Board Milestone Tracking Mobile Access |
Percent-Complete Tracking Portfolio Management Prioritization Product Roadmapping Progress Tracking Project Management Recurring Tasks Reporting/Analytics Requirements Management Resource Management Spreadsheet View Status Tracking Supports Agile Supports Scrum Task Board View Task Management Template Management Testing/QA Management Third Party Integrations Time & Expense Tracking Time Tracking To-Do List Traditional Methodologies Workflow Configuration |
Zoho Features
Alerts / Escalation Alerts/Notifications Assignment Management Billable & Non-Billable Hours Billing & Invoicing Budget Management Calendar Management Capacity Management Client Portal Collaboration Tools Color Codes/Icons Content Management Cost-to-Completion Tracking Create Subtasks Customizable Templates Dashboard Dependency Tracking Discussions / Forums Document Generation Document Management Drag & Drop Employee Database Expense Tracking File Sharing Gantt/Timeline View Idea Management Issue Scheduling |
Kanban Board Knowledge Base Management Milestone Tracking Mobile Access Mobile Time Tracking Multiple Billing Rates Notes Management Overtime Calculation Percent-Complete Tracking Portfolio Management Portfolio Management Prioritization Progress Tracking Project Management Project Tracking Real Time Editing Recurring Issues Recurring Tasks Reimbursement Management Reporting/Analytics Resource Management Status Tracking Task Board View Task Management Team Chat Templates Time & Expense Tracking |
HoneyBook Features
Access Controls/Permissions ACH Payment Processing Activity Dashboard Alerts/Notifications Appointment Scheduling Billing & Invoicing Billing Portal Calendar Management Calendar Sync Calendar/Reminder System Canned Responses Client Management Client Portal Collaboration Tools Completion Tracking Contact Database Contact Management Content Library Contract/License Management CRM Customer Accounts Customer Database Customer Service Analytics Customer Support Customizable Dashboard Customizable Invoices Customizable Templates Dashboard Data Security |
Debit/Credit Card Processing Document Management Document Storage Electronic Payments Electronic Signature Email Management Email Response Control Employee Scheduling Facility Scheduling Financial Management Forms Management Group Scheduling Hourly Billing In-Person Payments Interaction Tracking Knowledge Management Lead Capture Lead Generation Lead Management Live Chat Mobile Access Mobile App Mobile Payments No-Code Online Booking Online Invoicing Online Payments Payment Processing Payment Processing Services Integration |
Pipeline Management Pre-built Templates Project Billing Project Management Proposal Management Purchasing & Receiving Quotes/Estimates Recurring/Subscription Billing Referral Tracking Reminders Reporting & Statistics Reporting/Analytics Response Management Room Booking Scheduling Search/Filter Signature Management Social Media Integration Source Tracking Task Management Tax Calculation Templates Third Party Integrations Time & Expense Tracking To-Do List Version Control Whitelisting/Blacklisting Workflow Configuration Workflow Management |
Forecast Features
Access Controls/Permissions Agile Methodologies Alerts/Notifications Backlog Management Billing & Invoicing Budget Management Budgeting/Forecasting Bug Tracking Business Process Automation Calendar Management Capacity Management Change Management Client Portal Collaboration Tools Color Codes/Icons Cost-to-Completion Tracking Customizable Dashboard Customizable Templates Daily Reports Dashboard Dependency Tracking Document Management Drag & Drop Due Date Tracking Employee Activity Monitoring Forecasting Gantt/Timeline View Graphical Workflow Editor Idea Management Issue Management Iteration Management Kanban Board KPI Monitoring |
Meeting Management Milestone Tracking Mobile Access Negative Feedback Management Percent-Complete Tracking Portfolio Management Prioritization Product Roadmapping Progress Tracking Project Management Project Planning Release Planning Remote Access/Control Reporting/Analytics Reporting/Project Tracking Request Management Requirements Management Resource Management Resource Scheduling Roadmapping Search/Filter Skills Tracking Sprint Planning Status Tracking Supports Agile Supports Scrum Task Management Team Management Third Party Integrations Time & Expense Tracking Traditional Methodologies Utilization Reporting Workflow Configuration Workflow Management |