Talks

Product Engineer - A Perfect Technical Executor For Cross Functional Teams

Artur is talking about the product-code relationship.
When is the code good? How to maintain tech debt?
What is the balance between business requirements and refactoring needs?
He explains the Power of input, sharing some useful tips and best practices.
-------------------------------------
#pivorak is a Lviv Ruby Meetup

Join our Ruby meetups in Lviv:
Our official website - https://pivorak.com
Facebook -- https://www.facebook.com/pivorak
Twitter -- https://twitter.com/pivorakmeetup
Instagram -- https://www.instagram.com/pivorakmeetup

No crap. No crab. #pivorak.

Pivorak Conf 1.0

00:00:08.160 Good evening, everybody. It's great to be here! I was looking forward to this event to meet all of you, the people I've heard so much about.
00:00:14.940 So, it’s great to be here in person and stand in front of you.
00:00:20.580 Today, I would like to talk about how we can grow as engineers. We will explore our problems from the user perspective and from the product perspective.
00:00:26.640 Initially, this talk was supposed to be about cross-functional teams, but then I realized that it’s not only about those teams; it’s also relevant to any team that is working on a product.
00:00:33.210 Could those who know what that is raise their hand?
00:00:40.019 Yes, most of you. And who among you liked to play with Legos as a kid? I did too; we all like to build things.
00:00:46.610 Before we go further, let me give you an idea of what we build.
00:00:53.730 We build products for external clients as well as for ourselves. On external projects, we perform a wide range of functions.
00:01:00.960 We start with engineering and design, but we also do product management.
00:01:06.840 When it comes to our own products, we use the same knowledge and approaches that we've acquired over the past 11 years to build the things that we need and those we believe others will need.
00:01:12.300 My focus is primarily in the labs, where I work on one of our own products.
00:01:17.970 This allows me to gain full experience from both the code side and the product side.
00:01:24.360 We don’t do what clients want; we do what they need.
00:01:29.869 That's something that sets us apart from outsourcing companies.
00:01:36.509 Five years ago, I was thrilled to join an interesting new project with a smart team.
00:01:42.149 It was my first international team, and we had a great client; it couldn't have been better.
00:01:48.539 I felt creative and inventive as we faced various challenges.
00:01:54.209 We were given freedom of choice with our technology stack.
00:02:01.530 We delivered new features and progressed remarkably.
00:02:06.780 However, after eight months, it was over; the client ran out of money, and nobody wanted to use what we built.
00:02:13.290 In the end, we had only an eroding repository on GitHub left from that enjoyable project.
00:02:20.010 We had to shut it down, winding down the entire AWS infrastructure, and ultimately, the code died with the product.
00:02:26.640 The main takeaway is that we tend to build the wrong things.
00:02:33.210 The wrong things do not withstand the test of time.
00:02:39.340 How many of the products you've worked on are still helping people?
00:02:46.270 Well, I did the math, and in my case, almost half of my professional work is gone; it no longer helps anyone.
00:02:53.730 If my current project fails, this number will only increase, and I wouldn't want to see that.
00:03:01.530 To put that in perspective, I could have earned another bachelor's degree in the time spent working on products that serve nobody.
00:03:07.750 Research shows a lot of companies fail; different studies suggest that four out of five startups fail within the first 18 months.
00:03:14.560 Others say that 50% of companies fail within the first five years, and another states that 70% do not survive or reach ten years.
00:03:21.070 That's a significant amount of failure.
00:03:27.780 Does anyone know what this is? Yes, you know.
00:03:35.550 This is Blockbuster, a DVD rental company from the U.S. that was quite successful.
00:03:42.900 Founded in 1985, it had over 9,000 stores across the U.S. by 2004.
00:03:49.750 However, Netflix killed Blockbuster.
00:03:56.840 Imagine a nice evening when you want to watch a movie, only to drive to Blockbuster to browse through shelves.
00:04:05.220 There's no search function; you have to browse yourself.
00:04:12.820 When you finally find it, you might bring home the wrong version.
00:04:19.320 If you don’t return it on time, high fees apply, which was how Blockbuster made most of its money.
00:04:26.800 Then Netflix came along, launching in 1997.
00:04:33.410 It offered DVD rentals and sales through a website, eliminating the need for physical store visits.
00:04:39.620 With a subscription model and an advanced recommendation system, they gained traction.
00:04:46.690 Blockbuster dismissed Netflix’s ideas, thinking nobody would want it.
00:04:54.840 In 2007, Netflix introduced streaming, and the rest is history.
00:05:01.600 Today, Blockbuster is out of business, with only six franchise stores remaining.
00:05:08.700 And the core reason is the absence of market need.
00:05:15.420 Do you think Facebook was the first social media platform? Most likely not.
00:05:22.080 There were earlier social networks; however, Facebook emerged when technology allowed more.
00:05:29.040 Their success was a consequence of improved internet infrastructure.
00:05:36.600 Going digital meant going global, eliminating the need for physical copies.
00:05:42.730 People use products that enhance their lives.
00:05:49.290 So, why do you choose one messaging app over another?
00:05:55.710 Is it really just about the code? If not, why assume others care about it?
00:06:01.880 In reality, code is merely one aspect of building products.
00:06:08.720 Product success depends on addressing real user problems.
00:06:14.180 Users don't care if the code is perfectly clean; they care about solutions to their problems.
00:06:20.990 What they pay for is the value the product delivers.
00:06:27.110 Focusing on solving user problems can increase revenue.
00:06:35.160 As the value we provide increases, so can our salaries.
00:06:40.960 Now, let’s discuss shipping.
00:06:49.859 I wanted to show you a short video.
00:06:54.460 This video is a time-lapse recorded on a container ship.
00:07:01.220 Can you see it? (pause) Great, let's move on.
00:07:07.229 Isn’t it spectacular? This tropical storm looks nice; perhaps because we spend so much time on land.
00:07:14.329 Imagine a trip from Santiago, Chile, to Taipei, Taiwan. It takes four weeks.
00:07:20.599 Can you fathom being on a ship for weeks with just containers, water, sky, and clouds?
00:07:27.339 No phone, no internet, limited contact with family and friends.
00:07:34.940 Staying connected through messaging would mean a lot.
00:07:41.359 That map I showed you comes from a product that connects distant families.
00:07:47.730 For nearly 50 years, KVH has been enabling people to stay connected via satellites.
00:07:54.240 They envisioned this long before the internet existed.
00:08:00.620 It’s unfortunate that job descriptions aren't framed this way.
00:08:08.160 We build products for people, by people, and improving lives gives us a sense of power.
00:08:15.040 We all remember the first time we tinkered with code and it worked.
00:08:21.739 It’s a powerful feeling that connects us to the world.
00:08:28.859 This relevance keeps businesses alive for years to come.
00:08:34.460 They're not tied to specific technology or products.
00:08:40.500 Now, let’s talk about planning meetings.
00:08:47.239 We all love them, right? Well, for some, it's a part of their day job.
00:08:53.050 Imagine you're a sales representative. Your main goal is to schedule as many meetings as possible.
00:09:00.560 Scheduling meetings via email can be hell because you risk overbooking.
00:09:06.820 This leads to the so-called email ping pong.
00:09:14.790 Five years ago, the creator of a product came to us with an idea.
00:09:20.790 His goal was to enable booking directly into the calendar.
00:09:27.195 Imagine that whoever comes first gets served first.
00:09:33.010 He wanted to integrate multiple calendars at once: Google, Microsoft, and Apple.
00:09:38.860 We advised him against that idea because we recognized Google’s potential.
00:09:45.500 Google is widely used by companies due to its low cost and minimal configuration.
00:09:52.900 Focusing on one thing helped us validate the market.
00:10:01.070 This allowed us to refine the product before introducing other integrations.
00:10:07.680 Now, it has five million users.
00:10:14.720 The main takeaway here is that not all problems are equally pressing.
00:10:20.680 We need to prioritize the important issues over the urgent ones.
00:10:27.060 It’s easy to get caught up in what seems urgent, neglecting what holds long-term importance.
00:10:34.950 In software, we often jump into coding right away.
00:10:42.510 Instead, we should be asking simple questions, like: What user problem does this story address?
00:10:49.560 By putting users at the center of our focus, we can identify high-value problems to tackle.
00:10:56.100 This approach ensures we address both urgent and important matters.
00:11:02.880 Finding the right problems is the first step; the next is figuring out how to solve them.
00:11:10.600 Do you find it difficult to keep an entire problem or solution for a story in your head?
00:11:17.920 I do, and I used to run in circles, feeling lost.
00:11:25.090 This uncertainty leads to a lack of progress.
00:11:31.260 We end up recreating partial information, losing track of the overall picture.
00:11:39.180 Without a clear understanding, we can't explore a problem or solution ranch.
00:11:45.279 You're stuck with just one solution, missing out on many potentially better options.
00:11:51.470 But what if I told you there's an approach to overcome this?
00:11:58.490 It’s simple and can feel like a superpower.
00:12:04.800 This approach consists of two components: issue and idea.
00:12:12.380 In a project, you outline benefits and risks, creating an implementation plan.
00:12:19.500 This method can be applied to anything, simplifying your thought process.
00:12:26.570 For example, in one of our stories, we encountered performance issues retrieving tickets from JIRA.
00:12:33.739 I began mapping out issues and ideas, clarifying the problem.
00:12:40.509 Each idea had its own issues to address, helping to see variations.
00:12:46.880 Essentially, this approach captures your thoughts, guiding your exploration.
00:12:53.600 It allows you to tackle short-term, mid-term, and long-term solutions.
00:12:59.760 This understanding ultimately aids in refining your tasks.
00:13:05.240 You can effectively communicate your findings to stakeholders.
00:13:11.600 This helps them make informed decisions regarding priorities and resource allocation.
00:13:17.560 Another critical aspect to consider is understanding user needs.
00:13:23.170 Knowing where the product is heading affects our ability to address tech debt.
00:13:28.460 We can work on ensuring our architecture efficiently.
00:13:34.670 It's essential to analyze and understand before planning the next steps.
00:13:40.970 This clarity allows you to split responsibilities articulately.
00:13:47.540 Three years ago, I was an Android developer. There are many screen resolutions and densities, which requires various image sizes.
00:13:54.679 Usually, I was provided with assets for iOS, which posed challenges.
00:14:01.830 We often had inconsistencies between screens, causing issues with pixel-perfect deployments.
00:14:07.830 To address these problems, we requested sliced images.
00:14:14.780 After struggling for a year, we finally persuaded them to switch to Sketch.
00:14:21.390 With this approach, we created a plugin to cope with the cross-platform issues.
00:14:27.750 This resulted in diminished hassle while exporting to Zeppelin.
00:14:33.869 We had a choice: either complain or effect change.
00:14:39.780 Changing the environment helps everyone grow.
00:14:46.030 This dilemma illustrates the need to avoid siloed approaches.
00:14:53.660 Don't separate functions; work together to overcome the hurdles.
00:14:59.300 Consider the famous image of testing; unit tests work in isolation until integrated.
00:15:06.020 The focus should be on understanding dependencies and ensuring good communication.
00:15:12.780 You might think, 'Isn’t this not my job?' Well, in a collaborative environment, everyone plays a role.
00:15:18.800 Roles are like labels; they define expectations but shouldn't be limiting.
00:15:25.280 In product teams, there are three main roles: engineering, design, and management.
00:15:32.000 Engineering focuses on feasibility, design addresses user appeal, and management ensures viability.
00:15:39.600 As specialization increases, we need more translators to bridge gaps.
00:15:45.560 I've learned a new term: 'UX engineer.'