The Product Engineer: What It Means to Build NiceJob Software
Learn How NiceJob Empowers Its Software Engineers to Help Provide Customer-Driven Growth
This blog post is part of a series of articles by NiceJob employees to showcase our team and to share unique perspectives on how we enable small businesses to thrive.
A software engineer is a "living robot" who tries to convert a spec document into a working software using coffee and code to offer technical solutions to user problems.
As humorous as the above statement sounds, in practice, when we strip it all down to its bones, it's kind of true.
A lot of times, including here at NiceJob, software engineers focus on implementing what they see on a spec document and a design blueprint.
Many software engineers rely solely on this work done by other teammembers. After all, it takes collaboration to build great software for small businesses.
But this approach can lead to a host of problems; so here at NiceJob, we instead promote a culture built around a new outlook.
Introducing the Product Engineer. What is a Product Engineer? And how does “product engineering” help both our team and our clients? Let’s dive in!
What Are the Risks of the Status Quo?
There are many potential problems to the old, instructional-based approach of software engineers communicating and strategizing almost exclusively through spec documents.
Let’s look at some of them to better understand the alternative to software engineers: the Product Engineer.
- Overemphasizing technology and underemphasizing client problems.
- “Overengineering” edge cases.
- Undervaluing product validation and feedback.
- Falling into technical blindspots.
1. Overemphasizing Technology and Underemphasizing Client Problems
When software engineers often look at a spec document or a project brief—usually over long meetings—they tend to begin by seeking out all technical constraints and possible solutions.
They may start to consider all the things that could go wrong and then draw up a plan to preemptively solve them in their heads, even before the meeting is over.
This mindset misses the most important part of product development in the first place: the customer, our clients!
Why would a client want this solution and how does it help them?
Can we leverage an existing solution for another need or problem to iterate quicker and get feedback?
Do we really need to solve for x if we are unsure if our clients need it at this time, or especially, any time?
How would implementing this solution affect the overall user experience?
How do we know our clients and their users will gain value? In other words, how can we validate that we are providing customer-driven growth to help them scale their business?
These are the questions we try to ask ourselves when understanding engineering projects here at NiceJob, instead of overfocusing on needless solutions to hypothetical problems.
2. “Overengineering” Edge Cases
Software engineers pride themselves—and rightfully so—on delivering high-quality technical solutions to user pain points or problems.
However, they often fall into the trap of trying to solve all potential points of failure and inadvertently expend superfluous resources & waste important time.
In reality, the actual problem might be a subset of other problems that arise from “overengineering.”
Without properly understanding the product problem and client needs, the odds of longer turnaround times and suboptimal quality will increase.
3. Undervaluing Product Validation and Feedback
Product validation and feedback from users, our clients, are rarely considered an engineering problem.
But most product learning happens after users try the product and give direct or indirect feedback.
Instead, what we do as a team at NiceJob is incorporate new learnings into planning in advance for how they can influence product roadmaps.
The more insights our business can gain on a technical level around what these learnings could mean, the better the software product on a whole will be for our clients.
4. Falling into Technical Blindspots
It’s a lot easier for technical blindspots to arise during product discovery under the old mindset of software engineering.
How can blindspots that impede software engineers emerge?
They can pop up simply due to an inadequate technical expertise to understand what is possible from an engineering standpoint.
This lack of expertise not fulfilled by a holistic view of client needs also complicates estimating engineering costs in advance, should certain decisions be made, leading to more blindspots.
What Is the Alternative? The Product Engineer
For a team like ours committed to the best tools that help businesses build and leverage their reputation with customers, thinking like a traditional software engineer is too risky.
As NiceJob continues to improve our platform for customer-driven growth, an evolution on how we currently discover, create and provide engineering solutions is absolutely necessary.
We could call this evolution of the software engineer an evolution towards the Product-Software Engineer—or simply a Product Engineer for a cooler-sounding name.
What Is a Product Engineer?
A Product Engineer is a software engineer who is involved in all parts of the product-development process.
They focus on blending sound technical knowledge with a deep understanding of the product and empathy for the user, our clients, to build and deliver great products.
We involve our software engineers in all major aspects of product management for projects that require significant engineering components.
This empowers them to appreciate projects comprehensively, to understand the small businesses we serve and to deliver a higher-quality solution to our clients.
In a nutshell, Product Engineer = software engineer + product manager.
What Are the Traits of a Product Engineer?
To understand the Product Engineer better, here are some traits a Product Engineer embodies:
- Our clients remain the focus of the engineering process, not just the technical implementation alone.
- We deeply understand the problems we want to solve from the user’s perspective.
- Product Engineers obsess over why, actively pushing that mindset among the product groups and other engineers.
- A Product Engineer must develop a strong understanding of the business, its clients and their various expectations, and use their technical knowledge to balance all needs.
- The Product Engineer is willing and able to provide technical insights during product discovery, uncovering technical (im)possibilities while considering all potential costs.
- To be a strong Product Engineer, you need to become an effective communicator to properly present and discuss ideas to all stakeholders involved.
- Product Engineers handle edge cases pragmatically and with care to not “overengineer” solutions that provide little value to clients.
- The Product Engineer is very much concerned with product validation, feedback and learnings. Product Engineers prioritize early feedback.
- After shipping a feature, the Product Engineer actively follows up to know if the feature serves its intended purpose
- Product Engineers incorporate user feedback to influence future product discoveries.
How NiceJob Raises Product Engineers
A common issue when building a team around this new mindset of the Product Engineer is, well, finding potential Product Engineers.
Most engineers just aren’t wired in ways that prioritize user empathy.
But when software engineers establish and practice a mindset around Product Engineering, they can accelerate their careers, help scale their company and enable clients to grow theirs.
At NiceJob, we encourage our engineers to develop this mindset.
How to Develop a Product-Engineering Mindset
There are a few things software engineers could do to facilitate this evolution and become a Product Engineer!
- Gain a deep understanding of everything. Ask what problems your business solves, who your clients are, why they use you and about the short- and long-term company plans.
- Engage in user research, product discovery, design reviews and the user-feedback process.
- Interact with your company’s clients, your software users. Directly support clients when possible and collaborate with teammembers who frequently talk with them.
- Develop a good relationship with your product leader and work closely with them. Understand their vision.
- Back up the insights and suggestions you provide with research and prior expertise.
- Create avenues for feedback, both from users and teammembers.
- After your team implements a feature, be willing to follow up with its performance tom understand how much impact that feature has on the overall product.
The New Mindset for Customer-Driven Growth: Product Engineering!
Product Engineering, not the old way of software engineering, can help engineers reach their potential and optimize results for companies and the businesses they serve.
The traditional way risks technical perfection at the expense of efficient solutions and empathy towards our clients.
By merging software engineering and product management, engineers can instead develop a mindset around Product Engineering, especially when empowered by their employer!
At NiceJob, this allows us to provide a platform to small businesses that is better, faster and cheaper at empowering them to get the reputation they deserve and grow their operations.