How Life’s Challenges Build Impactful Digital Products
by Seven Peaks on Aug 30, 2023 2:09:57 PM
As far back as I can recall, I have always been set on my career path in software engineering. Even as a teenager, I knew I liked computer science. In high school, I took computer science as one of my optional subjects, working with macros and VBA. It seemed natural to me that I continue my studies in this subject at university.
Moving from small to large development teams
My first job after graduating was working in a small development team within a large, successful oil service company in Norway. As there were very few of us working in the team, I had to learn several roles fast, which was a great opportunity for me as a fresh graduate.
Something I realized early on about what drives me is that I seek out what challenges me. As soon as I felt that the acceleration of my learning was beginning to slow, I knew I had to find a different environment to work in. I went in search of a place where I could work alongside and learn from a larger group of developers.
As one of the largest consultancies in technology services and digital transformation, Capgemini was the perfect place to work on projects that were more complex, with clients in a diverse range of industries. The challenges I encountered here were as much human as they were technical. I had to learn to interact with people from different backgrounds, cultures and experiences.
I still believe to this day that working in a consultancy is an advantage any good software engineer should pursue, because the experience teaches you to communicate and work with others. But why does an expert in software engineering even need interpersonal skills? Aren’t technical skills sufficient?
To truly improve, you need to have a growth mindset.
You might believe that an engineer is most successful when they execute their narrow scope of tasks to perfection. However, that definition is stagnant, and stagnancy is unsustainable in a field that is constantly evolving. Working with others requires a number of soft skills that you simply can’t pick up working on your own. You need to talk to your colleagues, clients and users to understand the features they want you to develop, which means you need good communication skills.
At a certain point in your career, you need to decide whether you are working at a place that aligns with your values, or if there is another place that will validate your goals and help you grow. For me, one of the clients I was working with was Sparebanken Vest, whose work ethos and process truly aligned with what I wanted.
So, when the opportunity presented itself, I took a permanent position in the bank’s internal development team. This was where I first discovered the true power of a cross-functional team.
Every person in a cross-functional team can make an impact together.
A cross-functional team isn’t a new concept in the tech world. Most software engineers and developers will be familiar with scrum masters and agile methodologies. However, it is worth expanding our exclusive tech bubble to include people whose backgrounds aren’t in IT.
The bank’s management placed developers and engineers in the driver’s seat, and fostered a collaborative environment where we shared information and training. People were placed within product teams that focused on smaller domains and included experts from various roles in the organization.
This meant that I was able to talk to people from other parts of the business, including people from business development, customer support staff, and marketing. As a result, they were able to directly inform me of key customer metrics, customer pain points, how the product was seen by the public, and so much more vital information for developing the product.
As a person who likes to know the details, this was exactly what I needed to improve my work as a software engineer and see the full picture of what the final digital product should be.
The key to success is to place your engineers with people from other parts of your business. Sit your app developers next to your marketers. Have your software engineers collaborate with your customer service support. Check in with your users to make sure you know the features that will help make their life easier and respond to what they want.
Cross-functional teams build great digital products.
When your development team has access to key metrics like user attrition, activity, market trends, and industry demands, they have the context they need to set the right targets. Engineers need this vital information to simplify, standardize, and streamline your design so as to deliver value to your customer faster.
In my time working in various industries, both in Norway and here in Thailand, I have discovered that the best decisions come with pooling the right data and the right team members. Putting the right people together gives you the data-driven insights your company needs to offer products and services that your customers want.
Plus, people work better under this system, are more motivated, and have increased ownership and engagement, because they can see the impact they make on the users.
Change is good, actually.
Companies need to let go of the idea that processes flow in a straight line. You cannot foresee 100% into the future, because markets and users change. Even at the very start of your 2-year plan, your priorities will change, and you must have the insight and feedback loop in your organization to figure out when change is needed.
Ultimately, whether it’s in your work or in your personal life, every challenge you encounter is an opportunity to discover a new solution, gain new knowledge, and incrementally improve your process. Life is always changing, and the scope of its demands are ever-increasing. You can only do the best that you can based on what you know, and then go back and improve iteratively. That’s how you build successful products, establish good teams, and make good progress in your career.
Leif Åsmund Mørk, VP Engineering at Seven Peaks
Leif has over 17 years experience with software engineering, having worked as a consultant, software engineer, software architect, team lead, and manager.