I`m a programmer. And i like to think about myself as a programmer… but what does it mean? How does it change my perception how… And doesnt matter?
Look, I work for people. For a company that employees me, for this company customer and for their customers. And while working, while thinking about abstracts, while designing, while working… coding even. I should have in mind these people at the end who will use this software. And doesnt matter if it is an API or a desktop app. I have to think about final person that will use it.
But how to manage it? How to get into shoes of person that is on the other end of the world, in different culture with different point of view to make it easy for them? And … should i?
I think that each dev should try to create their own app. Of any sort. But should do it. From the very beggining of “idea” or like devs like to describe it: “problem”.
Till the final, working, version of software. Version that solves problem or working with idea.
One would ask – why – but there is one simple answer. To understand how to work with client in mind. When you are your own client its easy to … fuck it up. You can just say yourself “oh here ill do a shortcut so I WILL have to work extra hour each day…” and you will know that this is pain in the ass. Maybe you can handle it. But client wont.
You also need to remember “it should work smooth” but … you dont care about some poor person somewhere… you care about how hard it works when you have to spend that extra time. etc… so maybe you should always add this optimization tasks to projects. And finalize it. And … etc
You have to think about your endclient as you think about your most loved person. Take every obstacle from area between client and finish line. They will love your software for that.
And will suggest everyone to use it. Instead of pushing these rude articles like “devs are idiots” with you as an example.