
Software is a delicate balance between art and science. It is not sufficient to solve every problem as quickly as possible. Nor is it effective to create wonderful, flexible, designs while ignoring business and customer needs. Software Engineering is about applying a proven, pragmatic, and reliable process that not only solves the problem at hand, but also minimizes the long-term cost of owning and maintaining that solution.
I also have a passion for optimizing user experience. User interactions need to be intuitive and efficient. Customers don't buy software because we make it. Customers buy software because it saves them time and money. By optimizing our user experience we can directly provide greater benefit to our customers.
Having a clean user experience does not stop at the customer interface. The code itself has a user experience. Any engineer can instantly tell the difference between spaghetti code and a well-factored solution that maps cleanly to the problem domain.