The purpose of this article is to share how IT Services India collaborates with software companies, as an outsourced mobile development company.
Especially when your development team is being outsourced, starting a new project is stressful. There are a lot of questions to answer and problems to solve, which adds even more pressure to the project.
There are certain processes and practices you can follow that can make starting a project easier, and reduce stress on both sides. Even though it’s never easy, some of them can help.
Let’s find out more about our team and tools in this blog. We will show you which tools, processes, and practices we use here at IT SERVICES INDIA.
Table of Contents
• Assembling the Team
• Our Techstack
• Communication within the team and with client
• Development methodology
• Development process and code quality
• Code repository
• Analytics and Reporting
• Our tools at a glance
- Assembling the Team
IT SERVICES INDIA usually assembles a team of different developers in accordance with the project requirements. Depending on the project’s requirements, the team may include a mix of developers.
The team lead will be one of the senior developers if there is more than one developer on the team.
In addition to taking responsibility as a developer and developing new features, the team leader must coordinate events and meetings, communicate with the client and with their team, as well as act as the primary contact for the client.
As a result, we usually assign one or more full-time quality assurance engineers, since no one wants bugs in their app.
Our team can be divided into smaller pods based on platforms if necessary when working on larger projects. Consequently, we have two teams, two pods and two team leads, one for iOS and one for Android. We have quality assurance engineers for both teams.
Our philosophy is to assign developers to one project at a time so they will work exclusively on it. This reduces the risk of them switching context on a daily basis. You can be certain that our team will work tirelessly for your business.
- Our Techstack
IT SERVICES INDIA prefers to work with cutting-edge technologies. Although we won’t be scared off by older technologies or legacy projects that need updating. Swift developers like Swift, and Objective-C developers love Objective-C, but all Android developers started with Java.
Our cross-platform development team works with both React Native and Flutter. A summary of our native and hybrid frameworks, libraries, and patterns can be found below.
- Communication within the team and with the client
Slack is the primary communication tool within our organization. Every project gets its own private channel from the beginning, which is accessible to only team members.
The company uses Slack for all video calls, presentations, and daily syncs.
Google Hangout is usually our preferred video-conferencing tool. Google Drive is usually our preferred method of sharing documents and files.
Do not misunderstand, we are flexible as well. The client can decide to use any of these communication tools to communicate with us within the company regarding the project if, for whatever reason, it is not suitable for them.
We can also send out guest invites to join our Slack channel if a client does not have any tool that can be used to communicate with us.
We encourage our clients to check in with us frequently and keep us informed about the progress we are making.
In order to build trust with our clients, we openly communicate with them and are not afraid of discussing project issues. Open communication makes it easier for us to accept and provide feedback, and it aids us in improving our processes and processes.
- Development methodology
We have adopted SCRUM methodology for all our teams, and encourage our clients to do likewise.
As a result, we typically have 2 week-long sprints, which have proven to be the optimal period for us to deliver the most effective results, as well as providing flexibility for the project and its needs.
The process begins with the planning of the next sprint before the current one ends. All features, user stories, feature requests, or bug reports are recorded in Jira, or any other tool a client prefers, like Microsoft Azure or Asana.
Once during the sprint, we hold an App Demo where the developer who worked on the new features presents what’s new in the application. As long as there is a way to track tasks, features, bugs, and also the time, we will be happy. If the client wants, we will also hold some events outside of the sprint.
We send the app to the client once each sprint has been completed (usually on the last day of the sprint) so that they can test it and view it for themselves.
In accordance with SCRUM methodology, we hold daily stand-up meetings where team members communicate with each other so that everyone knows where the project is at all times. Everything is openly discussed, including who is doing what, what has been completed, what should still be done, and what problems someone may be facing.
All parties involved with the project are invited to attend these meetings if they are interested. They are not limited to our team only.
It is our goal to keep our clients in constant communication with the team, and to involve them in the development process continuously. Consequently, we can quickly adjust the development process if necessary, while also anticipating and addressing any problems that may arise.
- Code quality and the development process
Whenever possible, we use CI/CD. Continuous integration lets us run unit tests on every pull request, along with static code analysis.
A pull request can be approved after all unit tests and static code analysis pass, and after another developer working on the same project reviews and approves the code, and the feature branch is merged into the develop branch.
In addition to maintaining code quality, pull requests are useful to other developers who haven’t worked on that specific feature. That way, they can be kept informed about changes in the code made by other developers in the same project.
It is important for every developer to participate in code review. Junior developers can learn from senior developers, and senior developers will get an overview of what has changed.
When a feature is merged into the develop branch, the CI/CD pipeline can generate a new build that contains the new feature and make it available to QA engineers for testing. This is also a good time to generate code documentation.
We also have QA engineers that write automated UI tests that can run automatically every time a new feature is added, or once a week, for example. We can also integrate Shake for better bug reporting on all projects we work on.
Even though setting up the right CI/CD process and pipelines sometimes takes a while, it often pays off later in the development process, since most tasks are automated and don’t require the developers’ full attention.
When a team member is added, it is also easier to maintain the same code style and code quality.
- The code repository
Clients have access to the code written by our team at all times. We usually use BitBucket as source control, but if that doesn’t suit their needs, we’re open to using another source control system like GitHub, GitLab, or Azure Git.
- Analyses and reporting
IT Services India has been working on a custom bug reporting tool, the previously mentioned Shake.
In beta development, Shake is usually integrated into the application. If you encounter a problem while testing, you simply shake your phone and Shake is automatically triggered. With this application, one can take a screenshot of the current screen, and mark a problem with their finger.
In addition, you can add notes, repro steps, or any other information that might help our developers resolve the issue. All of this is translated into our task management tool so our developers can see it immediately.
The shake app can be integrated into any native Android or iOS application with just a few lines of code, as well as cross-platform applications written in React Native or Flutter.
We’re experienced with other analytic tools as well, like Google Analytics or Mixpanel. When you read our blog post about analytic tools, you’ll learn more.
- An overview of our tools
Integrated Development Environments
IDEs used are:
- Android Studio
- XCode (iOS)
- Microsoft Visual Studio Code (React Native)
Collaboration and Productivity
Itservicesindia uses the following tools to track and collaborate on everyday work, both internally and with customers:
JIRA -Project documentation and all tasks are stored in JIRA, and the client has access to our JIRA project. Thus, the client is able to keep track of our progress at all times.
Slack -Slack is the application we use for all of our informal communication. It is simple and effective.
Confluence -It is our trusted companion to use Atlassian’s collaboration platform
MS DevOps / Teams- Microsoft’s collaboration platforms for development
Trello -Using it simplifies the task tracking process
G-Suite -It is a powerful platform that supports our documentation, e-mails, and much more
Float -Resource planning and project management
Software Control (Software Configuration Management)
Git -From day one, we adopted git and have used it ever since
We use BitBucket primarily to host our git repositories. This is also shared with our clients so they can have real-time insights into our work GitHub is our secondary source code repository GitLab is our secondary source code repository
Using Jenkins, we can accelerate the deployment process (by delivering a new version of the application to the client and to the application store) BitBucket Pipeline – we leverage BitBucket Pipeline to automate our deployment process.
The Fabric/Firebase enables us to share alpha/beta versions of the application with our clients. The MS AppCenter enables us to share our applications.
Jazzy – A tool for in-code documentation MkDocs – a framework for creating modern software documentation JavaDocs – a standard for documenting Java code
Selenium/Appium – performs automated UI tests XCTest – performs unit, performance, and UI tests on iOS Espresso and Robotium – for instrumentation (UI) tests on Android Mockito, Hamcrest, Robolectric – for running unit tests on Android
Testing the robustness of Android’s UI with Android Monkey
- Reporting and Analytics
Each of these services tracks how users use the app, whether it’s Google, Mixpanel, Flurry, or Firebase.
They should be able to tell what parts of the process they visit more frequently, whether they get stuck at some point, and whether they have triggered some kind of event, such as calling for help, as well as when it occurred. Our service provides us with the information we need so that we can make the app even better with updates, and fix any potential UX problems that may arise once we have users using the app
Crashlytics: It is an analytics tool that finds any technical problems or crashes in the app within 3 weeks of launching it. Any problems it finds within 3 weeks will be repaired free of charge.
ShakeToReport: this is a custom tool that is integrated into the app during the beta period. You shake your phone when you run into a problem while testing the app.
In the next step, the module takes a screenshot of the screen, and you can circle the problem, add comments, and then submit it. This information is then turned into a task in our task management tool, so out developers can fix it right away. All the problems you report this way also qualify for free bug fixes for three weeks
- Design of User Interfaces / UX
Zeplin – it’s impossible to get pixel-perfect UI resources without Zeplin Figma – a modern and easy-to-use design tool
A developed mobile app for iOS or Android. But we are more than that. We are people who are passionate about technological advances, and who can solve sophisticated problems.
Using Scrum and Kanban methodologies, we use an agile development process.
As part of our QA processes, we conduct regular code reviews, participate in unit testing, and employ test-driven development. Our software has extensive documentation.
The importance of transparency is high on our list of priorities. And as we said, it goes both ways.
Please feel free to send us any questions you may have at firstname.lastname@example.org. I hope this guide helps you better understand how we work and set up our team and tools.