The result of a recent discussion of some side projects and whether or not it was professional development.
- The project had business stakeholders separate from development team.
- The project had testers separate from development team.
- The project had end users separate from development team.
- The project had a development plan.
- The project was deployed to production.
- The project has end users who continue to use the system.
- The project had at least three significant challenges - challenges not solved by Googling or reading stack overflow. These are hard things you had to solve as an individual or team.
1, 2, and 3 need not always be completely distinct groups, but they do need to be distinct from development team.
1 through 6 can be easy at times, and can happen very fast, if you know what you're doing.
It is usually number 7 that distinguishes professional development from amateur work, hobbyist side-projects, or other simple coding endeavors.
Notice that there is not a Number 8 - 'You got paid for doing it.', becaucse being paid for it isn't an absolute requirement to make it real work. I've seen a lot of people get paid for things that don't count. And I've seen a lot of great work that was created because someone cared enough to do it, even though they weren't getting paid in dollars or other currency.
If your work checks off number 7 on the list then you were getting paid in experience, and this can be invaluable to you.