What seems to be predominant in the industry today is a fixation on a software engineer simply creating (yes creating, maybe we'll discuss the importance of this verb for another blog post) products that solve a specific business problem (or requirement). While this is good from the outset. It raises several questions of the responsibility of a software engineer to begin with.
Before I get into the real content of this blog post, I would like to share with you my current working environment, so you can analyse any predisposed prejudices I may or may not have. My responsibilities at work are primarily of a back-end nature. That is, I do not do much front-end development. Although I have done front-end development in the past, my time and concentration has now focused on social media engineering. Nevertheless, I still maintain that a back-end software engineer should be able to provide the front-end developer with the flexibility, robustness and confidence to create the sexiest and most enjoyable product to use on the market. Let's face it. We can have a product that employes the latest of technologies. Whether it be voice recognition, deep machine learning, social media integration or QR Codes. And solves the most complicated business problems in the world. But if this product is not enjoyable for the user, that is, if it does not provide the best user experience. Then the product simply wont sell in the market.