Lorem ipsum dolor sit amet, consectetur adipiscing elit lobortis arcu enim urna adipiscing praesent velit viverra sit semper lorem eu cursus vel hendrerit elementum morbi curabitur etiam nibh justo, lorem aliquet donec sed sit mi at ante massa mattis.
Lorem ipsum dolor sit amet, consectetur adipiscing elit ut aliquam, purus sit amet luctus venenatis, lectus magna fringilla urna, porttitor rhoncus dolor purus non enim praesent elementum facilisis leo, vel fringilla est ullamcorper eget nulla facilisi etiam dignissim diam quis enim lobortis scelerisque fermentum dui faucibus in ornare quam viverra orci sagittis eu volutpat odio facilisis mauris sit amet massa vitae tortor condimentum lacinia quis vel eros donec ac odio tempor orci dapibus ultrices in iaculis nunc sed augue lacus
At risus viverra adipiscing at in tellus integer feugiat nisl pretium fusce id velit ut tortor sagittis orci a scelerisque purus semper eget at lectus urna duis convallis. porta nibh venenatis cras sed felis eget neque laoreet libero id faucibus nisl donec pretium vulputate sapien nec sagittis aliquam nunc lobortis mattis aliquam faucibus purus in.
Nisi quis eleifend quam adipiscing vitae aliquet bibendum enim facilisis gravida neque. Velit euismod in pellentesque massa placerat volutpat lacus laoreet non curabitur gravida odio aenean sed adipiscing diam donec adipiscing tristique risus. amet est placerat in egestas erat imperdiet sed euismod nisi.
“Ut enim ad minim veniam, quis nostrud exercitation ullamco laboris nisi ut aliquip ex ea commodo consequat. Duis aute irure dolor in reprehenderit in voluptate velit esse cillum”
Eget lorem dolor sed viverra ipsum nunc aliquet bibendum felis donec et odio pellentesque diam volutpat commodo sed egestas aliquam sem fringilla ut morbi tincidunt augue interdum velit euismod eu tincidunt tortor aliquam nulla facilisi aenean sed adipiscing diam donec adipiscing ut lectus arcu bibendum at varius vel pharetra nibh venenatis cras sed felis eget dolor cosnectur drolo.
TL;DR Yes, we’re all looking to recruit and work with a great team. But you can’t get an exceptional or even a mediocre product without great team communications.
Really? But each team member is busting his a** on the product, and working day & night (mostly nights) to ship on time! How can it be that we won’t make it?
When working in a team (that’s the “we” part), each member has a role. Ideally there would be front-end and back-end developers which need to communicate to each other, to the product manager / owner, to team leaders etc. So, they actually need some sort of a “human API” between them.
But, you say, my team members all sit together in the same open space and we’re in constant communication and conversations and meetings all day long!
Yes, they talk, but do they clearly exchange the bits of data that are critical to their jobs?
Traditionally, your product would require at least one API, which serves as a formal contract between stakeholders, where the rules of communication and expected input / output are clearly defined and well known by all sides involved.
How would you go about designing and building an API for your product? You usually define a scope, data paths, server functional requirements and functions / API endpoints. You design a database and connect your server to the database to get & persist data. That means you know all the bits and bytes and the flow of data is well defined.
With this information specified and laid out in a clear way, the client and the server can communicate and respond to user requests with the relevant data being returned.
Sure it takes work, but remember that once the foundations are in place, we can make hundreds of calls per second, or x1000 that number if the server is built to scale.
Because the infrastructure is there and the rules are defined.
So you say, that’s how the product works, Great. How does that relate to building the product?
Well, it’s exactly the same.
The developers, designers, PMs and everybody else can be precieved as endpoints talking to each other. They have to get user input — it can be a PRD / designs on Zeplin / Swagger specified APIs etc. — process it and come up with a result — their specific part / flow of the product.
In order to do that, however, they have to communicate to each other. You know, talking, Slacking, Skyping or whatever.
The problem is that as much as verbal / written free-form communication is important, it tends to become very exhausting and frustrating in nature.
For comparison, imagine that when the client is about to contact the server with some data in order to get a response, it would first ask the server:
What type of data are you expecting to get?
Is this the same type of data you were expecting before or is there a change?
How should I structure the payload?
Which endpoint should I contact for this request?
… etc.
Regardless of the super-fast systems we have in place today, asking all those questions will slow things down so much that client-server communication would take allllllllot of time.
Now, what would happen, if on top of the above questions, the server wouldn’t have the knowledge to respond to the client with clear answers?
So instead it would reply with:
How fast do you think such an app will run and how will it respond to user actions? How well will it perform with so much time going in between each call? And what feedbackwill the user get, without being able to precisely process the responses the app gets?
And what would be the efficiency of your TEAM when working in this manner?
When we don’t define clear rules about our team product-relatedcommunications, our inter-team policies and our expected day to day results, we lose ourselves fast in the sea of design changes, business rules, pixel density and API versions, all communicated in whatever way way most convenient at that moment.
It’s not just a matter of being productive or not, but a matter of getting it done at all. No matter how much time is spent and how many developers are being recruited, without formal ways to communicate and without standard define-design-implement-review processes, no project can be completed on time, in budget and in high quality.
And that’s what we’re actually looking for as developers, team leaders and product owners, aren’t we?