Automation is more than the removal of manual work
Everyone is talking about automation these days. I have had discussions on this with many people including senior, middle and junior level software professionals. Many of them think that automation is to “Develop software that will do the work to be done by a human being”. There is no doubt about that and at the same time I think there is little more to that and in my opinion automation helps “Bring discipline into teams work culture”.
Let me share two examples …
Code reviews and standards compliance check – Everyone talks about this but very few take it seriously and do. A few years back I thought about it a lot and introduced code sniffers. What I did little differently with automation here is that I have integrated code sniffers with configuration management system. Every time a file containing software code is committed to the repository, the sniffer code triggers and checks for coding standards and design compliance. Sniffer does the code review and compliance check instead of human being. An example of sniffer: If someone writes too many if-else conditions within a function, one of the sniffers checks for Cyclomatic complexity of the code and does not allow file to be checked-in until all errors pointed by the sniffer are closed. I see this as away to enforce the discipline of code reviews and closure of review checks.
Proactive quality check - Facebook’s internal monitoring tools would track tweets about Facebook and analyse positive and negative remarks. They do so because if people find any technical problem in one social network they tend to complain about that in other social networks. This is done as part of their releasing engineering. I see this as a discipline of proactive quality checking.
Other important thing I would like to highlight here is that this automation (to bring in discipline) is much needed for large organisations than startups. Main reason I say this is that it requires change in mindset of people at different levels of the organisation and generally large organisations and big teams will stand first in resisting the change compared to agile startups.