It took us close to nine months to translate our idea into reality. We had debated the idea (for ANCOR, Saner and other products we plan to build) for over three months.
Dropping some features, adding something in the last minute, debates, disagreement, agreement, sleepless nights, real-deep technology discussion, theoretical Computer Science discussion, this make sense, that doesn’t make sense, support of the family members, tension, humor, silence, over engineering, fun, passion, satisfaction, I am sure I have missed out to mention many more emotions here but that was, in general, the journey.
The first step was to prepare an architecture diagram. We put it up in the Centre of our office, where we keep seeing it each day and say, ‘it is just about making this work’. Just seeing that printed poster of the architecture has given us joy. It was put up on the outside of the glass pane of my cabin, so I always saw the other side. Was it intentional?
I thoroughly enjoyed the breakfast meetings where each one had to present ideas, debate on those ideas. One, it is fun to eat and discuss and second, things really get done in the morning hours.
In the first session when I was presenting the idea to the team, we set a goal to finish the scan in just one minute. On an average, security scanners take about 10-15 mins to do anything meaningful. We knew it was an over optimistic goal. When we did the prototype it took about 5 mins and after tweaking it more, it came down to sub 4 minutes. Was one minute some kind of reality distortion? Maybe not… We have not given up on that!
During the initial days, we thought of a feature which we all agreed was really cool to build. It was about making use of the system resources when the system is idle or when the system is underutilized to scan, so that users don’t feel that the scan is taking away productive time. We discussed this passionately and came out with multiple approaches to find out the usage pattern of the system and arrive at a decision point to perform the scan. We spent a good amount of time prototyping it. But, it was really funny when we found out that Windows already had an API to do just that. Our admiration for the Windows operating system grew, but, we had already spent enough time on it. In the end, we called off the feature because the scan speed was very good and there was no need to find out the optimal time to scan. The user can now scan whenever s/he wants to.
It is August 14th, there is a bug, UI is crashing for no reason, working late evening with the Developer to get that fixed. Tomorrow we have to make a build for the QA. Of course we have tried all possible ways to understand what is going wrong, the backend the front end etc. Frustration is when you do not know what the problem is, solving is the easiest part. We found one function call which was responsible and commented that out which was not needed. It was 12 AM then and I say, “Happy Independence Day!” Tracing back the problem, connecting the dots is fun and it is intellectual high!
There are a few occasions when I have given up on something and I would say, ‘I am ok with it’. But real satisfaction is when the developer is not satisfied with that statement and they go all out and ensure things are built to perfection. Nothing is more satisfying than the whole company working with a single purpose in mind and when everyone takes the role of perfectionist.
I have heard some seemingly strange discussions too, ‘if I put a bracket this side, CPU utilization will be more’, ‘we need to reduce the number of steps in this algorithm’, ‘while() loop, why not an event based listener?’, and many more that brightened up my knowledge on theoretical computer science.
Ideas kept coming till the last days when we had made up our mind for the release. And I have said ‘I don’t want any revolutionary idea now’ to stop them creeping in at the end moment.
We were sitting on a huge pile of vulnerability research content created for over 5 years, the team that relentlessly do the research, create content or signatures and provide solution to those on a daily basis. That made the job easy for us.
The videos, website, user guide, FAQ was all done by Developers. That is certainly not a norm in the industry. I was coming up with strange ideas for the video, when one of the Developers realized that it was going to be a disaster and took up the job of creating an awesome video for the product.
Setting goals is easy; translating those into reality is not. Without the effort of the immensely talented, passionate young Engineers, this would have remained a dream. There has been sincere engineering effort, personal sacrifices, late nights, fun, humor and satisfying moments. Hope people who use it find it beneficial.