You may have moments of despair when you see how your IT kingdom is building software. So much improvisation, the lack of a clear vision, being satisfied with good enough and whatever works. Don’t blame yourself, we are all guilty of having contributed to this ‘Hope and Hard Work’ strategy, myself included.
The fact that our craft is a relatively recent affair, compared to more established professions in the engineering fields, explains a lot. Before the advent of Agile, Test Driven Development and Continuous Deployment, badges of honour were acquired by coders for writing complex code that worked, using only their brain power and lots of cockiness.
Sweat and blood were optional but if included, could create gods out of mere mortals.
Last weekend, we held our first hackathon. After some delicious home made pancakes and real premium maple syrup, we unveiled our challenge… Write a backend REST API service to serve data to a geo-localization powered app in under 7 hours. Teams would be scored by automated integration tests run against their assigned URL endpoint every 5 seconds, with live rankings being displayed on the big screen TV.
We hosted a diverse group of developers, with eclectic backgrounds and levels of seniority. They used different technology stacks, as no specific directives were given as to how things should be done.
I was then taken aback as all the teams, with0ut exception, started working in just about the same way. This was an amazing sight!
They all started by creating GitHub projects, they configured continuous integration pipelines, they all used some type of Cloud hosting even though running the service locally was allowed, they wrote a number of unit or integration tests… and amazingly, one team even worked using Pull Requests. What about that!
Hacking challenges do not provide for a lot of time. Many would feel that hammering out code as fast as you can and just making it work would be the shortest path to victory. But all the teams seriously believed that a structured, automated, iterative workflow would be faster. And at the end, when we audited the code, you could see more Clean Code than bad code.
I think that the Clean Code mantra, TDD, CI, CD and a real consideration for quality are slowly weaving themselves into our profession and turning code warriors and Red Bull driven egocentric geeks into real engineers.
To speed up this transformation, initiated by a new generation of professional coders, corporate leaders must make sure that the old guard encourages these behaviours or at least stays out of the way. Older and wiser folks who are now proudly occupying roles such as IT directors or project managers, could severely hurt their company by stifling innovation if they prevent this cultural shift from happening because they do not understand the underlying benefits or from fear of being considered irrelevant.
Today, you cannot innovate if you aren’t delivering features 10 times faster than 5 years ago. Otherwise, all your time will be spent just staying afloat of the constant technological changes.
Recently, even established leaders such as Intuit founder Scott Cook, have been turning the innovation leadership pyramid upside down by encouraging the developers themselves to try out unheard of solutions to solve customer frustrations. Innovation can no longer come from appointed decision makers higher up the chain of command.
This trend to promote innovative thinking from the lower ranks (what a negative position description) is simply based on the fact that the people closest to an issue will probably have the best insights on a possible solution.
But buckling the establishment may be so hard that an actual disobedience movement is taking shape, put forward by people who want to keep innovation flowing. Scott Cook has stated that this mindset is what allows Intuit to stay relevant after 35 years in the highly competitive software industry. MIT has even just created the ‘Responsible Disobedience Award’ with a $250K prize, to promote innovation by NOT following the rules.
There is hope I say. And it is just around the corner. You just have to let it happen.
Be the Revolution!