Miki, our Vue developer with ten years of experience in the field (3 of those are within Amsterdam Standard), had a debut in article writing. In his article “Taking ownership of your code, “ he shared his experience and advice on approaching a client, building effective relationships, and immersing yourself in a project.
Miki enjoys streamlining the code and development environment. He is also geared towards user-focused programming. In his article, he focuses on the steps he takes when starting a new venture with a client. Besides that, he covers the importance of basic UX knowledge for project improvement and describes how he submerges himself in projects.
“Being involved yields many benefits and encourages developers to be a part of a project, not just being a voiceless executor of tasks.”
We recommend you follow the link to read the full version of the “Taking ownership of your code” article. On this page, we will highlight only the most important takeaways.
What does taking ownership of your code mean?
As Miki puts it: “Stop being a programmer with horse shades on your eyes. Get a feel for your project; get it all over you.” By that, he encourages developers to be fully involved in a project they are working on. He ensures that that investment brings a lot of return.
Steps of a new venture with a client
Step 1: Know your project
The first thing you need to do when starting to work on a new project is to understand its purpose, imagine its potential, and all the benefits it will deliver when it becomes successful. In other words, place yourself in the shoes of its inventor and focus on the direction your client is heading towards.
Learn from & listen to your clients, understand where they came from and what they want to achieve. Don't treat your client as a machine that gives out tasks on JIRA.
Once you know the project and all its ins and outs, you can submerge yourself in it. Be the one that notices bugs, imperfections, underperformance or any other issue that can be fixed. No matter if it’s something needed right now or a "nice to have" in later stages of development.
Step 2: Get involved
The level and the specifics of your involvement is highly dependent on you - on your general approach to work and your relationship with a client. The crucial aspect here is to possess a proactive approach. How can you do that? Ask questions if you have any doubts and offer solutions if you have a better idea of doing things. It can be about tasks, about the order of deploying things, or in general, you might have an easier or more refined idea to achieve the same or even better results. Sometimes asking something as simple as: "Is this functionality for both logged in and guest users?" starts to spark new edge cases and possibly things the stakeholder didn't realise.
Step 3: Don't overdo it, be a friend
Being kind and polite is a crucial part of building interpersonal relationships. Try to find the right tone of voice with all the parties involved. To do so, monitor the behaviour and responses of your managers or colleagues. Another piece of advice is to balance the number of positive reactions with improvement recommendations, as being nit-picky and pointing out a whole load of things is a bad thing; if you do so, you'll be labelled as obnoxious and being a pain in the ass.
Obviously, you have to treat your clients with professionalism, but adding a sprinkle of personal friendship into the mix can lightweight your communication. Having a balanced professional but friendly relationship creates a less stressful environment.
Step 4: Become a UX persona
In the world of user experience, when designing for a new project, firstly, we create personas. In short, we define who our potential users are and group them regarding specific needs or their user expectations of a website or app. Each persona represents a group of people with similar characteristics, behaviour, or goals. As UX designers and developers, our ultimate goal is to create a product that is easy and pleasant to use. Which quite often it is rather opposite to making our work easier. We should put ourselves “in our user’s shoes” and build a product for them to enjoy. A user-focused approach pays off in the long run.
Yes, being user-centred means you should do those time-consuming, and boring tasks like displaying a custom error notification depending on what the user did wrong, instead of a general "Error occurred" or building a search filter.
But your hard work and user-friendly changes will improve the user experience of the product and, as a result, give a project you are working on an even higher chance for success!
Step 5: What to do if you (or another person) messed up?
So, there can be a situation when you mess up. You made the dumbest typo ever, deployed to live and shut down the app for a couple of minutes or hours. Your client is upset, counting the thousands of dollars he's lost during this time. Or maybe it even wasn't your code that spoiled the release. Does this matter? Right now, when everything is in flames?
If you still wonder, the answer is No. So don't go bounty hunting, trying to blame the world. The only thing you need to do right now is to find a solution. Even as simple as using a bit of silver duct tape to stop the problem while you work on a proper fix in the meantime will help. What's done is done. Focus on solving problems and preventing future issues instead of blaming yourself and those around you.
If it's your fault, just step up and own it. "I made a mistake, I'm sorry, here's my solution". People usually show empathy when you admit being wrong.
After the dust has settled and emotions are low, open a dialogue with your client or your teammate who screwed up. Suggest ways to avoid such failures in the future. If it's not the first time this has happened, try reaching higher up to team leaders, managers, CEOs to make changes on a higher level.
Main takeaways from Miki
First of all, be proactive, and get fully involved in your projects. Secondly, find a good balance of friendly professional communication with the clients and your teammates. This has proven to facilitate communication and relationships for everyone involved. The client will trust you when he knows that you think things ahead, supply ideas, and are genuinely engaged in product development and success. When something goes wrong, do not escalate the problems. It’s super easy to start blaming or looking for flaws in others, but in a team, we support each other and work on the best solutions and common goals in a team.