English | Czech
Choose your language.
I write in English, but I translate most of my articles to Czech as well.
Zvolte si jazyk.
Píšu anglicky, ale většinu svých článků překládám i do češtiny.
5 Software Development Lessons… Learned The Hard Way
I have had to maintain some rather big pieces of software I wrote a few years ago. Apart from being a special kind of hell (“WTF?! How could I have written atrocities like these?”) this experience reminded me what I’ve learned during those eight years I’ve spent writing software for money.
- Document your code extremely well. Take the time to write all those JavaDoc tags and keep them up to date. When creating a new class or method, document them before you actually implement them.
- Get your priorities right. Implement essential features before playing with the more interesting, but expendable nice-to-haves. I used to have a dynamically editable upload form with zebra striping and all, implemented as a generic JavaScript component. Very cool and fun to code. But the actual upload functionality wasn’t implemented for a week.
- Try to write reusable, abstract code, but don’t go over the top. Your code should survive minor specification changes, but it doesn’t have to withstand a complete overturning of the project’s purpose. You’re not building a nuclear shelter. Before you go into developing a cool library completely decoupled from the rest of your code, pause for a while and try to assess what are the odds you will ever need this functionality somewhere else.
- Stop thinking like a programmer when you’re creating user interface. It might make a great sense to have only one admin interface for editing both customers and managers in an on-line store — they are just two different types of users, after all — but for the actual managers of the store, this makes no sense at all.
- Don’t use technical terms in user interfaces. Normal people don’t understand them. Be prepared to name interface elements in a way that seem illogical to you.
It’s all so obvious now. Yet it took me very long to overpower my inner geek and learn to think practically.
1 comment Add your own…
Speak your mind
Allowed HTML tags are a, blockquote, em, code, li, ol, p, pre, strong, ul. Links to other comments in the form “[IV]” or “[4]” are detected automatically.