10 ways to build better working relationships
As digital transformation specialists, the ability to deliver high-quality technology services for our customers is essential. Whilst what we do is important, it is how we do things that truly defines who we are.
Our principles of engagement provide a framework that guides the way we work with our customers. They reinforce our company values and help us build great, long-lasting relationships with our customers.
1. Collaborate don’t compete
In an increasingly computerised world, organisations often have multiple suppliers. The overall goal should be to do great work. This means working with other suppliers rather than competing against them.
The competition ends once a contract is awarded. Tom DeMarco states that “There is no such thing as ‘healthy’ competition within a knowledge organisation.”
We believe this applies to everyone whether they work for us or not. Our focus is only on delivering the best possible value for our customers — regardless of who else we are working with.
2. Don’t suffer in silence
Despite the best intentions, problems occur from time to time. It can be tempting to try and fix them before anyone notices. After all, in the IT industry, we are all problem solvers of one kind or another. People sometimes feel that asking for help is a weakness rather than a strength.
Always seek help — as soon as an issue arises. Sitting on a problem leads to frustration and demotivation. As time progresses, we increasingly wish we had spoken sooner. Build an environment where teamwork is preferred over working in isolation. Exploit the expertise and enthusiasm of your team. Don’t be afraid to ask for advice and always be willing to help.
3. Hand over, rather than handing off
Software development is not a relay race. Handing an incomplete task to someone else or a different team often has a negative impact on productivity. Especially where domain knowledge has to be transferred. Equally, relying too much on documentation makes learning more difficult. Some things are difficult to write down or transfer easily from one person to another. Much of this tacit knowledge is lost — every time we hand work to someone else.
A production line mentality is prone to scheduling issues. Sometimes teams have nothing to do and other times worked is queued up, creating delays downstream. High-performing teams continually seek to reduce handoffs. Each member of a team should strive to understand a little bit of everything. This makes it easier to collaborate and hand over work effectively. Sharing knowledge helps everyone to see ‘the bigger picture’.
4. Avoid communication hierarchies
Strong collaboration means talking directly to the person that can help you. Don’t build layers of communication that make it difficult to share information. Create an environment where people are encouraged to talk to each other whenever necessary.
Use technology to help your team members quickly and easily find the help they need. Instant messaging is a great way to seek advice without context switching. Video conferencing puts remote people ‘in the room’ when you need a little more interaction. Tools such as Microsoft Teams and Google Hangouts reduce email and avoid ‘fire and forget’ requests that introduce delays.
Don’t create a communication hierarchy that hampers direct communication. Indirect communication leads to lost information and repeated effort.
5. Demonstrate rather than describe
It’s nearly always better to demonstrate a system than to describe it. As the agile manifesto states, ‘Working software is the primary measure of progress’. Create a development process that allows you to quickly build and deploy software. In this way, you can provide regular demos to key stakeholders. They can see real progress and provide regular feedback. This allows you to incrementally improve and enhance your solutions.
Showing emerging software can help even when there is not much to see. It’s easier to change something before it’s fully developed — and less costly.
Your team can focus on delivering software rather than writing about it. This does not mean that documentation is valueless. Rather, think carefully about the best use of the available time. When demonstrating software, it really is a case of what you see is what you get.
6. Write less code!
Writing less code does not mean delivering less value. It can reduce your time to market, lower operational risks and simplify support & maintenance. This helps to keep you ahead of your competitors whilst providing a valuable service for your customers. For us, a combination of low code, less code and no code provides significant benefits.
Low code platforms such as Mendix and OutSystems allow us to produce software quickly with less coding. Less code is about reducing the effort of important and labour intensive development activities. For example automated testing, continuous integration and iterative development. Robotic Process Automation (RPA) frameworks provide a no code approach for automating important and repetitive tasks. No code, low code and less code strategies each have their pros and cons. Finding the right combination will help you to gain more by doing less.
7. Don’t separate business and technology
For technology to deliver meaningful value for an organisation, there must be clear and appropriate business goals. Technical projects should be aligned and prioritised with corporate strategies. This will require technical expertise and detailed domain knowledge. Development teams should include, or have sufficient access to, business stakeholders. Business and IT should define clear success criteria for each IT initiative. In this way, you can evaluate progress against the outcomes you are trying to achieve.
A purely IT driven approach can often result in a solution looking for a problem. By working together, changes and misunderstandings are reduced. Business stakeholders can see clear and continual progress, especially with the ability to provide regular demonstrations.
8. Build teams not superstars
Building a great team is hard but the rewards can be extraordinary. A team does not have to be entirely autonomous or cross-functional. The aim should be to create acoherent group of people that work well together. Where everyone helps and supports each other. When someone learns something new, encourage them to share it with everyone.
Making decisions should not depend on seniority, pulling rank or taking sides. Everyone helps everyone else to do the best job that they can. We are all human, and we welcome appreciation for the work that we do. That’s fine as long as we don’t overlook anyone else or seek personal gain at the expense of others. It’s amazing what we can achieve when we’re not concerned with who takes the credit.
When things go well, reward the whole team rather than specific individuals. When things go wrong, review your processes rather than blaming your people. Learn from your experiences and make the next time a little better than before. Recognise that the best work comes from a joint effort, and you may well end up with an all-star team. After all, nobody is better than everybody.
9. Don’t expect technology to solve your business problems
Technology is advancing at an alarming rate. Development frameworks are becoming faster and more flexible. Cloud platforms provide a rich ecosystem of services that are globally accessible and almost infinitely scalable. Artificial intelligence provides predictive models, natural language processing and augmented reality.
All of these things help us to build efficient and effective software solutions. They are necessary but not sufficient. It’s like walking into an art studio and having access to the finest paints, brushes and canvases. Unless you’re an accomplished artist — you’re unlikely to create a masterpiece.
The best ingredients for solving business problems are a whiteboard and a talented, enthusiastic team. We find that innovation and creativity flourish away from the keyboard where ideas are unconstrained and collaborative.
10. Share a single version of the truth
Information should reflect the progress and status of work and not be changed depending on the reader. Neither should information be withheld, hoping to resolve issues before stakeholders are informed. Success relies heavily on close collaboration between customer and supplier. People cannot help to address issues if they are not aware of them. Problems are more likely to get worse, especially when effort is consumed trying to maintain two versions of ‘the truth’.
Of course, it may be necessary to change the format and level of detail to suit the reader. The underlying content should be consistent. Whilst there is value in reporting, stakeholders should not rely on a report for critical information. A report should reinforce and record important information that is conveyed, person to person, as part of a collaborative working relationship.