I'm soon going to look for a new job and is trying to put together a portfolio. I have a hard time deciding which of my projects that I should include. I've decided to categorize different kinds of projects and then get some feedback from the community as to what kind of code should be part of a portfolio.
Type A: These projects are written in a group with a tight deadline. Due to the iterating nature of the project and involvement of many people, at least one of the following three suffers; design, documentation or implementation. The goal wasn't always (perfectly) set when the project started, much was designed as the team went along. If something wasn't working smoothly, it was changed.
- Good: Almost all of these projects are games, which is good since I want to get into the games industry. It also shows that I can function in a team and adapt quickly to the designers tweaking the game idea. But most importantly, it shows that I can deliver a working product and the end of the deadline including all fundamental ideas.
- Bad: As stated above, the code usually suffers from the time pressure and changing project goals. And since it was written in a group, there is no way to tell what I wrote and what somebody else wrote.
Type B: These are small projects and written solely by myself, with no time pressure or bumps along the road of any kind. The project goal was clearly defined and set in stone before it was started. The code itself is very good written and documented.
- Good: These projects shows what a great programmer I am. My attention to detail, abstract thinking and thorough design documentation.
- Bad: I personally think that everyone can show the qualities mentioned above given no restrictions regarding time and effort spent on the project. So this only shows what coder I am under perfect conditions, something you rarely see in the industry.
Type C: These are my involvements in open source projects. Submitted patches and fixed bugs.
- Good: These projects best shows my ability to grasp a codebase that's both mature, established and to me foreign. And like B, I can spend enough time to come up with a really great solution to a problem. And like A, it shows I can function when coding with others. Also, due to the nature of open source projects, the bugs and changes are very clearly documented, so its not hard to find and point out the parts I've written.
- Bad: Since I've only written parts, I can pick the parts I'm good at, skipping the rest. Although the quality is probably better, it doest show that much versatility compared to B.
Good answers include one or more of the following:
- A fourth category
- Which category best suits a programmers portfolio
- How to display the code I've written in case of type A and C
- More good and bad things about any of the types
Also note that I've read other questions here on SO regarding the portfolio's importance compared to a cover letter, resume, recommendations and so on. The question isn't about how much time or emphasis I should put on the portfolio, rather on what's going to be in it and how it is to be presented.