Skip to main content

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.

  1. 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.
  2. 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.
  3. Teamwork
    Teamwork is a project management tool that helps in-house & remote teams improve collaboration, visibility, accountability and ultimately results.
  4. Zoho Projects
    Cloud-based project management software helps you plan your projects, track work efficiently, and collaborate with your team, wherever they are.
  5. 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.
  6. 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