Explore the transformative role of Agile Business Analysts in project management. Discover their key responsibilities, essential skills, and impact on Agile success.
Top things to consider before partnering with a software development provider
with a software
As the IT sector grows, preparing for cooperation with a software development vendor is getting even more challenging.
Today, hundreds of thousands of companies are engaging software development service providers for various purposes. Some businesses are searching for narrow and hard-to-find expertise, while others are outsourcing a wide range of projects, all the way up to an entire internal IT ecosystem. A 2022 Deloitte global outsourcing survey shows that a whopping 76% of companies delegate IT functions to their technology partners and 52% outsource their business needs. These figures are expected to rise even further in the coming years. Unfortunately, while the involvement of an external software development provider has become standard practice, many clients still start this type of collaboration unprepared, thus decreasing the chance of their project’s success. This article provides key tips for companies that are new to outsourcing or have had negative experiences in the past.
Decide what service you need
Software development companies deliver various offerings and it is vital to clearly understand what will suit your specific business needs before partnering with them. In a nutshell, all software development services can be categorized in this way:
- Project delivery — a provider is responsible for the whole delivery cycle, from requirements elicitation to the solution’s development, testing, and deployment.
- Team leasing — a provider is responsible for forming a team of highly skilled specialists, which is managed by the client’s technical and project leaders.
- Support — a provider offers support and maintenance services considering either the client’s application or its infrastructure.
- Consulting — a provider is focused on software development and deployment consulting, including product vision and business requirements, architecture vision and technical design, delivery strategy, or UI/UX, etc.
These services fully cover the existing clients’ needs in terms of digital transformation and business growth. Moreover, their scope allows technology vendors to empower organizations amid stiff market pressure. Yet, everything starts with a thorough software vendor evaluation.
While seeking the solution that will seamlessly suit your objectives, it is a great time to ask yourself these questions:
- Do I want my service provider to take full responsibility for the timely delivery? If this is the case, you will only provide the requirements for the final product, with no need to guide the team from a technical or management perspective. So if the answer is yes to this question, then a project delivery is most likely your best-fit service. What you should consider is that while taking the delivery responsibility on themselves, the service providers will bring their processes along the way. As a result, you will have less influence on the internal team’s activities.
- Do I need a team of professionals that I can manage by myself? A positive answer here leads you to a team-leasing service, better known as staff augmentation. The key aspect here is that this type of service implies no delivery responsibility by the software development vendor. The provider will still be responsible for the quality of its work, but your company takes ultimate control over the project’s scope, timeline, budget, and other necessary resources. This model is highly recommended for clients who already have a successful in-house development team, but need to extend in order to gain more development capacity.
- Do I have an application or a set of applications that require daily monitoring and support? If yes, a wide variety of support services are available on the market, starting from a call-center/service-desk L1 support to more sophisticated L2 (complex incident solving) and L3 (bugfix and code change) levels.
- Do I have a business problem or a product idea that needs elaboration? If this is true, you can look for a consultancy service that typically includes product strategy/vision workshops, more detailed requirement elicitation workshops, and UI/UX design sessions.
When choosing a service provider, it’s also crucial to focus on the range of offerings they provide. Suppose you are only starting your product development or transformation strategy. In this situation, a one-stop-shop provider offering a complete set of opportunities, from consulting to project delivery and team leasing, might be an excellent option.
Depending upon the service type of your choice, a certain level of ‘homework’ should be done on your side before contacting a service provider. Luckily, most high-quality vendors are ready to assist even with these pre-engagement efforts. So how do you prepare your business for external cooperation if you have already decided on the specific service type? Below are several crucial tips:
- For project-based services – it is a great option to have a vision and a backlog (feature set description, at least for a high level), so that your service provider comprehends what product is expected as the final result. The more detailed your requirements are, the more accurate the project estimate will be. Additionally, depending upon the level of details you can provide, your software development partner will be able to offer a Time and Materials (T&M) or a Fixed-Price project. If you feel you lack time or expertise in preparing the mentioned requirements by yourself, contact your service provider for a consultancy service and they will help you to elaborate further.
- For team-leasing services – ensure you know what team roles and skills you need. How many people in each role are required? Who will manage the team from a process and technical perspective? If the team is big enough (10+ people), what staffing roadmap do you prefer? What experts should start their work first and whose involvement can be postponed, and for how long?
- For support services – a typical requirement includes the description of the application/infrastructure to be supported, the desired Service-Level Agreement (SLA), and the operation mode (24/7, etc.).
- For consultancy services – be ready to articulate your business challenge or idea of the final product. Also, be prepared to communicate what ‘project success’ is for you and what performance metrics can help define it from a business perspective. The provider will facilitate further communication and discussions about this. However, they can’t generate the knowledge independently as you are the primary business knowledge source here, especially if it concerns your potential client/user portrait, target markets, business goals, etc.
Whatever service or vendor you choose, ensure that you fully accept and appreciate your cooperation with an external organization. This means that experts have to obtain a minimum level of knowledge about your needs in order to start providing or even estimating the service(s) for you.
Be ready to get highly involved
The services mentioned above are tailored to meet the unique needs of each client. This means that your involvement, to a certain extent, will be required at each stage of the service provision. The type of involvement, and the amount of time and resources you’ll need to invest will highly rely upon the service of choice.
During project delivery, you’ll need to be involved in providing the requirements (tell what features are necessary) and priorities (which features are more crucial than others). Your personnel will also be engaged in constant communication with the project team so as to provide feedback on the interim and final deliverables. A typical set of roles from the client’s side may include:
- Product Owner, who communicates the feature description and priorities.
- Technical Owner, who provides consultancy on the existing IT infrastructure of your company.
- Budget Owner, who approves budget adjustments that are almost inevitable as the scope tends to change throughout software development.
The team leasing contract requires even more involvement of your in-house team as the onboarding, coordination, and management of new experts are on your shoulders. The major advantage of this approach, though, is a much higher degree of integration of the provider’s team into your organization.
At first, support-oriented cooperation with a software company can require extensive time, but once everything is set up, the provider’s team handles most of the effort. Initial activities typically include:
- Product discovery or pre-support assessment
- A transition of the knowledge from your in-house team to the support team
- An initial support process
- An SLA setup
Consulting engagements are typically short-term (2-8 weeks maximum), but require intense involvement from the client’s stakeholders. They include onsite and remote workshops where representatives from the various client’s business functions will be present. An onsite workshop typically takes a few days, of 6-8 hours daily. A remote one is generally shorter and can include 2-4 hour sessions daily. The client’s involvement, however, does not end with the workshops, as a certain amount of time will still be needed to review the documents (reports, recommendations, architecture diagrams, and wireframes) provided by the consultancy team. Although they can take some time, such consultancy projects pay back with a much better understanding of the project scope and effort required for its implementation, as well as its budget and timelines.
Why do external and in-house teams differ a lot?
This is probably one of the most essential insights the clients get when they start working with multiple vendors. There are a few points that create a very significant difference in the ways of working with your in-house and external teams:
- The process that works for an in-house team might not be viable for a service provider. A good example is switching from a collocated in-house team to an external one. Your physical scrum board will not be relevant anymore as you’ll have to shift to a remote online tool for task/project management (e.g., Jira).
- Meetings should be scheduled. You can always turn to your teammates’ desks and have a 5-minute conversation with an in-house team. But, an external team requires more structured communication with the meetings scheduled upfront via Zoom or Slack.
- The external team has less knowledge of your product and overall context, but they are more highly skilled in a specific technology stack and structured delivery processes. This is due to the fact that the provider’s teams switch between clients from time to time and need to have more generic expertise, while your in-house teammates become experts in a specific product rather than the technologies and practices (however, we are talking just about different focuses, not completely different knowledge profiles).
- In a project-type of service, a software vendor has the right to insist on their own development process, while during team-leasing you can establish your own set of practices. The choice here relies upon your experience and preferences.
- In a project-based engagement, the contract typically determines the procedure to introduce scope changes. It allows an organization and a service provider to have complete visibility of the changes and their impact on the project boundaries. With an in-house team, the typical scenario is “just come and talk to the team.” Both approaches have pros and cons, and the key to long-term ROI is understanding the difference.
Estimates are estimates, not commitments
First, except for rarely-used Fixed-Price projects, the timeline and budget estimate, which is given by the service provider prior to the start of the project delivery engagement, is literally just an estimate. The final number can change for a variety of reasons, among which the following two have the biggest impact.
Scope change requests — business tends to transform and, consequently, project requirements and project management practices as well. Even a slight difference in a feature implementation can lead to a shift in the budget and timeline.
Risks — some risks can be identified beforehand, while others will only become visible when the project starts. A high-class service provider is differentiated from its lower-class competitors by the transparency of risk mitigation it provides its clients. Every change and risk is tracked daily, and the client remains updated on the most recent budget and timeline forecast. This gives the client the opportunity to change priorities or even stop the new project if required.
The second thing to know about estimates is that you can’t expect different providers to create comparable estimates based on a one-page project description. This is because a high-level description gives plenty of room for interpretations (and misinterpretations) of the project’s scope. Therefore, opting for a software development vendor based on high-level estimates with a one-page vision document is far from comparing apples to apples — you literally are comparing different understandings of the scope (basically, you are comparing apples to grapes and onions while ’your’ fruit is, let’s say, a peach). To achieve comparable estimates, you either need to produce more detailed business requirements or ask your service provider for a consultancy service; e.g., a Discovery project that Avenga offers as a part of its service portfolio.
The most crucial things to consider when working with a software development vendor from the start are clear vision and concise communication. Establish your business goals, objectives, and expectations for the provider early on, and keep your vendor updated as you’ll need to change something along the way. Be open while communicating your budget and timeframe, and stay realistic about what can be accomplished within the project estimates. Finally, building a good relationship with your provider is key to a fruitful project – trust and transparency will go a long way.
Avenga is an international tech company with deep industry knowledge in pharma, insurance, finance, and automotive. The company’s IT specialists operate from 8 countries around the world, supporting digital transformation with projects along the entire digital value chain – from digital strategy to the implementation of software, user experience, and IT solutions, including hosting and operations. Interested in building a transparent and productive technology partnership? Contact us.
Avenga continually supports local communities, especially in their struggle for a democratic and independent world.
Avenga launched the first Salesforce course in Ukraine, which united students from four universities in Lviv at the same time.
Dive into the evolving world of Big Data with our introductory article. Explore current trends and future forecasts in Big Data.
Start a conversation
We’d like to hear from you. Use the contact form below and we’ll get back to you shortly.