Archives
- ► 2012 (8)
- ► 2011 (157)
- ► 2010 (174)
- ► 2009 (12)
Which topics would you like us to cover more?
Latest comments
- How to reset you Kindle
3, eve...
Thanks for this article and the related "Inside th...
By H K - How to reset you Kindle
3, eve...
How do you drain power on the board? I dont have r...
By Grace - How to reset you Kindle
3, eve...
You're welcome!
By Bas - How to reset you Kindle
3, eve...
Thanks man....removing the battery worked like a c...
By DaveMan - nHapi
example
Hi Slypete, Thank you for your comment. This way w...
By Bas - nHapi
example
Hello, Employing .Net dynamics, one can implement ...
By slypete - Implementing MLLP in C#
Hi Mayura, I'm not sure I understand your question...
By Bas - Implementing MLLP in C#
I have used SSL stream to secure the MLLP transact...
By Mayura
Latest tweets
| 10 Programming lessons I learned in my 12 years in IT |
| Written by Division by Zero |
| Tuesday, 20 September 2011 10:00 |
|
Over the last 10 years I've been working in the IT industry. There are a lot of dos and don'ts, but these are the most important lessons I've learned so far. 1. Know your business/customer Well... you are an expert in developing solutions. Solving problems. But what problem are you actually solving? And how do you communicate your solution? You must know what your clients value. The priorities they value. Know the business of your customer and understand what they do. Only then you are able to come up with the best solution for their problems. Only then you are able to sell your solution. 2. Don't over design Thinking about the best way to solve a problem and to design an application is fun. Here lies one of the best parts of the job! Be you must be able to contain yourself. The best solution isn't always the best design. Be careful with using patterns. Be pragmatic in the way you design your software:make sure it is build to change enough, but not to flexible. Make sure it performs enough. Make sure it is user friendly enough. You see: the emphasis is on the word enough.
If you don't recognize this one you must be a genius. Do you really understand code you've written a week ago?What about a month or a year? Enough said.
Make sure you know exactly what your customer want. If you have more time than you need: go back to the customer. They will be happy with either less cost of more functionality to be added to the software. Never add functionality on your own. Easter eggs are untested functionality and therefore a security risk. Handy functionality maybe handy in your mind, but the customer may (and probably will) think otherwise.
A good programmer develops good software. A great programmer is able to communicate about complex solutions. Communication is the key. Without it your software will never be able to fulfill the users need. Soft skills are what makes an engineer a great one.
Actually this rule is quite similar to rule 2. Be pragmatic in the choices you make. You can't predict the future (can you?), but you are able to know the point in which the software will grow. Build to change, but make sure your software is easy to use for users and in maintenance.
You know your stuff as other developers do. Performing peer review is a great way of learning from one another and gives you the time to discuss solutions and differences.
Optimizing your code is a great exercise. Make one loop a few milliseconds faster may save seconds in a function. Sometimes this is essential. But this is only when you have strict performance requirements. In most cases optimization takes a lot of time and the optimization isn't noticeable for your users. They don't mind waiting a few milliseconds and most of the time small performance issues can be solved by upgrading the hardware or infrastructure. Computer time is cheaper than human time. Think about the cost of you optimization and what the gain is.
A simple solution is far more better than a complex one. Simple
is easy to understand and implement. That leads to less errors.
Developers love new stuff (don't you?). In my experience Microsoft
developers are the worst. New techniques aren't silver bullets.
It's cool to try new things, but realize that you should only
implement new techniques if they have a clear advantage for you
solution. And be realistic about them.
This is one of the most common errors. It comes in two forms.
The first one is blaming errors on the users (yes, sometimes it is
true, but at first think of a problem you've caused). The second is
trying to make your software completely foolproof. You will fail
and make you software more complex. Make sure you give good and
understandably error messages that help your user correct the
problem. And sometimes it is better to solve a problem in the work
process of your users than to solve it in the software. Your users
are smart. They may not understand technical stuff as well as you
do, but they know how to do their stuff (see rule 1: do you know
how to do their stuff?). Users are smart and able to solve
problems: you just need to make clear how to use the software and
if an error occurred give enough information to solve
it. Tags:
|
Prayer does not change God, but it changes him who prays. - Soren Kierkegaard




