Andrew Tridgell clears up a few misconceptions about Samba over on Groklaw. Samba, in case you aren't familiar with the project, provides print and file services to SMB/CIFS clients. Samba is probably used most often to allow Linux servers to offer print and file sharing services to Windows clients, but it's not limited to working with Windows or running on Linux.
It's not uncommon for people to describe Samba as "reverse-engineering" Microsoft's protocols so that Samba can work with Microsoft clients. Tridgell points out that the Samba team actually uses the "French Cafe" method to figure out how to work with Microsoft clients.
Imagine you wanted to learn French, and there were no books, courses etc available to teach you. You might decide to learn by flying to France and sitting in a French Cafe and just listening to the conversations around you. You take copious notes on what the customers say to the waiter and what food arrives. That way you eventually learn the words for "bread", "coffee" etc.
We use the same technique to learn about protocol additions that Microsoft makes. We use a network sniffer to listen in on conversations between Microsoft clients and servers and over time we learn the "words" for "file size", "datestamp" as we observe what is sent for each query.
It's too bad that the Samba team has to use this method at all, really. As Tridgell points out in his piece, the SMB/CIFS protocol was designed to be extended, but Microsoft is the only company keeping some of their extensions secret. Other companies (and projects) want to be able to operate with other implementations, but Microsoft wants its clients to only be able to "speak" with Microsoft servers.
This puts the lie to Bill Gates' claims that open source has problems with interoperability. The problems start in Redmond.