It’s been floating around my brain for a while, but I’ve began to wonder what makes process in software development actually work. It’s obviously not the fact that one process fits all, if that were true, then there would never be any arguments over who does what, when, and how long. It would all be clearly laid out and common sense would be the winner-take-all in the contest. That’s not the case for a lot of companies though. They have people in positions who’s sole job it is to make sure that the process and supporting documentation is followed. A lot of times this leads to an almost dictatorship and static process that doesn’t evolve as all companies (and software applications) do.
But what really makes a process valuable enough to keep the software development cycle intact and not send stakeholders, project managers, developers, and quality personnel to their early graves/retirement/vacations?
This is the single biggest reason that there isn’t a process for everyone. There are so many models, but each human piece of the puzzle has come from a different background and brings along their own baggage of software process do’s and dont’s. Usually creating differences in opinions. No matter how an organization decides to use process to design software more efficiently the tools supporting it must be able to support the goals of the org while making the people using them comfortable with how they are to be using them. Any deviation from those two goals and the company risks deploying software that wasn’t developed to fully meet the standards expected or the number of bugs in the wild increase dramatically. Also to be mentioned are the failures that will occur on the business requirements side.
Process plays a key role in making sure that the goals for the project can fit in a specific period of time. Too short a time and no one is happy at the outcome. Difficulties in later development can crop up because of shortcuts taken during rushed development. Too long and things like scope creep start to happen because the goals of the project have taken long enough that new requirements are needed to fit current business opportunities.
So what makes process actually work? A unique combination of people, goals, tools, control, research and a willingness to accept that improvements always need to be made. Make sure that all parts of the process have input into the development of and changes to the process and you should only have as many speedbumps as everyone else. It’s not perfect, but would you really want it to be?
–dez