PROJECT MANAGEMENT FOR SOFTWARE DEVELOPMENT: THE APP SOLUTIONS TIPS
The APP Solutions successfully delivers software development projects thanks to clear developed processes of project setup, management, and timely communication between departments and the client.
When choosing a development team for your project, what should you pay attention to?
Portfolio? Tech Stack? Domain expertise? All of these answers are correct. But more importantly, the development team should have documented project setup processes and development to ensure transparency for stakeholders.
Knowing the project lifecycle, core deliverables, and critical roles on the project, allow you as a decision-maker to be on the same page with the development team, thus, create more realistic expectations and the final result.
This article explains the project setup and management processes at The APP Solutions in detail and the key roles and responsibilities of each party during the project life cycle. We also list key deliverables our clients receive at each stage of project development.
We apply SDLC (Software Development Life Cycle ) as our methodology of choice for the projects we develop from scratch and existing projects requiring features modernization, software update, and code refactoring.
The SDLC refers to a methodology with clearly defined processes for the development team.
The development team goes through the following steps of the project lifecycle:
Software Development Life Cycle from a stakeholder's perspective includes the following phases:
Project Development and Quality Assurance
Final Project Demonstration Session
Each of these phases requires the cooperation of stakeholders with different team members. Let's take a look at each stage of software development at The APP Solutions in more detail.
The engagement phase is the first step toward project development. It takes four weeks for our development team to determine user roles, ways users interact with the application (user stories), and project usage scenarios.
Each week of the engagement phase has its goals and deliverables:
Week 1. Understanding
We suggest relevant technologies, dig deeper into your business and highlight the main business challenges you want to overcome with the project.
We achieve these goals by:
Defining your business goals
Discussing business needs
Checking out the current product infrastructure
Running requirement elicitation session
Limiting potential opportunities for further cooperation
Week 2. Definition
We shape the project vision and create a list of features for the first project version with basic features, i.e., the project's MVP (Minimum Viable Product) and features for a fully-fledged product's version.
During the second week of the engagement phase, The APP Solutions developers are dedicated to
Setting up scope boundaries
Running scope prioritization
Defining MVP scope
Creating Architecture Vision
Week 3. Portrayal
We devote the third week of the engagement phase to gathering and writing project requirements, functional, non-functional, and transactional.
We ensure that technical project requirements are written down from a Solution-perspective, i.e., are aligned with business needs.
To achieve this goal, software test engineers view the requirements at early stages and apply a "Requirement Checklist" that helps determine whether the requirements are complete, accurate, verifiable, and consistent.
The tasks for the third week include:
Running technical assessment session
Organizing requirements elicitation session
Reweaving the project's visual style
Week 4. Result
We develop a realistic Product Roadmap that supports your Commercial Roadmap.
We also manage the technical aspects of a project to ensure that they're in line with the company's growth targets.
During the last week of the engagement phase, we are busy with:
Gathering the Project Scope for the release 0.1
Writing a Resource Plan for the Scope for release 0.1
Completing Requirements description
Main deliverables of the Inception Phase
After a four-week-period, our team comes up with the following deliverables of the engagement phase:
Then, we move to the next phase of the project development life cycle named the project initiation phase.
Before developers start writing code for your project, the team runs a quick project setup phase to gather all the necessary documentation, including the cooperation agreement, project briefs, specifications, prototypes, etc.
The project initiation phase also ensures that all team members are aware of the project goals, and you, as a stakeholder, are aware of the communication plan schedule.
The main deliverables of the project initiation phase are:
A communication plan is a document that specifies all the reports our team makes during the project development phase.
To create the Communication Plan, the Business Development Manager invites you and the Project Manager to a meeting during which you discuss further cooperation and critical project milestones.
The Communication plan covers the schedule of:
Daily Scrum meetings. Their purpose is to synchronize the Project Manager with the team each day about the progress/blockers/plan for the next day.
Weekly planning meetings. Once a week, the Project Manager meets the development team to prioritize tasks for the next week and improve the log review. The Project Manager writes down the incoming information from the team meeting notes to ensure important details won't be lost.
Financial reports. The Project Manager creates financial statements in PDF with a list of all the hours spent and task breakdown to the customer to ensure transparency about the monthly expenses and time spent. The customer receives the Financial report on the first day of the month.
Monthly reports. The Project Manager overviews the created tasks based on requests and produces a monthly report with incoming requests from the client and requests we've fulfilled.
Delivery meetings. The Delivery Director and Customer discuss the processes on a higher level and write down the outcomes from meeting notes.
After all preparations, the development team runs a kickoff meeting with you to introduce the development team members and their roles.
The team composition and development depend on the project's scope. An average development team composition includes the Project Manager, the Product Owner, the Technical Lead, the Quality Assurance Manager, and System Administrator.
After the kickoff meeting, the team gets ready for the project development phase:
The Project Manager and the business analyst create a project backlog with the tasks.
The Project Manager and the Product Owner prioritize tasks in the backlog.
The Project Manager, the Product Owner, and the rest of the development team estimate the first sprint, i.e., the amount of time they need to implement the required functionality.
The Technical Lead creates the overall project architecture.
The Quality Assurance manager creates a checklist for the project functionality one will use to ensure that the project's functions work as they should
The System Administrator creates the GitLab CI/CD repository where the team will deploy and store different versions of the project's code.
The System Administrator sets up the Development and the Stage environments. The Development environment is the environment for coding. The Stage (staging or pre-production) environment is the environment for testing that resembles a Production environment.
For most projects, we apply the scrum project development framework. This means that the scope of the project is broken down into 2-3 week sprints. At the end of the sprint, the team runs a demo of new functionality to stakeholders and releases the new functionality to the live environment.
Each new sprint begins with sprint planning. At the beginning of the sprint, the development team plans and determines what scope will be delivered.
If the team considers that they can't deliver the expected result, we find extra developers that augment the team.
At this phase, the Project Manager and the development team
Define a person responsible for technical leadership on the project, i.e., the tech lead
Implement development guidelines (design pattern, scalability, maintainability, test coverage, code review, etc.)
Definition of Done
The definition of done is an essential document for developers, QA managers, and project stakeholders. Definition of done is a list of requirements determining one or another feature is performed as it should, ready for deployment to a live environment, and enlightened with the tech specification.
The development team determines the definition of done for each function of the project during spring planning:
The developer estimates the required time to complete a particular task
The Project Manager adds the user stories and the use case to the description of the task
The developer and Project Manager add conditions the task requires to perform correctly in the definition of done
Once the team defines the project scope for the new sprint, developers begin to code project functionality. The quality assurance team tests each task right after the developer finishes coding it.
When the team has a few days before the sprint ends, the tech lead of the project dedicates a stable branch for a QA manager for project testing:
QA managers run regression tests to find bugs and errors
Developers fix errors and do code refactoring
The team releases new functions and run a demo session with stakeholders and gathers their feedback
The team share their challenges during the sprint, potential bottlenecks for the new spring during sprint retrospective, and create the scope for the project improvement process in the case of stakeholders not being satisfied with the project demo
Project Improvement is the scope of work developers must do so the project's functions meet the definition of done:
The Project Manager establishes the improvement backlog and renews it by the end of an iteration
The Project Manager involves the stakeholders in generating the project improvement ideas and fixes them in the improvement backlog
Before releasing the new project's code, developers create a project repository backup. This procedure is necessary because new functions may not be compatible with tasks in the old project's code.
Moreover, backups help us compare a previously good state of the project with the project's current state. Finally, backups prevent data loss by ensuring that critical infrastructure wasn't decoupled from Github by a third party that wants the breach to spread.
The team creates a backup of GitHub repositories with critical project assets, including:
Infrastructure and configuration
Then, QA managers test each project backup.
Iteration by iteration, The APP Solutions team of developers does spring planning, coding, bug fixing, making backups, and testing until the final project demo.
The final demonstration session of the project is a meeting of the development team and you as a project stakeholder before the project's release.
During the final demonstration sessions, the development team shows the project functionality written in the project technical documentation to you and other stakeholders.
After the final demonstration session, you and other stakeholders can test the product on your own in the test environment before developers upload the project to your server.
During the next two weeks, The APP Solutions team provides free technical support to fix issues that are not aligned with technical requirements to the system. After the end of the two weeks, the APP Solutions Team and you can sign a Technical Support Agreement to continue project improvement.
Technical support is necessary for all new projects to maintain a system that can perform differently in a live environment rather than in a test environment.
Technical support is also essential for ensuring the system's stability since unexpected high traffic loads can increase project downtime and cause other technical issues.
Tech Support Team
The typical support team includes:
The DevOps engineer maintains network health and fixes errors on the server
The support manager (or a feedback operator) gathers user requests (briefing, receiving complaints, processing applications and proposals)
The support developer makes any urgent changes to the project to ensure streamlined fixing of critical issues, bypassing the project improvement backlog
At The APP Solutions, we have three different technical support levels that vary in respect of the project's complexity, stakeholder's needs, and the client's business maturity:
Level 1. Service desk
Under the service desk tier, The APP Solutions team ensures:
Processing of incidents and requests
Dealing with common, typical, and previously documented issues
Level 2. Issues/problem management
The second level of technical support empowers developers with more responsibilities:
Resolving of non-standard issues
Analyzing root causes
Providing workarounds and quick fixes to minimize business interruptions
Resolving high severity and urgent incidents
Level 3. Product development
Under the third level of technical support, The APP Solutions provide a dedicated team that deals with
Developing permanent solutions to issues from rare curing
Releasing and deploying management to align system changes with changing business needs
The model of cooperation determines the number of responsibilities a development team faces when building a project. There are three fundamental models of cooperation - Managed Services, the Dedicated team, and the Extended team. Let's explain them one by one.
Managed Services is a cooperation model under which The APP Solutions team manages all product development processes while you get the freedom and time to develop your business. This engagement model works best to build complex products, such as web or mobile applications from scratch and provides technical support services.
The composition of a team that works under this model may include application developers and quality assurance specialists and a product manager, UI/UX Designer, Business or System Analyst, and other team members depending on your project's needs.
The dedicated team model means the development team shares responsibilities with you. You can work under this model for outsourcing business functions such as development and quality assurance to empower your existing development team with our narrowed domain specialists.
The team composition of the dedicated team model includes developers, quality assurance managers, and a dedicated Project Manager who is taking care of the Software Development Life Cycle (SDLC) Methodology and process. The Project Manager also facilitates the integration of the dedicated team with other teams on your side and third parties.
The extended team is a cooperation model under which you as a client manage all the project development processes. The extended team model is popular among businesses that want to extend existing software development teams with extra professionals while avoiding finding in-house candidates and hiring costs.
To make the extended team model work, you need to have established project management processes. Our Extended Team will inherit your existing structure and report directly to you or your project manager.
The APP Solutions team have six central values that differentiate us from other software development companies:
Happiness as KPI. We focus on things that matter. We know how to take care of your business's problems and turn them into solutions.
Result-Oriented. We value your business the most, and we are willing to help you with directions that yield great value where time is everything and doubts are detrimental.
Narrow Expertise. We understand the balance between the industry's best practices and adjusting to opportunities when they come knocking on the door.
Verified Seniority. We manage the qualification of each team member, applying the Competence matrix, and create a Personal Development Plan to grow in-house professionals.
Standardized Onboarding. We apply an Onboarding Plan to shorten the project onboarding process, so new team members are integrated into the project quickly and efficiently.
Project Health Check. We ensure that the project goes right by applying Project Health Check best practices to compare project characteristics and qualities with industry standards.
The APP Solutions team is here to help you develop your new project, improve your old system, augment your existing development team, and provide technical support. You can write down your request to the contact form to get in touch with the team.