Dedicated front-end team for a project
This document will describe the process of introducing the front-end team on the condition there is a back-end team working with the existing project at the client’s end. Our company has solid experience in front-end development with such technologies as ReactJS and VueJS, and we have a clear vision of setting up effective software production.
Typically front-end development is divided into three main phases:
- Initial phase
- Active development phase
- Delivery phase
Each stage involves delivery as well as the development team.
The main goal of this phase is to prepare the final UX design, User Stories and set up both delivery and development processes and environment.
Typically, Business Analyst(BA) / Product Owner(PO), User Experience Designer(UX), Functional Analyst(FA), Project Manager(PM), and DevOps perform the critical roles in the delivery team.
Creation of high-level requirements, wireframes, and Work Breakdown Structure (WBS)
Key roles: Product Owner(PO)/Business Analyst(BA) + User Experience Designer (UX).
Firstly, the Business Analyst and Product Owner create the WBS and define high-level requirements. Secondly, the BA alone or with the help of the UX creates visualizations of the critical project functionality in the form of mockups or interactive wireframes.
As a matter of fact, the role of the PO/BA is represented by a client.
Creation of the project’s design and user stories(US) from wireframes
Key roles: Product Owner (PO)/Business Analyst(BA), Functional Analyst(FA), User Experience Designer (UX)
The creation of the final design version is the responsibility of the BA and UX.
All system requirements must be aligned with the acceptance criteria and use cases. At this stage, we allocate a functional analyst or a competent person to prepare such descriptions for the team. This person will be communicating closely with PO and the design team to define and describe the system’s behaviors and create acceptance criteria. With the project description, it’s much easier to plan work and meet clients’ expectations.
Usually, the role of FA is on the Softblues side, and Softblues or the client’s side could either represent UX.
Selecting the methodology, setting up PM tools, managing the tasks, epics, planning work
Key functions at this stage are performed by PM/Scrum Master
In the first place, it is crucial to choose the appropriate methodologies for the project type and client expectations. We can combine methods or simplify some approaches at the client’s request. We recommend reading the following article – Cheatsheet Differences Scrum vs Scrumban vs Kanban to overview modern software development methodologies and processes.
To start the development process seamlessly, we need to define the requirement for an MVP, plan tasks, set priorities, outline the delivery process, and distribute tasks among the team members. This process needs to be managed by the PM or another qualified specialist. This person will support the development team daily, communicate with the Functional Analyst and design team, track deadlines, and organize demos and meetings.
Plus, we set up a project management environment such as Jira (or the like) for team performance reporting at this stage.
Setting up the code repository for a new project.
Key function – Tech Architect
The Tech Architect sets up a new project with a code repository hosting management tools such as Github, Gitlab, or Bitbucket. Usually, the codebase is located on the client’s account for security reasons. Softblues can also provide internal solutions for storing the codebase at the client’s request.
After the repository is created and accessed, the architect sets up a branching strategy, e.g. Successful Git branching model.
And as the next step, the Tech Lead bootstraps the project using modern frameworks, like Vue.js or React.js.
Key roles: Vue.js / React.js Tech Architect
Vue.js The project is bootstrapped using the Vue CLI tool, and depending on the project’s needs Vue.js v.2 or v.3 is selected as the basis. Judged by experience, v.2 is more stable, although, at the same time, Composition API is often applied as the main approach. Tech lead sets up Typescript support and code quality tools, such as Prettier and Eslint. As a state management tool, Vuex is set up.
React.js The project is bootstrapped using Create React App tool with Typescript support and code quality tools, such as Prettier and Eslint. As a state management tool, Redux is set up.
As a CSS/SCSS pre- or post-processor, we suggest SCSS used as ccs modules or Tailwind CSS.
The process described above usually takes 1-2 weeks, and it is the responsibility of the Tech Architect at the side of SoftBlues.
Active development/Team Composition phase
At this stage, the development and delivery team are working together on implementing components from the wireframes.
Roles involved in this phase: Product Owner (PO) / Business Analyst (BA), UX Designer, Functional Analyst (FA), Project Manager (PM), Quality Assurance Engineer (QA).
The key responsibilities of the Product Owner (Business Analyst) and UX Designer are setting the priorities, managing new tasks, and designing different wireframes or mockups.
The key responsibilities of the Project Manager and Functional Analyst are to control the process of development, sprint planning, estimations, and everything connected with the development process. We at SoftBlues always guide our clients with transparent reporting to support the project at each stage. For small teams, the roles of PM and FA can be managed by one team member.
The key resposibilities of the QA Engineer are the creation of test cases, manual behavior testing, checking visual elements.
Usually, the roles of PM, FA, and QA are on the Softblues side.
Key functions at this phase are the following: Tech Lead (TL), Front-end Developers (FD).
Our team prefers to use the Atomic Design approach to implement the front-end.
Firstly, the Tech Lead starts delegating simple components (atoms, molecules) implementation to Junior/Middle Developers and more complex tasks such as layouts and pages, as well as functional features to Middle/Senior Developers. The Tech Lead’s responsibility is to provide technology decisions and code reviews, team support, and work on the most critical tasks.
The front-end team works in parallel with the back-end team. This approach allows the creation of the application pages Rest or GraphQL API and their documentation with Swagger, Insomnia, Postman, etc.
The approach described above is applicable when the back-end team is represented on the client’s side. If there is a request to build a back-end team, Softblues can provide your project with expert Node.js, PHP, or Python developers.
This phase is a critical phase of active development. We continuously deliver the results of the development team to the client for further testing aiming at accepting the completed work.
Continuous Integration / Continuous Delivery (CI/CD)
After the project features are developed, they are delivered to the defined environments. We suggest using QA(Test) and Staging(Pre Prod) environments by default. Test and Staging servers can be hosted on any available platforms such as AWS, Google GCP, Microsoft Azure and set up by the Softblues’s DevOps Engineer or the technicians from the client’s side.
Artifact delivery takes place 1-2 weeks, followed by regular demos.
The QA Engineers test features on the QA server and approve further delivery to the Staging server that is 99% similar to the Production one. For the delivery automation, various tools can be used, from GitLab CI or GitHub Actions to Jenkins or Vercel.
After deployment to the staging, manual testing is applied to compare the visualization elements and test compatibility with the features. Ideally, this process should be managed by the QA engineer. Depending on project size, this can be done by the designers, BAs, PMs, or clients.
Demo sessions aim to demonstrate the project progress, and their frequency depends on the methodology chosen and the client’s request. We suggest convenient iterations and agree on them at the beginning of the project.