As roles in technology expand, how do companies make sure their teams are communicating clearly—especially when job functions are seemingly more and more disparate? That was the question of the evening at Flatiron’s inaugural “Many Roles in Tech” panel at WeWork Westview in Austin.
Nadav Cornberg, VP of software engineering at The Guild, an online travel-concierge service, moderated the lively discussion between a front-end developer, software engineer, IT manager, designer, and security analyst/data scientist from various leading technology companies. They shared the best ways they’ve found to facilitate great work across their fields.
Stop “throwing things over walls”
Cornberg stressed the importance of getting as many people involved from as many different disciplines together as early as possible. “Sometimes you’ll see engineers giving great ideas to design and vice versa,” he said. “Organizations that do that are the ones [that] have the best user experience.”
As recently as a few years ago, “designers would [typically] sit in a room, build something, and throw it over a wall,” said Alex Simmon, a senior designer at software company Pivotal. These days, Simmon talks daily to product managers, external and internal stakeholders, and the client developer. “We’ll decide what problem we want to solve, and then every day we’ll kind of see what tiny little things we can do to test that,” she explained. “We’re trying to make sure we don’t sit in a room for six months and build the wrong thing.”
Andrea Cardona, a front-end developer at IBM, emphasized that it’s on every team member to make sure that happens. “If you’re working to design something and you’re purely on a developer team, say, ‘Hey, where are my UX designers? Where are the project managers?’”
Fix things as you go
It may not be his natural instinct, but Bill Fienberg, a senior software engineer at Kazoo, fixes code incrementally to keep things running smoothly. “I often want to fix everything before I do anything,” he said. “But if I can develop that habit of fixing things as I go, it will at least be trending in the right direction.” His technique not only improves the product but helps keep track of changes. “If … one person fixes everything in one request, then when people are reviewing that code, it’s this monstrosity of a request; it’s 100 lines long and we don’t know what changed and why. If we can split that up, we can still … make the code better, but at the same time we relieve some of that burden on the code reviewer.”
Respect one another’s process
On any long-term project, priorities can change. But having an understanding of the demands of coworkers’ unique roles can create more efficient work. “Switching context comes with cost,” Fienberg said. “Reading code is like reading a chapter of a really weird book. If you get interrupted, you can’t just pick up on where you left off.”
Fienberg, who recently moved into a team-lead position, explained that his schedule as a manager looks very different from his schedule as a maker or individual contributor. As a manager, he’s able to divide his day into 15-, 30- or 45-minute increments to talk about things, and that’s considered progress. But as a maker, he explained, “it might take me two to four hours to really make any progress. I can’t piecemeal that into 30- to 45-minute chunks.”
Use the right communication for the moment
“Just because you sit next to someone, it doesn’t mean tapping them on the shoulder is the best way to communicate with them,” said Fienberg, “If they have their headphones on it may be their way of saying, ‘Hey, Slack me, I’m in the middle of something.’”
In other situations, Fienberg and Sam Oyeleye, a data scientist and security analyst at WeWork enterprise member Box, agree that asking questions publicly can often save a whole lot of time. “If there’s a problem that everyone runs into in their first week, and it gets solved in a direct message, that’s lost to everyone,” said Fienberg. “If it’s something that can be public and it goes in a public channel, then it creates a service.”
Use as much data as possible
Often, the easiest way to resolve conflict is to just test it, Simmon said. When her team is at odds with stakeholders on next steps, they might say: “‘Cool, this feature is going to take us three weeks to build, or this many dollars—are we all willing to place this bet?’ Or we can talk to a user in an hour-and-a-half and see what they say.”
Speak multiple languages
Knowing the language of other teams can help you communicate better. “Put yourself in their shoes: ‘What would they ask me? What would they want?’” said LaDeitra Lee, a senior IT manager at Charles Schwab. Fienberg offered an example: “If I’m trying to communicate to a decision-maker why we should prioritize something, their language may not be, ‘This code isn’t dry,’” he explained. “But if you say, ‘We’re using a library with a security vulnerability,’ or if we say, ‘This isn’t accessible,’ they might get it.”
Interested in changing your career, or learning new tech skills? Check out Flatiron School to learn more about our online and on-campus courses, as well as our scholarship opportunities.