Wasting IT resources might not damage the environment, but it will definitely cost a company in employee working hours and money spent on development processes. It doesn’t matter if a company’s software resources are in-house, offshore, “right-shore” or out-sourced, they need to be effective and efficient.

A Software Development Process Audit of an IT system is a continuous process that maximizes the success of a project by identifying its potential risks and weaknesses, and evaluating the performance of each team member. You can audit a project at any time during the software development lifecycle (SDLC). However, keep in mind that auditing the project in the early phases improves its quality and the scheduling of the product under development.

Typically, the audit is done by project managers, business analysts and QA teams. The checklist will help ensure the quality of each phase of the SDLC: planning, creating, testing and deploying.

Here we will explain the software audit process and provide the checklist.

Every Project Starts With Planning

Project planning is one of the most important processes of project management. It helps establish the scope, and it defines the objectives and the steps to reach them. Project planning results in a project management plan, which documents the approved scope, cost and schedule baselines.

A Checklist to Make Sure You Are Completed with Project Planning

  • Does the project have a formal Project Plan?
  • Are the key elements of a Project Plan present?
  • Project definition and scope?
  • Project objectives
  • Cost / benefit analysis
  • Staffing requirements
  • Time estimates
  • Risk analysis
  • Critical success criteria: at which point have we met our goals?
  • Are the major deliverables and deadlines specified?
  • Have the scope, objectives and costs been communicated to all involved work groups?

Software-Development-Process-Audit-Checklist1.jpg

Project Management

There is no chance to deliver a quality app on time and under budget without project management (PM). PM closely monitors the development process to ensure that objectives and goals are being reached efficiently and effectively.

A Checklist to Make Sure You Are Prepared for Project Management

Have the key elements of a PM strategy been established? They include:

  • Project tracking plan and methodology
  • Project status reporting structure and process
  • Risk Management Plan
  • Software Quality Assurance
  • Software Configuration Management
  • Has a structured approach been used to break work efforts into manageable components?
  • Are team members involved in the development of activity and task decomposition?
  • Are individual tasks of reasonable duration?
  • Are milestone deliverables effectively tracked and compared to the project plan?
  • Does the detailed project plan identify individual responsibilities for the next sprint?
  • Have activity relationships and interdependencies within tasks been adequately identified?
  • Are target dates established for each milestone deliverable?
  • Are corrective actions taken when actual results are substantially different from the detailed project plan?

 

The Development Phase

The project development phase takes you into deep water. Deadlines are often missed because of underestimation, selection of the wrong toolchain or operating in a poorly configured workflow. This is where IT management comes in handy, the central aim of which is to generate value through technology.

A Checklist to Make Sure You Are Prepared for the  Development Phase

Project Toolchain:

  • Does the toolchain suit the project needs?
  • Are all libraries supported by a developer?
  • Are all libraries up-to-date?
  • Are all project dependencies clear and without duplication?

Make sure the database (DB) architecture and setup are valid:

  • DB entities have descriptive names.
  • DB files are indexed properly.
  • The stage environment uses the same database server version as well as production.
  • The production database and other data have backup set up to keep all data up-to-date and durable.
  • DB structure backup/migration are separated from data.
  • DB interactions are covered by automated tests.
  • Relations between entities are clear and they have access to all relevant business information without additional efforts.

Project code base:

  • Do project entities have descriptions and follow naming conversions in general?
  • Is the project folder structure descriptive and does it follow conventions?
  • Is the project entities’ architecture properly separated and does it follow common patterns?
  • Have the long-running and time-consuming operations been performed on background outside of the Request-Response cycle?

 

To make sure a developed software performs as expected, focus on performance monitoring.

Product Acceptance:

  • Is the project UI implemented according to platform guidelines?
  • Is the project interface clear and easy to use in general?
  • Are project test cases up-to-date?

Development Workflow:

  • Does the team work with a designer from the start of the project?
  • Does the project team use appropriate git workflow?
  • Does the project have automated setup and deployment?
  • Does the project have a development database dump or migrations to set up the development environment as soon as possible?

Project logs and error management:

  • Are all the logs searchable and accessible from one place?
  • Has the errors/exceptions management system been used in the project?
  • Security, encryption
  • Is SSL used for all pages?
  • Is the security sensitive data encrypted?
  • Does the team use secure storage for keys/passwords/tokens etc.?

Software-Development-Process-Audit-Checklist2.jpg

Quality Assurance

The two distinct ideas of quality assurance (QA) serve the same purpose: improving the consistency, quality and reliability of operations. As a part of quality assurance, quality assessment focuses on the fulfillment of quality requirements. The main goal of a QA audit is to find out how effective a QA program is at identifying and reducing bugs and to provide opportunities for improving QA efforts.

A Checklist to Make Sure You Are Completed with Quality Assurance Audit

  • Does testing documentation (test cases, checklists, matrices) exist and is it available to all team members?
  • Is testing documentation (test cases, checklists, matrices) up-to-date?
  • Are all necessary testing methods and types used in the project?
  • Are all found bugs reported with a self-explanatory title, clear steps to reproduce them and expected/actual results with screenshots, links and other elements?
  • Have all the bugs been prioritized and added to the current sprint or backlog?
  • Have the suggested enhancements been approved by a manager and then added to the current sprint or backlog?
  • Have a QA specialist and a manager approved the deployment to production?
  • Are pre-deployment and post-deployment testing done according to checklists?

 

As you can tell, the ultimate goal of the audit process is to maximize the success of a project. It is not a lack of talent or creativity that causes most problems, but the irrational and inefficient usage of available methods and processes. When all the activities are described in detail and then optimized, it really saves companies valuable time and money.

While the software development process audit can be stressful, with the help of ElifTech’s team of experts you can be assured of a successful outcome. We will conduct a low-pressure audit to identify gaps and find the most effective way to solve them.