They’re a great group of developers who really understand the reality of business.
Cooperation Models
There are 3 cooperation models Itexus offers:
- Efficient Hours or Agile with Budget Control
- Fixed Price
- Outstaffing/Development Team as a Service
Efficient Hours or Agile with Budget Control (Recommended)
Over the years in software development business Itexus has created a unique and efficient cooperation model that is perfectly adjusted for remote development and getting clear and fair billing as well as a high-quality software solution. This model combines all the benefits of modern agile software development processes with robust project management, strict budget, risks, scope and quality control. This unique engagement model has nothing but only advantages.
Overview
- Initial high-level scope, estimate, and budget are defined.
- The software product is delivered in two-week sprints, with a demonstration of new features at the end of every sprint.
- The client reviews the delivered product, provides the feedback. It’s possible to change or renew the requirements if new ideas come up to the mind.
- Skilled project manager controls project scope, risks and budget. Suggests scope corrections or simplifications to cut costs. Recommends the scenarios of risks mitigation. Reports the costs and performance on the weekly basis.
- Project manager conduct all the resources, including additional on-demand specialists choosing those who are best qualified for the specific task to maximize the efficiency.
- Only efficient hours within the agreed estimates are billed. Inefficient work is not billed. Risks are not included in the price.
Advantages
- Agile Flexibility. Frequent deliveries and demos of the product allow the client to change the requirements, incorporate new ideas or pivot at any time.
- Full Collaboration between the client and the team — creativity, proactive exchange of ideas, brainstorming. The team is focused on how to create the best possible product for the available budget.
- Maximum Cost Efficiency. We provide the best resources for a specific task. Only efficient hours within the provided estimates are billed. Outages and inefficient work are not billed.
- Strict Budget Control. Despite the ability to change the requirements the client always knows what he is going to get for his money and the remaining cost of the final product and how each change of the requirements will affect that.
- Transparency and Pay as You Go. The progress and costs are demonstrated and reported on a weekly basis. The client pays only for what he has reviewed and approved.
- Documentation. The detailed project documentation is created to mitigate the risks of losing the key knowledge keepers, to minimize communication and organize the efficient remote development.
- Full Access to Itexus Collective Expertise accumulated over hundreds of years of work on numerous development projects.
Fixed Price
The Fixed price model, somewhat old-school, assumes that all requirements are fixed and documented in detail before the project start. Itexus will deliver exactly the agreed scope for the pre-agreed price and time.
Overview
- All requirements are elicited, documented and signed in the contract before the project start.
- The price with risks included is signed in the contract.
- Itexus delivers the exact scope specified in the contract on the agreed time.
- The client pays the pre-agreed price in several payments upon reaching certain milestones.
Advantages
- Exact scope and functionality of the project are fixed in the contract and can’t be changed.
- Minor client involvement is needed during the project implementation phase.
- This model works reasonably well for the enterprise clients who are able to specify in detail what exact software they need, do not plan to change the requirements after the project starts, and don’t need much creativity and brainstorming.
Disadvantages
- Long preparation/analysis phase is required to elicit, document and fix all the requirements.
- Complicated process of changing the requirements that leads to signing an addendum to the contract.
- Doesn’t work well with agile approach – the team will deliver exactly what is specified in the contract.
- Higher price – the risks buffer is included in the price.
- Lower collaboration and creativity. Open communication with brainstorming and ideas exchange is replaced with strict budget control and a formal approach to changing requests.
- Development team is focused on the features and project details specified in the contact and on budget. The product efficiency is analysed only on the initial stage of scope preparation.
Outstaffing / Development Team as a Service
The client can just hire remote engineers with or without a project manager and remotely integrate them into his in-house development team or manage the team directly on a day-to-day basis. In this case, the client dictates the development process, he makes all final decisions and assumes responsibility for the ultimate success of the project just using resources from Itexus. Works reasonably well for the clients who already have their in-house development teams, the CTO or a strong project manager and just need extra engineering resources.
Overview
- The client sends qualification requirements for certain positions.
- Itexus sends CVs of the candidates fitting the requirements.
- The client interviews and accepts/rejects the candidates.
- Accepted candidates join the client’s teams and start working on the tasks assigned by the client.
- Itexus helps organize work in the most efficient manner, sets up development environment that can be secured and integrated into the client’s infrastructure.
- Pre-agreed monthly rate is billed for the accepted candidates.
Advantages
- Full control. The client has a full control over the team and processes, can integrate new engineers with an existing team.
- No hiring costs. No need to hire HR managers, recruiters or pay an exorbitant amount of money to recruiting agencies.
- Flexible scaling and descaling. The client can quickly scale the team up and down depending on the workload.
- On-demand resources.The client is able to attract the resources with a specific skills part-time or full-time to complete a specific project task.
Disadvantages
- Requires strong project and technical management on the client’s side — very skilled managers to supervise the remote developers.
- Possible miscommunication.
- Higher rates. Very often such projects require more experienced and expensive engineers with excellent communication skills to be able to work efficiently directly with the client. Even if the technical tasks are simple and could be performed by less expensive personnel.
- Itexus collective expertise is not fully utilized, only individual expertise of the selected engineers.
- The client accepts the responsibility for the ultimate success of the project and can just request to replace/remove selected engineers from the team if he is not satisfied with their performance.
Size of project: Requirements: Flexibility: Client’s involvement: Budget / Rate:
Efficient Hours or Agile with Budget Control
Size of project: Any Requirements: Evolving Flexibility: Flexible Client’s involvement: Average Budget / Rate: Strictly Controlled
Fixed Price
Size of project: Any Requirements: Defined Flexibility: Non Flexible Client’s involvement: Minor Budget / Rate: Fixed
Outstaffing / Development Team
Size of project: Any Requirements: Evolving Flexibility: Flexible Client’s involvement: Full Budget / Rate: Fixed
From Idea to Ready-to-Market Product
Initial Consultation
Discovery Phase
Design
Architecture
Implementation
Testing / QA
Cloud Setup / DevOps
Going Live
Post Production Support
Initial Free Project Analysis/Consultation
Usually we start projects with a free consultation phase during which we collect and document the initial high-level requirements, perform feasibility and risk analysis, analyse potential integrations and competing products, design high-level architecture, recommend technology stack, create the workload and cost estimate.
This phase lasts about one-two weeks. It consists of several workshops with an Itexus business analyst and a software architect and results in a creation of the initial project documentation and a proposal.
Once the budget, scope, and architecture are approved and the contract is signed, the project starts.
Discovery Phase
If the client has only a high-level idea or the project is complex we usually recommend starting with a more detailed Discovery / Requirements Analysis / Architecture design phase.
We prepare a detailed documentation and thoroughly think over the architecture of the project. The discovery phase is needed to prepare everything before the development and set up a budget. Besides all unclear moments are revealed and covered. Thus it’s possible to find out the exact cost of the final product development and exclude force majors during the development phase. The scope of the project is split into sprints. Requirements are specified on the Use Case or User Story level.
Additionally we create UI mockups of the main user screens, combine them into a clickable prototype and involve the UI/UX designer to create graphical design of the UI on screen-by-screen level.
UI/UX Design
Once the requirements and user journey map are identified and fixed,the UI/UX design phase starts. We pay attention to all principles of visual design such as unity, balance, hierarchy, proportion, emphasis, and contrast. On each principle, there are elements, like line, shape, text, color that we should play right and attractive for users. The right design helps users understand the product. It will also build a good first impression that furthermore build the trust. And to make it right and more beneficial for the client in terms of attracting customers and the usability designers work together with our business analysts. All designs are compliant with the latest design guidelines from Apple and Google.
The design of each screen is reviewed and approved by the client.
Architecture Design
Our approach to architecture design starts with identifying and prioritizing the key non-functional requirements such as:
- simplicity/cost of development
- security
- performance
- scalability
Some requirements like scalability and the cost of development may conflict with each other. The architect’s job is to identify the technologies and the architecture of the future system that will be an optimal balance of the requirements, documentation and simplicity of future usage by any development team. Well thought-through and documented architecture allows us to deliver high quality software in less time.
Our engineers are proficient with most modern technology platforms, cloud providers and software architecture patterns such as Serverless, Microservices, Micro Frontends and others. We follow SOLID, KISS, YAGNI design principles and love finding elegant solutions to complex problems.
Implementation
Our development process is based on the Scrum process adjusted for remote collaboration.
- The Software is delivered in two-week sprints starting with core functionality with a potentially shippable and shapeable product increment delivered at the end of every sprint.
- Every sprint is followed by the demonstration of the results to the client, client’s feedback is collected and incorporated in the subsequent sprint.
- The code is covered with unit tests and goes through a code review process in the git or github code management flow.
- CI/CD (Continuous integration and delivery) practices are used in conjunction with automated and manual testing to ensure the quality.
- The code quality is verified through code review and automated code quality analysis with tools such as Sonarqube.
- All requirements are documented in user stories and stored in Atlassian Confluence or Google Docs accessible to the client and the team at any time. Good documentation ensures efficient development with little communication overhead and mitigates the risks of losing a key knowledge keeper. It simplifies the project transition to another team if needed.
DevOps Implementation
Itexus DevOps engineers are usually involved in every project part time and they:
- Setup development, test and production environments in the chosen cloud platform.
- Organize backup, automated monitoring, security and fault tolerance of the production infrastructure.
- Automate continuous integration, continuous deployment and environment provisioning processes.
- And perform other, project specific DevOps activities.
Quality Assurance
Our QA approach is based on the well-known test pyramid pattern.
The code is covered with unit tests.
Regression testing is automated with service-level and UI tests.
Manual QA team is working mostly on testing of the new features and documenting the test cases for future automation.
All defects are logged and prioritized with Jira or another defect tracking system.
The development team and the client receive daily reports of all newly identified and currently open defects.
All automated tests are executed after every code change as a part of the CI/CD process.
For simple and limited budget projects such as development of an initial MVP version we usually start with unit tests and manual testing to save the budget and avoid maintaining the automated tests for the changing requirements.
In addition to functionality testing the quality is ensured by code review and automated code analysis processes.
Production infrastructure is audited by DevOps engineers and penetration tests for potential vulnerabilities and security risks.
Post Production Support
Itexus continues to support the software systems after they go live. Usually, software support is divided in 3 levels:
1st LevelCall center. Answering basic user questions, filtering out simple questions and cases of misuse of the product. More complicated cases are sent to the second level support team. Usually call center is organized by our clients.
2nd LevelMonitoring the production servers and logs, installing software updates. Making sure the live product is operating normally.
Fixing issues can be fixed without making changes in the software code. By using admin functionality in the product, restarting services etc.
3rd LevelIf the problem can not be fixed on the second level and requires changes in the software code it is send to the development team that creates and releases an update/patch to the software.
Usually, Itexus engineers are handling the 2nd and 3rd levels of support.
Project Management Services
On every phase of our cooperation the project is assigned to a professional project manager who is responsible for ultimate project’s success and works as a single point of contact for the client for all organizational questions.
Project manager organizes development process in a Scrum Master role. Controls project scope and budget, manages project risks, reports progress, costs and escalates questions that need client’s attention. Recommends the best course of action to save the budget or shorten the time-to-market.
Classical agile development doesn’t require a project manager’s role. But it is crucially important for Itexus as a service company to provide high quality service to our clients.