A friend once told me, 9 years of software development in an investment bank feels like 1st year repeated 9 times. This statement was lost on me until today. As I ponder over my future, no longer being part of Nomura as of today, I am beginning to feel the same.
I was part of HSBC, J.P.Morgan and then Nomura for last 9 years, working as a software developer primarily in Java. I was also technical lead of a failed startup chat2get.com, and have made couple of websites along the way. My plans are for something slightly more drastic.
We (few friends & myself) plan to form a software company catering specifically to the small and medium businesses in India. These companies still use paper for their workflow, at best excel/spreadsheets.
The service companies in India, though capable, cater to larger clients and fail to provide attention to the smaller ones. Products like SAP provide solutions, but are prohibitively expensive to be bought, customized and maintained. We want to help such businesses use software and become more effective and efficient.
As our journey begins today, I was thinking about my learnings over those forgone years and what kind of company we are attempting to create.
I had a great team in Nomura. It had a distinct culture. Culture that was not imposed on by the company rather it blossomed organically from within. The first instance of this realization, was when I was stuck in an issue late in the evening and 3 of my teammates stayed back to help me solve it.
Our team of around 20 occupied a corner of the building, and we took advantage of it like no other. The passionate debates, the hilarious jokes, the impromptu group discussions, while never taking the eye off the task at hand. That perfect combination of fun and hard work is what made the team bond and rack up multiple deliverables.
While trying to replicate this at our new company, we also want to encourage feeling of humility, respect and empathy. In Enterprises these soft-skills are rarely given any importance leading to disastrous consequences. We plan to focus on hiring right attitudes and encouraging the right behaviors.
Freedom with support
A Gmail team member once said “managers are of 2 types shit-funnels and shit-umbrellas”. All the literature out there about effective management from agile books, to startup advice, to the modern concepts of microservices and devops; they all have one theme in common. Keep teams small, assign them the task and give them the freedom to achieve it their own way, and provide support by removing any hurdles in their path.
This helps in
- speeding up the team by removing bureaucracy
- improving accountability by cutting off possibility of blame-game
- making the team feel more empowered, accountable, and in control
In spite of all the evidence, it is unfortunate that traditional enterprises have not embraced this style of management.
They are still stuck in era of
- top down management
- waterfall model of software delivery
- lengthy approval process for deployments
- restriction on choice of tools like IDE/CVS/browsers
Speed and customer partnership
Today’s world moves fast; every aspect has good probability of changing - from requirements to markets to technologies. In such times, to code in a dark corner for months can translate in missed opportunities or complete software re-writes. It is important to partner with the customer and not just show up at the end.
Customers are more visual, they love to see the software more than the in-the-air preceding discussions. This is precisely why teams should create, showcase and get feedback on working versions of software, by iterating, through agile (a term overused and less understood).
We sometimes fail to understand that agile methodologies are just guidelines. It is upto the team to decide the processes that work for them, and not other way round. For example, architecture design is not about UML blueprints painstakingly made in some software. It is about people coming together and discussing design on a whiteboard. Resultant artifact can be either be a full blown UML or just a pic of the whiteboard. Similarly, agile is not about the which tools you use, it is about process which enable you to move efficiently as a team.
To backup customer partnership and agile, it is equally important to have automated tools that enable quick changes to live version of the software. This chain includes build tools, deploy tools, GIT hooks, one-click reverts, A/B testing etc. We plan to invest in such tools to achieve immense returns over time.
Paul Graham once said “create more than you consume”. I have been guilty of not contributing back to the technology world nor to the society at large. I hope with this new venture we can change that.
I wish for this company to be a place where people love to spend their time. A place where maslow’s hierarchy of needs are satisfied up until the very top. A place where we as a family improve the community we live in.
So here we go!
Out of circle… onto a tangent