I have been reading about REST a lot recently, and hence about architectural styles. Perhaps I have found them in the opposite order. Nevertheless, it has been extremely refreshing and educative. So much so that I saw even SOA in the new light.
An architectural style is a coordinated set of architectural constraints that restricts the roles/features of architectural elements and the allowed relationships among those elements within any architecture that conforms to that style.
The most important keyword there for me is constraints. If identified properly they help, not hamper, productivity. And I think most of the faults in software development boil down to the assumption of wrong set of constraints.
This led me to wonder if we could have process styles. Like the architectural styles, the process styles provide a coordinated set of constraints. Software development process depends on various aspects, and might need to change depending on various scenarios. Nature of the work, skill-set of the team, timelines, client’s knowledge, and many more things can affect which software process to use for a project. In such cases, process styles can help us identify and get a coordinated set of constraints in an easier way.
Another important aspect of styles is that they do not design or implement things. This gives a lot of freedom to the team to implement in different ways depending on the scenario.
Do we have process styles? RUP is more of an all-inclusive meta process. XP seems to talk about some things in more detail than some would like. The closest we have today for a process style today, is their abstraction, agile development.
But I think we do some more work here, especially by focusing more on constraints. Maybe this thinking will bump into other styles as well. This can help us in choosing the right process or customizing a process to the right level for our work. I am sure you see that I am not very clear in my thoughts yet, it is quite foggy. Hopefully writing here and discussing more will help me think through it.