My name is Kevin Lee. I am a co-founder, software architect / engineer / consultant, specialised in Java web application development, and a Linux server administrator at both Elixirian Pty Ltd and Agin3 Pty Ltd. I am also a casual tutor at University of Technology, Sydney (UTS) teaching Java web services development and JavaEE. Although the major part of my work is Java web application development, I am interested in not only web application development but also library and framework development. In fact, I'm having more fun with developing reusable libraries these days. You can see what I have developed and currently work on at my project page.
My software development philosophy is
So it has to be beautiful whether it's UI or API. That's because, we are developing software for people, not for the computers, and when it comes to attracting people and giving them pleasure, it all boils down to beauty. Although making it beautiful is important, it becomes meaningful only if you get things done. Your client do not want to have a conversation with you likeIt's not useful unless it's beautiful.
by Kevin Lee
You: See this. I've put all these beautiful theories and principles into practice.
I've also implemented nice design patterns and used all these sophisticated frameworks and libraries.
Client: Oh, sounds good. So does it work?
You: No... Not yet.
This is not good. Getting things done is compulsory. Beauty doesn't count until it's done and working. After it's done, beauty becomes meaningful as it has a very close connection to maintenance. No software is perfect, and once it's released, it has to be maintained sooner or later. It's inevitable. After code is written, it's more read than re-written. Even if you re-write the code you wrote, you have to read it again first, and we often read already written code and use it (e.g. libraries, frameworks, etc.), so it's important to make the code easy and pleasure to read. That's why making it beautiful is also important. Whatever it is, if it's beautiful, you want to see it again and feel pleasure each time you see, so it can be easily maintained. Maintainability is superior to performance because if the programme is maintainable, it can easily be optimised later to have better performance. So, to wrap it up in a nutshell, make it beautiful to have high maintainability, but it has to work.
You can read what I wrote before on my blog. http://blog.lckymn.com
I have a plan to write about good API design. Here is the list of blog posts that I've already written and planned (it may change later):
I also keep some of my knowledge in my wiki. It's only for myself and has been written in a way that it's just enough for me to understand, so I don't reveal it to public, yet I'll do some after amending it for public.