What makes for a successful partnership between a client and a software design and development firm? Every project and client is unique, so that may seem like a difficult question to answer, but at Tyrannosaurus Tech we’ve got a lot of experience under our belts and have distilled some of our biggest “lessons learned” over the years into these 5 tips below.
1. Establish Healthy Communication
It cannot be overstated that good communication is at the heart of every successful project and partnership. Similar to what we find in other personal and professional relationships, most issues can be avoided, resolved, or mitigated with frequent and direct communication. Both parties should always operate under the assumption that the other is acting in good faith and make efforts to empathize with their role and position. Without this baseline level of trust and respect, it can be very difficult to work together towards a common goal.
6 Examples of setting clear communication guidelines:
- Begin the working relationship with extensive discovery and a kick-off meeting that includes all stakeholders from each team. It is paramount at the outset of a project, that we understand the client’s priorities, vision, and team. It is also important that the client understand our team, how we work, and how to best support our efforts.
- Meet weekly or bi-weekly to make sure both teams are aligned on progress, deliverables, budget, and timeline.
- Host weekly demos so clients can see tangible progress and provide feedback in real-time.
- Facilitate open and asynchronous communication in shared channels on Slack so that our team can ask questions or solicit feedback at any time while providing maximum visibility across teams.
- Provide clients appropriate visibility into our project management tools and processes so they can see how we’ve broken out work and how various “tickets” are progressing throughout the project.
- Hold regular account management check-ins that allow clients to provide big picture feedback to Tyrannosaurus Tech leadership.
2. Educate Each Other
In a successful partnership, each side takes some responsibility for educating the other on how they do business, their priorities, and how to best enable their success.
For Tyrannosaurus Tech, most of our clients are naturally not experts in UX/UI design or software engineering, which makes sense. That’s why they come to us 🙂 And for firms like ours, this gap in expertise can result in a lot of headaches, confusion, and sometimes even distrust.
Questions that may surface:
- Why does this seemling small change request result in a big change to cost and timeline?
- Why are we spending so much time on design? Can’t we just start building the product?
- Why are we being billed for QA (quality assurance), Project Management, etc? Are these efforts a good investment?
- Why are you leveraging this particular technology or third-party service? We didn’t discuss this.
- When will your work be done? Why can’t you just provide an exact date?
Questions like these listed can be addressed proactively by educating the client at kick-off and throughout the project. Rather than having our work be some intimidating black box, we make a point of trying to “demystify” technology along the way.
This doesn’t mean we need to speak in code with our clients or expect them to become tech experts overnight by any means. It simply means that making them feel comfortable with our work is extremely important for a good partnership.
Firms like ours also need to take responsibility for learning about their client so they can best help them succeed. This means getting a sufficient understanding of their business, users, industry, and goals.
For Tyrannosaurus Tech, this means asking questions like:
- What is the current state of your industry? Where do you see it going?
- What terminology and processes do we need to understand in your industry?
- Who are your users? How can we best understand their needs and pain points?
- What does success look like for this product? 1 year from now? 5 years from now?
- What are the main priorities for various stakeholders on your team?
3. Align Expectations & Accept Unknowns
Misaligned or unrealistic expectations can also lead to heartache on both sides of a partnership. It can be tempting for firms to say what they know the client wants to hear.
“Sure, we can be ready to launch by September 1st!”
“Yes, we can build your MVP for $X!””
Firms that set overly optimistic expectations may have the best intentions, but they are setting themselves and their clients up for failure. If either party feels expectations are even a little unrealistic, they almost certainly are. In these scenarios, it really is a lose-lose and both parties end up unhappy.
Aside from simply wanting to operate with integrity, we have found at Tyrannosaurus Tech that being very cautious and conservative in expectation setting is the only way to go in a successful partnership. This means being very direct and candid about cost and timeline expectations as well as myriad unknowns that exist at the outset of building any new product. It is also important to continually assess and realign expectations throughout an agile project that is ever-changing and evolving.
The dynamic between scope, timeline, and budget must also be top of mind throughout a project. These three things are linked and affect each other at all times. We often use the “table cloth” metaphor here. This means we can always pull one side of the table cloth down but just know that the other side will come up as a result.
This might sound something like:
- Yes, we can launch by that date but we need to trim X from the scope
- Yes, we can add Y to the scope, but that will delay the timeline
- Yes, we can do it at X cost, but we need trim Y from the scope
Unknowns are inevitable in large software design and development projects. Rather than ignore that reality, we need to accept it and plan accordingly. This means articulating them when they come up and “buffering” sufficiently for them in cost and timeline estimates.
Common examples of unknowns are:
- Scope Creep/Change (this is the big one!)
- How many design iterations will be required to be implementation ready
- How quickly our team will get feedback or approval on designs, questions, and decisions through the project
- Technical dependencies
- Overlooked requirements or edge cases
4. Embrace Project Management, Design, and QA
There are aspects of software development that can feel “optional” or unnecessary for folks who have not been involved in this type of work, especially when budgets are under the microscope. Project Management, UX/UI design, and QA (quality assurance) are three prime examples. The idea that these skill sets are “optional” or unnecessary could not be further from the truth.
These are not areas you want to skimp on or look to reduce costs. For many this is unintuitive but the fact is that investing in these resources ultimately saves clients time and money. Without a doubt.
That’s why at Tyrannosaurus Tech, having these skills as a part of any cross-functional project team is non-negotiable. It’s in everyone’s best interest and undoubtedly leads to a better product.
Here are a few of the main benefits of involving each of these skill sets:
Project Management
- Organizes and optimizes work across the team
- Ensures thorough requirements gathering
- Acts as the main point of contact for client
- Keeps communication lines open, clear, and well documented
- Focuses on enabling and unblocking the team
- Allows designers and engineers to focus on what they do best
UX/UI Design
- Focuses on mapping out the entire app user experience & requirements
- Creates scalable design system for the long-term
- Dedicated to crafting a user interface that is engaging and intuitive
- Empowers engineers with high-fidelity UI designs so everyone is aligned on exactly what we’re building
- Saves time and money down the road by allowing us to iterate within the design process rather than in development
QA (Quality Assurance)
- Focuses on testing the app at every stage of the project in order to more quickly discover bugs or edge cases that need to be addressed
- Leads to increased user adoption and retention by creating a more polished user experience at launch
- Allows software developers to focus on what they do best (writing code)
- Saves time and money by leveraging a specialized skill set and addressing issues in real-time as code is being written
5. Trust the Agile Process
“Agile” is a term you hear all over these days, but to be clear, it originated in the software development world and is almost universally considered the most efficient approach to modern software development today. Agile is essentially an iterative approach to software development that allows teams to deliver value to customers more quickly and efficiently.
Without getting too into the weeds, agile practices revolve around breaking work out into shorter iterations called “sprints” (typically 2 weeks long). By comparison, the traditional “waterfall” approach treats the work as one large deliverable that is tackled over a much larger span of time.
In agile, during each sprint, there are a number of meetings and processes that drive the work:
- Backlog Grooming
- Sprint Planning
- Daily Standups
- Demo
- Retrospective
For many customers new to software development, agile can feel a bit unnatural since it is not how they assume the project will be approached.
There are a lot of benefits to agile but a few of the big ones are:
- Faster feedback cycles
- More transparency across teams
- Greater flexibility
- Quicker identification of issues or unknowns
- More opportunities to identify and address scope creep
- Ability to progressively reevaluate timeline and budget
- Better team satisfaction (seeing more tangible marked complete sprint by sprint)
Resistance to agile processes can cause a lot of issues within a project, so it is much better to embrace and have faith in the process rather than try to swim against the current. Trust us, agile is how you want to do it for the best end result!
Conclusion:
That’s it, folks! We hope these 5 tips are helpful for those looking to foster a healthy working partnership with a development firm. For more helpful tips like these and to strengthen your development knowledge, check out our blog or reach out to discuss a project.