Companies that develop custom software for other companies have a lot of experience working with their clients. In this article, I’ve asked a range of them to provide their advice for working with clients.
I asked a range of software development companies a single question. The question was:
If there was one thing you would recommend to potential clients in order to have a great outcome when working with a software development company, what would it be?
Their answers are in this post. I mentioned it was OK to only provide a sentence or two, so some answers are longer than others here.
Summary of Responses
There are some common points mentioned in the answers below, as well as some unique points. Here are some of the most common and informative points:
Review the vendor before choosing them. Rather than just choosing a vendor based on their website or a phone call, do some research into their reputation, their references, and experience in your business domain.
Don’t cut corners when choosing or working with a vendor. Testing and project management is important and contributes to a successful product. Also, don’t just choose a vendor based on price.
Meet the team in person and find out more about them. Some organisations below mentioned that this happens as part of their process. This can help build a relationship between the two teams and two companies.
Understand the process. Many development teams start with some requirements, build an MVP or a first version, gather feedback from the client, and make adjustments. The solution doesn’t need to be defined up-front and rarely will the first version be exactly what is needed.
As a client, make sure you have the time available. Building software works best when the client is involved throughout the process. This means attending meetings, providing feedback when needed, and answering questions that are received.
Here are the responses from each of the companies that contributed.
Camilo Paez, CSO, Foonkie Monkey
Website: Foonkie Monkey
The key is the planning process, therefore define in detail the scope of the project, the user stories, and the use cases are the most important elements. In the second position, include the client representative into your scrum or agile process, working closely with your product owner will maintain both sides, client’s and software provider’s expectations in the same spot.
Mind IT Systems
Website: Mind IT Systems
Timely feedback on each delivery within the defined time frame.
Kuzmenko Evgenia, Marketing Specialist, Kitrum
Here are a few things KitRUM would recommend in order to have a great outcome when working with a software development company based on our own experience:
1. Set a meeting schedule. Organized meetings speed up connections and involve all the stakeholders in the same way. We usually arrange a weekly meeting with clients to check the code and discuss the state of the project overall.
2. Decide which project management tool you’re going to use and stick to it. Here at KitRUM, we use Jira for time-tracking, Trello for task tracking, We’re pretty flexible and experienced in terms of PM instruments like Basecamp, Wrike, Asana, LiquidPlanner, etc.
3. Be careful and attentive. Avoid loopholes when signing the contract. Here are our own advice of a properly drafted contract:
- Specify the expected outcome as well as the timeframes
- Inculcate code guarantees and specify the acceptance testing period
- Include intellectual property rights clause
- Sign non-disclosure and confidentiality agreements
- Include indemnity and termination clause
Deepu Prakash, SVP, Fingent
It’s hard to precisely scope a software project. At the same time, determining the exact scope of a software project is crucial since it has a significant impact on the success of an outsourcing engagement. Inaccurate requirements result in the failure of software projects.
If you are a customer with limited technical know-how, it’s often hard to express what you really need. Sometimes, you may not even be sure whether the software will solve your problem. When called in to rescue software projects that are on the verge of failure, we often discover that the requirements were written on a wing and prayer, sometimes by the vendor and often by the customer. So how can you scope projects better?
- Focus on the area that you know best – the problem and the desired outcome. Document as much information about the target users, the problem, and the desired outcomes. What would the customer’s world look like if the problem were solved? This will not only help clarify your understanding of the problem domain but will also help develop an understanding of the solution
- Invest in creating detailed project requirements, preferably in a visual format that non-technical users can understand. Most modern software development firms provide analysis services, where they explore the problem domain, customer personas and desired outcomes to create a detailed project scope. This exercise and the deliverables from this service will help you and the vendor create a shared understanding of the proposed solution.
- Use the visual representation of the solution (wireframes and/or mock-ups) to demonstrate the solution to potential end-users and investors. Obtain as much feedback as possible. Use this feedback to improve and prioritize requirements.
The list of requirements, ranked by priority (obtained at the end of step 3), should now help you develop a budget and (together with your outsourcing partner) create a detailed project plan that can deliver the desired outcomes.
Nataliia Kandaurova, Marketing Manager, Jelvix
Before collaborating with a software development company, the businesses should review the vendor’s business reputation and references, as well as their expertise in the related business domain. You need to pay attention to the vendor’s ability to think out the architecture in a proper way, recommend the right tech stack for a project and provide the client with the required resources and feedback on time.
Tim Hamilton, Founder & CEO, Praxent
I would recommend that clients understand the hiring process of the firms that they’re interviewing. In other words, what is the process, are they doing multiple interviews, what are the questions they ask, what’s they’re hiring methodology etc. More than anything else, the people on the team that serves the client will drive the experience. Other things like the approach, the method, the culture are critical but perhaps the most important thing to consider is the hiring methodology.
Secondly, beyond the hiring methodology, ask how they staff their projects. How do they make decisions about which of their team members are staffed on a particular project, seek to understand whether people will be split between two, three or four projects or if they’re dedicated on a single one. Context switching between multiple projects is a huge productivity killer and clients need to understand the firm’s approach to staffing in order to make the most informed decision and ensure the best outcome for their project.
Regiane Folter, Uruit
For lining up the team and fostering commitment towards the project, I’d recommend having an onboarding process with the development team. Building software requires fluid communication and alignment to be successful and in my experience, having a good onboarding strategy is key to getting the team together towards a common goal. In this process, that could last a few days or even a week, the dev team adjusts to a new project by learning about the product, its users, and the business in general. Lastly, the team sets expectations and defines how they will collaborate to develop the best solution.
Tiberiu Popa, Founder & CEO, Ascendro Technologies
Website: Ascendro Technologies
I would recommend some general things instead of one:
- try to get a recommendation from some other company using the services of the software agency
- see the skills and experience of the actual people who are working on the project
- set a working model that relies on short feedback cycles until trust is built up
- try to meet in person the people who will be responsible with the project
- agree on some delivery metrics together with the provider
- ask some support for a consultant or friend in the industry to help validate the potential provider who fits best in terms of skill, price and working methods.
Yaroslav Shevchenko, AddaxCRM
That’s a tough one. I’m sure you will hear: clear/complete requirements, communication, testing and other standard advice that any software development company would stress.
I will try to be different. I wish my clients would not cut corners. Test coverage, QA and PM contribute 50% to the success of software we are building. And sometimes my clients do not understand how important it is. As you probably noticed, I mentioned “Success of software” not “Successful project”. That is important for us. If wee built software and client does not use, for any reason, I believe I’m partially accountable for this failure.
Brian Cardarella, Founder, DockYard
It’s not clear to me what “great outcome” means in the context of building software. We can only build to spec or desire, but the actual market fit and/or business needs of the product may be wrong and the outcome could be poor.
When it comes to building as the client needs the business of custom software solutions comes down to ultimately keeping the client happy but the best clients accept push back from consultants that know their domain pretty well. It isn’t and shouldn’t be the responsibility of the consultant to make ensure the products they build are profitable but it should be their responsibility that the products enable profitability and absolutely don’t hinder that effort.
Sergii Shannin, Co-Founder, eTeam
The most common mistake we face among customers is undeniably the desire to build an entire product from scratch all in one go.
We recommend starting with an MVP. Customers need to keep in mind that the MVP goal is to validate a product idea with real users as soon as possible. So the customers should only focus on those features that help them to validate their hypotheses.
Łukasz Wroński, CEO, Gorrion Software House
Website: Gorrion Software House
Tell the software company what you want to achieve, not how you’d like to achieve it. If you chose the right agency then you should have enough trust to believe that they are capable of proposing you the best solution. You can then work it out together, but letting them to propose the “how” to your “what” means that they can use all their professional knowledge and positively surprise you with the results. Forcing your own vision might limit their creativity in the area where their expertise lays.
Ankur Agarwal, Co-Founder & CEO, Clarion Technologies
Website: Clarion Technologies
When working with an offshore development company, get your expectations aligned and streamline your communication before getting into an engagement.
The second most important point would be – Sign an NDA and ensure your Intellectual Property is safe.
John Curtis, CURTIS Digital
Website: CURTIS Digital
Easily the most important [thing] would be a product or project manager. You need someone that will be allegiance to the project and the customer needs while being able to defend, define, and describe what is needed to the dev company/team. I find that this file missing either from the customer or dev shop will often lead to a distaste sous outcome. Even with the dev company having a PM, it’s critical that they have the relationship or proper cramming with the customer to be able to effectively manage them. This not only means typical PM responsibilities but also learning how to push back, juggle, and compromise on scope and changes when needed.
Beata Green, HeadChannel
Build a prototype first.
Derek Harrington, Entrision
Be sure to be diligent in identifying and addressing risks upfront. Lay out all the things that might derail the project, and have a plan of how they’ll be avoided/addressed.
Raluca Stegaroiu, Project Manager, eJump Media
Website: eJump Media
I would say that the most important thing to achieve great results is the brief. Name all your expectations right from the start and stick to them, based on this, a plan can be built in a realistic way and the company can deliver in the agreed time frame.
Also, take all the time you need to understand the work that is going to be done before signing a contract, a good company should be able to explain their workflow, the milestones for your project and all the steps needed, in non-technical terms.
Iryna Savruk, Business Development Manager, Incora
We believe that clear communication of requirements is probably 50% of success. Prepare a few nice examples of a solution that already exists, provide detailed mockups and designs. If you don’t have them, you should be ready to have regular meetings to clarify what is exactly needed and check what was done step by step. It is important to have regular communication and approve or reject the suggestions of developers before they have done a big chunk of work.
Grzegorz Rduch, SoftKraft
I’d say it’s never just one thing, but rather a good fit along a number of criteria/dimensions, such as, for example:
- client-specific challenges/needs vs. (currently available) team’s competence profile – do we have the right people to do the job well and score high on the client satisfaction metric?
- “good chemistry” between the people involved on the client’s and provider’s side – do the client people like the people on the service delivery team and vice versa? they will be collaborating fairly intensively for at least a few months if not years – would they engage our team members as fellow workers and vice versa?
- compatible payment terms used by both parties
Achim Rohr, Client Solutions Manager, Rokk
The short answer is: First agree internally with all stakeholders, what problem needs to be solved. Don’t try to solutionize in your brief. Communicate clearly and early.
The above might seem obvious, but we often experience a lack of understanding of what exactly the requirement is, once we start probing a brief/the client in more detail. Often the wrong people draft the brief, e.g. a technical website brief created by a marketing manager w/out technical understanding of the more complex requirements.
Justin Etheredge, Partner, Simple Thread
Website: Simple Thread
One thing I think is critical for a great outcome when working with a software development company is to make sure you have the time available to regularly interact with the team building your software. Any great software consultancy is going to want to integrate you into every step of the process. Creating software is an intensely collaborative process, and you need to make sure that you can dedicate the time required, or the end result is not going to meet your needs.
Łukasz Bargieł, Chief Operating Officer, Vimanet
There is never a quick answer to a quick question :). To keep it as short as possible I will stick to the clients with no experience of working with software development companies (early startups).
Ask the company about the workshop of their development process
The most common starting point of the cooperation between the client and the software house is the workshop of the product that the client would like to build. After that, there comes business analysis, development, etc. Very often customers are surprised how the product development works, that they need to be involved in each phase of it. Client needs to understand that they build this product together with the software development company – what developers do is only crafting their vision into fully operating software. Not knowing the process that is pretty unique to each software development company will only make the entire co-operation painful.
Choose the company wisely
Instead of using the development hourly rate as a filter for software development company selection, check what the company does, what they’re most experienced with. The lowest rates are characteristic of so-called “generic software houses”. Companies that do no matter what (mobile app, web app, desktop app) using no matter what technology (.Net, Java, Python) – it’s quite obvious that if you do everything you cannot be an expert in a single technology. If I could recommend anything I would say – choose a company that hires between 20 – 50 developers that is focused on single-core technology and has couple of projects done in the same domain that you’re gonna build your product in. Going under 50 should let the company keep rates on a reasonable level although if your idea requires several larger development teams it may not be enough for you.
Don’t worry to ask if it makes sense and if it’s worth doing it
A lot of ideas may seem to be brilliant but has no sense in the world of software (web applications etc). Make sure that the company that you’ve chosen will not blindly follow your vision but will keep questioning a lot of stuff.
Keep the app simple for the first phase and then start adding the features – not the opposite. Otherwise, you will end up with an empty wallet and the product that is not fully operative but has maybe one or too cool features that nobody will use.
And the last one – Make sure the company put the communication with the client on the top of everything :).
Péter Kalmár, CEO, Webtown
I think the most important is to understand the vision and the goal of the product for the entire team. The best product will work out if the customer and the team can work as a whole. Software development is a continuous process of creating new features with a permanent feedback loop in an agile way. The earlier the product can go live is the better to collect real experience and built it back into the product. If the customer has this point of view it’s a big step to succeed!
1) Company history over 5 years
2) A dev team with a minimum of 4-5 years experience
3) Minimum of 2-3 projects with scope over 2000-3000 working hours
4) Referrals from old clients, so their are guaranteed not only a contractor but also a partner to you rely on
Dmitry Reshetchenko, Diceus
For any customers who are about to start working with a software development company, we would recommend considering expertise in a specific business domain.
For example, if a customer is an insurer, he should pay attention if the company of his choosing has ever had some experience in managing such projects. Search for relevant case studies on the company’s website or ask for a detailed case study to explore what technology stack your potential provider used and how they handled SDLC. The other important thing about the expertise is to find out what business value the company delivered, i.t. how the customer benefited once the project was over.
Konstantin Boyko, CEO, JustCoded
We always encourage our clients to get involved in the process of product development as much as possible. The client understands the ins and outs of their business better than us, that’s why their genuine participation at every stage is beyond important to ensure the end result meets the expectations
Matias Emiliano Alvarez Duran, Co-Founder & Consultant, NaNLABS
Here are some ideas we consider important to have software development teams working effectively.
I believe these are more “client responsibility”:
- Overall business visibility & clear objectives.
- Collaborate on keeping the organization.
- Be involved and try to understand what the team needs to be successful
Ian Reynolds, Chief Solutions Architect, Zibtek
Make sure the company has a process – and that you and your team can fit into that process appropriately!
Péter Illés, Founder, Managing Partner, Further Digital Solutions
Website: Further Digital Solutions
Make sure you don’t compare apples to oranges. Lots of development companies are able to underbid others by saving or even completely skipping on some tasks like automated testing, documentation or support. A detailed project brief or a good requirements specification helps with this. Maybe even hire an outside consultant to help you compare and choose the right solution.
Roman Korzh, VP of Development, Zfort Group
Website: Zfort Group
I’d say this: 2 weeks of planning save 2 months of work.
Nate Aswege, Director of Marketing, Techtonic
I would advise that clients be VERY precise and accurate about their projects. From specs, user needs, budget, timeline etc. Having clear expectations right from the start always leads to better work and a stronger partnership.
Adam Brazg, Co-Founder & CEO, Bilberrry
Why is the project happening?
The real, business-centric answers to WHY is where every design and development problem starts. Complex projects will have lots of WHYs. Capture all of them.
Maria Zozulia, Delivery Manager, AltexSoft
I would recommend focusing on companies with experience in solving business and technology problems in your business vertical.
Phil Alves, CEO, DevSquad
Most software projects fail because founders fail to plan, we require all new clients to fly to Utah and do a Design Sprint with us, we call our version of the design sprint, Sprint Zero.
My recommendation to anyone hiring a development company it’s to do a Design Sprint first, If a development company doesn’t know what that means or doesn’t have experience running a design sprint, the risks for a client are 50x higher.
Maciej Kopczyński, Interactive Director, Green Parrot
Website: Green Parrot
Comprehensiveness of the services offered due to the fact that the responsibilities and projects are spread out in a time when this complexity does not exist in one place.
Every day we meet with projects that suffered because they were not supported by companies offering a wide range of services. A lot is said that we need to specialize – of course, but specialization should be supported by SEO departments, campaigns and business approach to how the product we are supposed to build for the customer should bring the users or sales? Where will they land on its structure and from which sources should we reach our goal.
Kamil Kaniuk, Head of Business, Merixstudio
Website: Merix Studio
When working with a software development company it’s worth to check out if your partner is able to provide you with fully-fledged support throughout the whole project’s lifecycle.
The same rule also applies to other areas of software development. As most IT projects require not only programmers’ work, a vendor should be able to provide experts like Testers, Project Managers, UX specialists, and UI designers. A software house with a well-established workflow for sure will help you compose the best team for your demands, and prepare an evaluation based on the materials you’ve presented. A reliable IT outsourcing partner offers a wide range of solutions at every step of the product design and development process, from Google Design Sprints, Scoping Sessions, through UX workshops, to development, testing, and delivery.
This full-stack approach can give you a holistic view of your project and help you scale your business.
Manish Bhalla, Founder & CEO, FATbit Technologies
Website: FATbit Technologies
As most of the potential clients know that a good website is the first door for reaching out to the audience, it’s important to ensure that you choose a perfect tech partner. Here are certain factors that should be considered:
Gain Insights into the Team’s Background
It’s a healthy practice to delve into the team’s background, their work experience, and the variety of products they have built. By doing so, it becomes easy to partner with an established team that diminishes the risk of project failure.
A Glance at the Testimonials
Look for positive quotes (written by happy clients) on the website that are a testament to their work. Also, going through the case studies can help to acquire details about the company’s development process and the projects they have worked on.
Understand the Domain Expertise
Finding a proficient team that specializes in projects that are similar to your idea could be a great option. In such a scenario, the company will easily understand your goals and create a suitable product as per your choice.
Marlene Lowe, Director UK, Forbytes
Our recommendation would be to invest time in a proper discovery and design phase before starting the project. Have experts help you analyze your business idea and create a plan for the implementation. That will result in having a clear understanding of how to move forward and identify the right people in your organization to work on the project. That’s our starting recipe for making sure that both the project and the business relationship are successful.
Michael LaVista, Founder & CEO, Caxy Interactive
Website: Caxy Interactive
Don’t slow yourself down by imagining you have to put a giant requirements deck together. And in our experience, requirements written by non-software companies are only moderately useful. Going in together with the software company to ask and answer the right kinds of questions.
Instead, be clear about outcomes and the kinds of things you want to accomplish for your users and with your business. And use the expertise of the software company to help you get there.
Be open to the idea that no one will have all the answers. Experience tells us that software is a collaborative process, not a transactional project.
Mariia Aleksandrova, Marketing Manager, Eastern Peak
Website: Eastern Peak
It is common practice for business owners to base their decision solely on the price when choosing between software development vendors. They usually forget that it’s the final cost that matters, not the initial estimate of the development efforts.
The thing is, the project which is initially priced low (that is quite tempting) in many cases goes 2-3 times over budget, misses all possible deadlines, or turns out unviable due to poor quality and multiple bugs, which in turn leads to lost revenue and missing goals.
We at Eastern Peak believe that even if your budget is limited, there are many ways to reduce app development costs. You can take time to plan thoroughly and clarify your requirements, start with an MVP development, and choose a vendor with a well-oiled process and professional management.
Nick Ciske, CTO, LuminFire
Realistic expectations (scope), budgets, and/or timelines are critical to great outcomes. Listen to your developer when they tell you one (or more) is unrealistic and work with them to adjust these to ensure a successful project.
At Rootquotient, we deal with startups and enterprises. We commit to not just be a software development company but a strategic technology partner to our clients by working at the intersection of Technology and Business. When the clients just state their problem and stay open-minded to innovative solutions, we as a partner go the extra mile every time around the latest technologies and deliver the best results for them.
Neel Sus, CEO, Susco Solutions
Website: Susco Solutions
Neel provided some information in an article on Forbes, which covers:
1. Provide Information Early On
2. Give Them An Incentive
3. Be Clear And Honest About The Details
4. Maintain Communication
Yasser Bashir, Arbisoft
My recommendation to all clients would be to first focus on building trust with a partner company. As with all relationships, trust is a core ingredient in a successful software development engagement and can be built by opening up as many communication channels as possible. The nature of modern software development is highly volatile and hard to plan for well in advance which makes trust doubly important.
Sebastian Pöhlmann, Managing Partner, Specific-Group Software Solutions
Website: Specific-Group Software Solutions
To check that the development experts have business domain knowledge (possibly credibility/ track record in the area the software which needs to be developed) and are understanding the cultural aspect/frame. Then you avoid a lot of unclearness, basic questions and reach better quality from scratch.
Dmitry Kresin, Co-Founder and CMO, Ardas
My top 1 advice I always give to almost all clients (especially startup founders) is never sacrifice architecture and design phase. I mean backend architecture (including database) and front end UI/UX. All serious issues start later because of a lack of attention to architecture. Thus, a big mistake is to think that architecture is something we can minimize and save money and better use funds to develop more features.
Emil Muthu, CEO, Neurony
Insist on spending more time in analysis/planning; it will improve the outcome of the project and the overall relationship between your software development company and your own.
Also, for big projects with multiple integrations and a lot of moving parts, expect things to go slightly sideways at least once — it can’t be helped, but if you had spent enough time in planning, it can be mitigated.
Hosam Mazawi, Co-Founder, LemonUnit
Make sure you define the product you are about to develop to the smallest detail, what you have in your mind is NOT what the development team will have, they need to see the big picture and the smallest moving pieces.
Even when you hire the best software engineers to build your product, they might misunderstand your product. If you don’t know how to prepare your product for development, it means the company you will be working with should be doing this with you, or you should hire someone who has the experience.
Andreea Marcu, CMO, Arobs
The outcome of a software development or IT outsourcing partnership is the result of a lengthy process. At AROBS, we believe that the most important step is choosing the perfect partner for your project. A good start, with the right partner, is what will entail the coherence for the project, quality of the code, the agile development, the proper management, and, of course, will bring the best possible outcome.
So, looking from this perspective, of the best possible start in a software services and development project, we suggest following a checklist of 11 questions to ask your future partner:
- Do they have the specific expertise for a specific industry of your future product?
- Do they have a portfolio on similar projects?
- Will they customize for you?
- How about a good UI/UX Development team?
- Do they have good developers, agile tools, great delivery teams, and full tech support?
- Are they internationally certified?
- Do they have QA testers and security engineers?
- Is their culture based on transparency and ease of communication? How about English proficiency?
- Is the country where the company is based globally, logistically connected and does it have a stable economic and political system?
- Is your future partner a Responsible company? We believe, we must make sure that our business partners go beyond the regular, mainstream CSR and are really involved in making the responsible choices for a better future.
- Do the costs reflect the proper quality of work? Keep in mind that the cost of a software development project must include a proper balance between developers, testers, and PMs of different seniorities. No project will be ever successfully delivered by a team made of junior software developers. The cost will include the continuous training of the personnel, the quality and the comfort of their offices and many more. Empowered teams build exceptional products.
Nagendra Rao, Vice President – Sales and Marketing, Trigent Software
Website: Trigent Software
Beyond the due diligence on the company’s facts and figures, the discussions with the project teams must point to a technology-fit. Thereafter, the paramount consideration must be on establishing the “trust factor.”
This can be done by asking the company to showcase their experience in executing projects of similar size, duration, challenges, technology, and product/application lifecycle. Finally, an in-depth discussion with the company’s customers will provide the much needed external validation of their success story.
Jason Garber, COO & Co-Founder, PromptWorks
I would say to potential clients: Unless you’re intentionally “building one to throw away” (perhaps a prototype for investors), don’t cheap out on developers. Hire a company with a solid reputation, excellent design, leading software engineers, and many examples of work that is still in production years later. You don’t want to spend hundreds of thousands of dollars just to realize the programmers were cutting corners and didn’t write any tests.
We’ve had to rescue so many projects where the clients weren’t getting the quality they deserved, but it took them many months to discover it. Spaghetti code will cost you many times the original cost to detangle once you’re dependent on it.
Denis Shugaev, Head of Business Development, Smart IT
Website: Smart IT
Communication between client and vendor is everything. Continuous communication means a better understanding of the client’s goals and business objectives, which allows to deliver precise results. It’s crucial not to make the mistake of thinking that, once all processes are in place, there should be less of it.
In this regard, I think meeting with clients face to face several times a year has positive results for both the development team and the client in terms of motivation and productivity. It also gives opportunities to compare notes, synchronize and show clients they are working with real people, not just some abstract remote team.
Michael Astashkevich, CTO, Smart IT
Website: Smart IT
A client’s involvement in the work process is very important. Even if they have a PM in place, it’s crucial that the chain of communication doesn’t become too long or complicated. Much too often buyers think that by commissioning a project, they are making a direct contribution to their business development without having to make any additional input.
The truth is that development is an iterative process and needs verification and control. By always being involved and making sure the product corresponds to actual business needs, whether that means getting feedback from the business unit that will use the product or going over weekly developments with an in-house PM, can clients guarantee the product meets their expectations and we can guarantee that our work is on point.
Matt Brown, CEO & Co-Founder, Waverley Software
Website: Waverley Software
At Waverley, we believe the key to success when working with a software development company is transparency and communications. Developing software is a lot more than just writing code. It’s about solving problems, about understanding the requirements, understanding what a client wants and the ability to communicate, to talk to people, to get to the bottom of the challenge which is exciting.
The right software development company cannot just blindly build what the client asks for. They have to give much more than that. Through communication, we get to know our clients and we understand their priorities and what’s most important to their business so that we have a better understanding of what we can do for them. At the same time, our clients can learn from us, rely on our experience and expertise in building software, we’re helping guide our clients to understand the development process.
Also, one of the first things discussed with new clients is face-to-face time, we encourage customers to meet their development teams in person. Another point is feedback. The right software development company constantly strives for self-improvement. We always ask our clients, “What could we have done better? Tell us where to improve so that we can become the best we can be”. The partnership requires collaboration, communication and trust. We come to the table with those things open-heartedly as both sides should have the same level of commitment to be successful.”
Piotr Banaszczyk, Head of Operations, Clearcode
There are a number of variables that will determine whether a software development project has a great outcome or not, some of them you can control and some you can’t. Regarding the ones that you can control, I’d say that having a clear vision, proper approach, and strong communication between all parties involved will more often than not produce a great outcome.
For companies wanting to work with a software development company, I’d recommend defining what your business requirements are before you contact a software development company, having a person on your end that can act as a product owner who can communicate with stakeholders and users, and be willing to define the scope based on facts and not feelings.
Jurica Mikulić, Chief Business Development Officer, Ingemark
I’d say it would be “specify exactly what you want”.
To elaborate a bit on that, a lot of potential clients, especially ones which haven’t previously worked with a software development company – and I presume those are the ones you’re talking about – approach us with a rather rough idea of the software they’d like us to develop, without a real specification, or at least without a detailed one. In that situation, it’s impossible for us to give them a quote or an estimate of how much time and money it would take to develop the software they’d like. That often leads to disappointment and frustration on their part.
Also, software development companies which do give them a fixed price quote will typically put a lot of “buffer” into that quote to try and compensate for the risk of a lot of unknowns, leading to a higher price from the very start. Writing a specification is also good for the client because it forces them to assess aspects of their desired software they usually wouldn’t – describing their software in writing in a systematic way tends to give them new perspectives and ideas as well.
Chris Hobbs, President, TTT Studios
Website: TTT Studios
The main recommendation I can give is in the case of a client working with experienced development teams like TTT Studios. The software journey includes ideation, design, and engineering. The lean startup tells us that a new company needs to learn quickly. Since companies like ours have built up a war chest of knowledge working on client projects in every industry it is best to leverage this experience to produce world-class software. Don’t expect the relationship to be “I will tell you what to do and you will do it.” Expect to work together towards the project success. This partnership is a benefit that one can’t get from just working with an internal team.
Michael Grubka, Head of Business Development, Gecko Dynamics
Website: Gecko Dynamics
That’s a very generic question and it’s hard to really highlight this one thing. However, I would certainly recommend making sure that the company understands your project, not only technically but also from a business perspective. The genuine reason of most of the problems is not fully appreciating the project’s full functionality and complexity related to it, which often results in project being underestimated in terms of cost and time. How to verify if the potential partner understands the project? Ask the questions about its crucial parts and watch not what they reply, but how they reply – if you notice that they actually hadn’t done their homework in understanding your requirements, then it means they probably don’t care too much, which should turn the warning light on.
Please also remember you can help them in understanding it by providing informative materials – the best ones that the software developers can get are designs or mockups, but informative descriptions are also good.
Justin Gordon, CEO, Shaka Code
Website: Shaka Code
My advice would be to ensure that both the client and agency are on the same page with realistic expectations of goals to be met on a weekly basis. ShakaCode provides weekly reports that detail all the work spent the prior week. This article Clubhouse (Jira/Trello/Github) Toggl Time and Task Tracking details how we do this.
As mentioned in the article:
For our clients that use an agile project management tool, like Clubhouse or Jira, it’s useful to know how much time was spent on various stories and epics. Why?
1. Such data can help for future estimations of story points and required resources.
2. Such data shows where time was spent and how it correlates to delivered work.
3. Such data can help with the evaluation of developer effectiveness.
Andrey Royenko, Marketing Team Lead, Apriorit
Software engineering companies use IT outsourcing to cut costs, speed up product development, enrich their teams with rare talent, and introduce innovations with minimal risks.
Thorough planning, quality two-way communication, and clear rules are the keys to building efficient cooperation that benefits all parties involved.
Ben Jeffrey, Client Director, Blue Line Media
Website: Blue Line Media
I’d say testing is the most important aspect that clients can contribute, you will always have a different perspective on how a system works so it’s important to make sure the people who will use the system actually try it out as part of the development/completion process.
Andreas Flodström, CEO and Founder, Beetroot
The majority of mistakes in working with software development teams occur because clients perceive them as a short-term project over the permanent reinforcement of their capabilities—one that grows over time. To make this cooperation function effectively, regard it as a long-term investment, build trustful relationships with your software development team and treat them as a part of your in-house capacity.
Marek Gajda, CTO, The Software House
Website: The Software House
Try to build unique synergy between you and your IT vendor. Instead of perceiving this relationship only as a customer-vendor one, think about how you can really help each other and fill gaps in things that the other party lacks. If you want your IT partner to care about you and your business, there’s no better way than to show that you understand and care about their needs too – rather than just paying them and expecting results.
From our experience, most of the failures that start with customer or vendor (usually both) include some hidden problems they don’t want to share – in the belief that it shouldn’t concern the other side. That’s very naive, as nowadays success is not measured in how spotless you are, but how you can overcome the obstacles with the help of others.
Kate Kryzhnenko, Business Development Manager, Django Stars
Website: Django Stars
I believe there is no right answer to this question, but in my opinion, the most important is the right planning, i.e. the Discovery phase.
Frederic Joye, Co-Founder, Arcanys
I would advise them to have a very clear idea of what they want. It depends what they’re after and their setup.
Do they want to outsource a project or to build a dedicated team? Do they have their own technological capabilities or are they without development capabilities and don’t know how this works?
The actual answers may vary depending on the audience.
Thayer Tate, VP of Software Solutions, Soltech
Scope out the project and set expectations
I recommend you have a clear understanding of what you are going to be delivered before you start a project, to ensure your expectations are met when it comes to product, cost, and timing. We often begin projects with a Software Discovery that scopes out the solution design, technical requirements, and creative design that will be needed for the project. The software design should also include an estimation of cost and time to completion. See our eBook on the Beginners Guide to the Discovery Process.
Choose the right software development partner
Choosing the right partner to work with can make all the difference. Put some time into choosing the right Software Development partner. Some things to consider when looking at different vendors:
- Vet the company, have they been around for a few years, how many employees do they have, and where are they located, are good questions to ask because knowledge can be lost when developers leave the company or are no longer around.
- Make sure that you have ownership of all the assets and code that you have had created.
- Make sure you understand where your application and service will be hosted. Always set it up in your name.
- Think beyond the initial project and how support will work post software launch.
- Make sure to understand the breadth and technologies the company supports, be aware that the company sometimes recommend technologies because that is what they do best, and not what your project may need.
- Make sure you can see some work before paying out too much.
Alexej Spas, Instinctools
Here are several tips I would recommend to potential clients in order to have a great outcome when working with a software development company:
- Make sure that a software development team you rely on has dived deep into your technical processes and understands your business needs. A proper analysis helps to prevent missteps from the very beginning – errors are so hard to correct when they are found late in the process.
- Pay attention to the details since it’s the details that matter. Even a seemingly small part of an overall plan can cause a problem if it is on the critical path.
- Be risky enough to pursue ambitious goals. Because, what’s even riskier, is lagging behind the progress, while out there your rivals are updating their businesses in the way you’re afraid of.
Glenn O’Grady, CEO, GuideSmiths
Set the grounds of a healthy relationship by ensuring there is transparency and honesty on both sides. This is in all aspects of the relationship including how you negotiate fees, contracts right down to how code is deployed.
Also, set your expectations on deliverables and timeframes and be responsive and collaborative when developers need your help. Don’t engage a third party without giving them the tools to succeed, such as a clear vision of the product, a single product owner/stakeholder within the business and sponsorship to drive through the change from top to bottom.
Brian Walsh, Passionate Account Manager, Vincit
Every software development project should have a Project Owner on the developer side and a Product Owner on the customer side. Project Owners could be a traditional PM or the lead engineer, but that person must be identified and responsible for the lifetime of the project. The customer should identify a person to be the Product Owner. They will attend all regular meetings and communicate on behalf of the product/customer.
For the best relationships, the assigned product owner needs to have the authority to make immediate product-level decisions while also having the ability to make product altering decisions.
Igor Tkach, Managing Director, Daxx
To facilitate successful cooperation with a software development company, I would recommend giving continuous feedback on what is being done. In that case, your development partner would know if they’re on the right track and adjust their work if needed.