All of this talk about BOMs these days, (all of my talk, that is), kind of begs the question of how BOMs are put together. An Excel spreadsheet seems to be the most common "BOM management" tool in use today. Large organizations often have more formal systems, but for everyone else, it seems to be largely a manual spreadsheet process.
When I'm putting together a new design, I first look at the big parts, like MCUs and other "big" chips. Sometimes big is 3mm X 3mm, so "big" is a relative term. Then I'll put in active discreet components and connectors. Next will be specific passives (like for a crystal that requires a certain value of capacitor) and finally, the more generic components like pull-up resistors and bypass caps. This may not be the best, or even a typical process, but it seems to work for me and it more or less follows my circuit design process. There are some traps that I leave myself open to.
I pick the big components based on what the board is going to do and how much real estate I have. The next set of components are largely used to make the big components work. The specific passives attach to parts with specific requirements and the generics just get thrown in as needed. Often I don't even define the generics until after the design is complete. Take a look at this schematic clip:
U3, the MCP73833 battery charger and U4, the ADM3101E RS232 line driver will both get specific part numbers right off the bat. I may change packages as I get into the layout, but I still will usually fill the BOM for those items when I put them in the schematic.
I've put U3, the charger chip in my BOM twice, each with a different package, because my preferred package isn't available at the moment but might be soon. It's not best-practice, but you can do that as long as the reference designator differs in some way and the part is labeled "DNS" (Do Not Stuff). I simply gave my alternate the part number "U3alt".
R6 and R8 get specific values because the battery charger chip calls out for specific values. Q1 will be a small P-channel MSOFET, but the specific part number can come later. All of the rest of the resistors and caps will also be defined later.
The biggest trap I have to watch for when filling out the BOM in this order is forgetting any design decisions or leaving fields blank when I go back and fill in the rest of the part number information.
This is typical of a BOM of mine just after I've finished the layout. If I were building this by hand out of my own parts bins, this would be fine. But when sending it out for assembly, it's not. I personally know that C3 and C4 could be any of a dozen different part numbers. The only things that matter in that case are that it's .01uf, it's an 0402 and the voltage rating is 10 volts or higher. I know that R2, R3, R4 and R5 are just LED current limiting resistors and can be anything between 220 and 680 ohms for this particular circuit.
I know those things, but the assembly house doesn't know that those parts have pretty loose specs. It will just cause delays if I don't find an exact part number before sending it out. It may seem obvious, but just because it's obvious to me doesn't mean that it's obvious to anyone else. That ambiguity has to be gone before anyone else sees it.
Knock three times
on the ceiling if you want p-channel.
Twice on the pipe If the answer is n-channel.