Showing posts with label programming. Show all posts
Showing posts with label programming. Show all posts

Saturday, December 19, 2009

How concerned are you about Good Code?


I'm starting to read Clean Code by Robert Martin. *

Honestly, it makes me realize how unprofessional can we developers be regarding our Code. The book starts by stating that Code is even more important than meeting a deadline or documenting our requirements. Bad code can make your development team reach productivity zero!

One phrase I really liked compares our attitude toward coding practices with hand washing and doctors:

"When hand-washing was first recommended to physicians by Ignaz Semelweis in 1847, it was rejected on the basis that doctors were too busy and wouldn't have time to wash their hands between patient visits." (chapter 1)

How professional are you acting as a developer on your daily activities? For example, lets say that "washing hands" while coding is:

- unit test your code, and automate those tests.
- code on a readable way
- make sure your code can be understood by any other peer, not just a genius like you :-)
- functional test your code on your developer machine.
- check if you are adhering to architectural and coding guidelines.
- refactor so that you minimize duplication and reduce coupling.
- ask humbly for help to other developers
- tell the truth, always.

So... are you "washing your hands"?

Many of us tend to craft bad code for meeting deadlines, but the truth is that making messy code slows us down. Bob Martin says (and I concur) that "the only way to meet a deadline - the only way to go fast - is to keep the code as clean as possible at all times".

This book seems like fun!

Thanks to Mike Vizdos for the recommendation!

Saturday, September 26, 2009

Moserware: A Stick Figure Guide to the Advanced Encryption Standard (AES)

Maybe too geek, but AES Encryption is a cool thing we all developers should have a notion of. Enjoy the comics!

Moserware: A Stick Figure Guide to the Advanced Encryption Standard (AES)

Wednesday, August 26, 2009

The Coding Architect vs the Astronaut one


I just read a post from Shawn Neal about the difference between a coding architect and a non coding architect (NCA). Read it on If I call you a Software Architect, its an insult.

Basically he talks about the "architect" that doesn't code, hes call him an "astronaut architect". He lives too far from the ground and adds no value to the software itself, and only produces Powerpoints and fancy words. Its interesting, and please "no pun intended", really. If you are a NCA, maybe you may wanna check the article so you can examine your role.

IMHO, if you are a technical lead (or a XP coach), you must not leave the sofware coding entirely. Yes, you may think in how to improve your development process and other high level stuff, but I think its important to code. On my daily job, I dont usually code as my daily tasks, but I'm always reading code from others and staying up to date on the technology for improving the way we do things. So, I speaking to myself too: If the tech lead stops programming, he loses the contact with the "real wold" and that is not good.

So, I dont want to be an astronaut, I want to enjoy making useful software and helping others enjoy it too... And you? Do you like writing software?

Saturday, August 8, 2009

Why do we still do it the waterwall way?


Everybody knows that the waterfall way of developing software is very risky. You spend a lot of time writing requierements documents, and then a lot of time programming, and then you get a lot of software to a testing phase... and then you show a lot of software to your users...

In many cases, that leads to a lot of misunderstandings on the requiremetns documents, a lot of bugs in your software and unsattisfied users 'cause they got something they didn't ask for.

I just want to ask myself and maybe make you think about it. Maybe it works for you! Maybe not, and your current stress tells you that. Alberto Gutierrez says on this post:
Waterfall only works if you follow all of its steps and if you don’t make any change to the specifications when you start coding, when a waterfall project fails, most of the times is not because waterfall is wrong but because waterfall doesn’t adapt to the type of software they want to build, Waterfall doesn’t work with software that evolves while it’s been built.
Maybe you only develop this type of projects: everything is sequential and there's never surprises on the way. Most of us don't. So, maybe you'll like to read a little more and examine how are you developing software... as an engineering process or as a craftmanship? Check http://www.makinggoodsoftware.com/2009/07/23/software-development-engineering-or-craftmanship/.

Just one final thought: "Waterfall" is called that way because rivers never flow backwards... contrary to softwre development.

Thanks for reading!

Monday, September 15, 2008

Got a Stack Overflow error? (or any other programming related question?)


If you're like me, you frequently search the web for answers on programming stuff, and its frustrating to just find old forum posts with losts of spam or irrelevant answers. And maybe you've found a place that boasts in having the exact right answer but it's a paid suscription site!

Well, I just read that Stack Overflow has become a public beta!

In their own words:

Stack Overflow is a programming Q & A site that's free. Free to ask questions, free to answer questions, free to read, free to index, built with plain old HTML, no fake rot13 text on the home page, no scammy google-cloaking tactics, no salespeople, no JavaScript windows dropping down in front of the answer asking for $12.95 to go away.


Just check it out the next time you got a programming related question!