Expert advice: Tips to help developers cope
|Richard Harris in Android Tuesday, February 20, 2018|
Advice to help mobile app developers get through the daily grind of writing code, and changing with the paces.
According to a forbes report, being a software developer has it’s perks. From a $168,000 a year average media salary, to being able to have your hand in crafting the Instagrams of tomorrow. But the task of creating flawless code and engineering ideas, comes with challenges.
It’s good to share war stories to help each other navigate the waters, so we recently had the chance to catch up with Sean Hughes, Director of Product Strategy at Actian, to talk about the challenges, tools, and more strategies that can maybe help make the life of a developer just a little easier.
ADM: What are some of the daily obstacles developers face?
Hughes: Meetings that disrupt problem solving and the flow of code development.
Arduous technical implementation documentation that is outdated and hard to work with.
Constant pressure from sprint deadlines, with a growing backlog of technical debt caused by systemic failures in how complex projects are planned and managed.
Managing, integrating, and analyzing Hybrid Data across platforms, applications, and protocols. Interconnected things, distributed data management and analytics, and integrations with third party systems, all drive significant complexity into a day in the life of a Developer.
ADM: Some developers are from small teams and wear many hats. How should they manage all of the tech that exposes them to?
Hughes: Communication is the most important tool in any sized team in any organization.
Wikis and forum-style chat communication tools make it easy to post questions, start discussions, share updates, establish best-practices, document lessons learned, and crowd-source inputs from the rest of the team.
Well-documented code helps others understand the rationale behind an implementation, and makes it easier to support and maintain code over the years.
ADM: What is the best approach developers should consider when picking languages to use?
Hughes: Avoid the temptation of trying to show off by picking a language that is all of a sudden en vogue in the Valley. Rather evaluate the language to understand fit for purpose, ease of use, knowhow in the broader team, and supportability in the long term.
Sean Hughes, Director of Product
ADM: Is it better to be committed to one language, or many languages at one time, and how do you know when it’s right to shift?
Hughes: The goal should be to write beautiful code that anyone can understand, and build apps that won’t come back to haunt you in 6 months as a Frankenstein creation.
Consistency and discipline to maintain good coding practice is important, and the perceived benefits of shifting to another language should be carefully evaluated.
It is sometimes right to shift when the other language is likely to accelerate development without sacrificing performance and backwards compatibility, but there is no simple rule to follow.
ADM: What are some good tools that can make the life of a developer easier?
Hughes: Package Managers make it easy to share and consume embedded software libraries, and to manage dependencies. Popular ones include PyPI for Python, CocoaPods for Objective-C, NPM for Node.JS, and Maven for Java. There’s pretty much a Package Manager for every mainstream programming language, each with tens of thousands of handy software packages to accelerate development.
Publicly available simulated-data-generators and scripts make it easier to evaluate Big Data Analytics Database performance at scale. An example are the Vector-TPC-DS-Scripts, that simulate the kind of testing that is carried out in the TPC-DS (Decision Support) performance benchmarks of various Analytics databases. Seeing is believing for developers, and most will tune out the noise of the marketplace. The numbers will always speak for themselves.