1. Room for Improvement
Let's list some areas in which artists can benefit from the use of software development concepts and tools.1.1 Versioning
We all know that a 3D creation process consists of many steps in which some of them are like milestones while other steps need to be discarded. From the beginning in which we initially delete the default cube in the blender project until the great movie that we can present to friends, publish in the internet or sell to a client it often takes many days or even years. In addition, we often need to involve other people, other work (photos) or build a chain of different additional tools (pre- and postprocessing of Blender files).
The first problem occurs when we want to save the current work without overriding the previous step. There are many reasons why the possibility to step back to a previous version may be useful. Therefore Blender has a very useful and at the same time nasty (in my opinion dangerous) plus button in the save dialog:
This way we can easily build a new file name with a number as version that can be increased with each click on the plus button. Furthemore there may be important milestones so that we name the files like "MyAwesomeProject_1_0.blend", "MyAwesomeProject_final.blend", "MyAwesomeProject_latest.blend", "MyAwesomeProject_first_try.blend", "MyAwesomeProject_20April2019.blend". Once after a long pause (weekend, vacations, illness) you want to resume your work, but are you always sure, that you remember the last relevant file?
And even if you pick up the right file, do you know which objects in your scene you have changed and if there haven't been any objects changes are missing?
In addition, if you have linked some files into your big container project file, are you sure that you can rewind to a previous version without forgetting one of the linked files to rewind also? Maybe you have used such a versioning by file names that you linked to your big genius project? Are you sure you are getting back your the previous step with exactly your right linkages?
So what you need are so-called change sets (definition of a set of changed files) that are saved in a version control management tool together with a commit message and a way to get a visual differences view of versions to compare with each other. Good news: There are a lot of tools available for this!
1.2 Collaboration
Once the blender projct has progressed a bit, the files have grown to a size that makes it impossible to send them by email. So in case you want to send a project to other co-workers you will make use of shares and file-based cloud-services. At this point we are back to the problem of versioning, because in which state will you get back a modified version? And how will you know what components the other member of your group has changed? In in all aspects it makes parallel work very difficult. Well, version control systems will help you also in this context, because they allow to save the repository centrally in a cloud, and you can grant the permissions to read and write its data to certain people.
Probably you will do most of your work yourself. But at some point in your creation process you may need to involve other people. Maybe you want to ask a co-worker to help you with a blender project, or a photographer to take photos for the footages, or a lawyer to create a license text for your work, or an actor for some scenes in your movie, or any other topic that you cannot do on your own. In every case there are tasks that need to be defined clearly, its progress to be tracked regularly and the output to be merged to your project.
For the project management there are a lot of different processes and tools available. For example in the software development agile process models have gained a big popularity. To support these process models tools have been programmed that allow to track all the tasks on boards. Tasks can be assigned to users and milestones, they have a certain state, a user-defined description, labels and can be filtered. Many tools can create progress charts of this tasks. Moreover tasks can be assigned to commits, i.e. change sets, so that the history of a project can be logged.
