I still remember the chaos of my first job. A new team with new challenges. Facing critical work decisions for the first time. But there was something else that added to the chaos — a cooked-up and manic code base. It made me feel more like a mad scientist than a software developer.
In simple terms, it was a customized Apache module. In more complex terms, it worked like this: It would run Perl code within CDATA tags in an XML file. And that file also contained the environmental details of the program. In effect, it was using Apache like a router. The files themselves as controller code, and then perl modules referenced within the files as both model and view.
The system was bespoke, clever, artisanal… and completely batty.
Thankfully my “mad scientist” days are behind me. Through the years, I have seen engineering teams take a more standardized, best-practice-driven approach. We certainly do at Aha! — as a result of our streamlined approach, it is not uncommon for new developers to start contributing code their first day on the job.
Yes, this standardized approach is becoming the new normal. And I think you will see things continue to get more “sane” in 2017.
Here are five forces driving this trend:
We are moving away from the “human-follows-a-checklist” processes of yesteryear and becoming more automated. While the DevOps movement has been growing for some time, these technologies are reaching a maturity that lends themselves to becoming embedded in businesses of any size. This makes it easier to develop, test, and deploy changes.
The development world is becoming one large — and powerful — community. Through open source, our team is helping developers around the world find and fix bugs. And they are helping us too. Their feedback speeds up our troubleshooting and development. Leveraging open source contributions lets us focus on providing value, rather than reinventing the wheel.
We are also emphasizing community within our team. Our regular code reviews play a big part in that. Not only do these reviews ensure quality for our work, but they also create a sense of camaraderie by getting multiple people involved in every feature we develop. Another advantage of code reviews it that they give us a chance to share and teach each other new techniques, patterns, and tools. This is invaluable for building a learning organization.
And the community building does not end there. We work closely with all Aha! teams, including Customer Success, UX, and Product Management. We know that everyone has to be on board to make the end-product a success. That is why every engineer plays a role in the process of supporting our customers. Engineers even lead a live customer demo as part of their on-boarding process (along with everyone else at Aha!). The last thing we want is to be disconnected from the rest of the organization — or from our customers.
This is an incredible competitive advantage. For one, it gives us a deeper talent pool — working with people not just in the United States but also in Canada, New Zealand, and Australia. By having highly trained developers stationed around the world, we have 24/7 operational coverage. So when a solution comes to me at 11 p.m. at night EST, there is always someone else up and available to talk it through.
We will all accomplish more through collaboration. And by shedding our “mad scientist” ways for a saner approach.
But it’s not just the engineering team at Aha! that has embraced this new normal. We all know that the quickest way to innovate is by having a clear vision and collaborating on the execution — both inside and across teams.
What will your engineering teams see more of this year?