After three and a half years with Visiphor I started thinking “What are my accomplishments? What are the lessons I learned?” One of the things I am proud of is a significant improvement in the solution delivery process.
I am intentionally saying “solutions delivery process” rather than “software development process”, because many years ago I have realized that developement is important, essential, but most certainly not the biggest part of the success. Even in a product development company the development [coding] takes probably not more than 20% of the entire effort.
We generally appreciate proper process. If you ask anyone being in the business for a while whether they want a proper process for their business or not, nobody would admit that they prefer a cowboy approach. In reality, many of the companies traditionally run their business using that “cowboy process”.
There are many reasons to use a proper process and many books written on this topic. I want to mention only one of the reasons, which I found extremely important: traceability. Imagine a common scenario, when a support department gets a phone call form a customer reporting a bug. The support department records the bug fixing request in their notes and pass the request to the developers. The developers fix the bug, update the code, which may be even tested :), and send the fix to the deployment guys… After six months and thirty more bug fixes another developer looks in the code, which may even have a comment “there was a bug and now it’s fixed” and asks a very valid question: “Why did we do it?” In a proper process there is no disconnect between the support group, developers, testers, and deployment. The steps are documented and - which is very important - recorded in a traceable way. In Microsoft world it could be TFS, for example.
Another typical example of the disconnect we can often (too often) see between the sales force and the delivery services team. I think that everyone (with no exception, if you have been for a few years in this industry) has seen how sales people have sold something that was not realistic to deliver. Why did it happen? Or why was the work/product underpriced? You would never know if there is no trace.
So, I managed to improve traceability and removed the disconnect between the sales people and the delivery team as well. First, I managed to convince the company that we should follow a certain process (for example, an SOW should be approved by the tech team senior manager before being signed). That was easy, everyone knows the theory. However, the next step was to implement this process in a workflow using office automation tools. From that moment, every time when an SOW was created, I was receiving a message. After reviewing the SOW by a PM and an architect/lead dev, I approved/disapproved it. Therefore, the CFO was always getting the SOW with my notes and recommendations.
As an example, once our estimated price was 50% more than the price suggested by sales.
I certainly understand the business values that may have an impact on the price othen than technical consideration. And yes, sometimes we were taking work that did not have any margin.
Well, there was a lot of other factors that helped, the entire transition to the new process took more than a year, and we are still very far from perfection. But I achieved much better traceability, removed some disconnect between different forces, and improved accountability. And that is what counts.