Saturday, March 05, 2016

6 skills of a highly effective digital developer

Digital transformation of the world has gathered pace and changed significantly in shape, size and character over the years. So have the skills required of a digital developer to be highly effective in this digital age changed? Let's take a look at the six key skills that a digital developer must have today.

1) Ready for change - Gone are the days when we built things as per spec and stuck to it. The world is changing so fast, competition is constantly gnawing at our heels , digital disruption by unknown startups are constantly shaking up the status quo and defining new behaviors for our customers. So the first skill that a developer building digital products must have is a preparedness for change. That feature you built yesterday is too old already. Your customer will need it changed constantly throughout the day, week, month and year to keep pace with competition and stay ahead. How can you be prepared for change?

First of, mentally to have the attitude to embrace constant change. After that, there are a few habits that should be part of your daily grind.

a) Writing tests and beautiful code. All your code have unit tests written, you practice test driven development, behavior driven development and other variations so when you make those changes there is a scientific way to know if your code still passes all the tests without breaking things and that you delivered what was expected. Since your code is changing thick and fast you are writing beautiful code so those changes can be made fast and confidently. You also measure test coverage, adherence to best practices and standards and technical debt through the use of tools such as SonarQube .
b) Continuous Integration and Deployment. You use tools such as JenkinsBamboo , Go , DockerAnsible to ensure changes to the digital product are made and delivered fast and safely even several times a day to multiple servers and environments.
c) Agile and Lean mindset -  You have a strong agile and lean mindset. This means that you truly believe in their principles, but also you are a master at doing things such as A/B Testing,  using Kanban boards effectively,  comfortable pair programming,  participating and conducting team retrospectives, capturing and using process metrics, planning sprints and releases, using version control effectively, practicing lean startup principles or asking of your product managers that they do.

2) Full stack hacker - You are a full stack developer. What this means really is that you are:

a) very comfortable with HTML5/CSS/(LESS or SASS)/(AMP?)
b) a guru in Javascript/jQuery/AngularJS,
c) a master of atleast three mature languages used at the server side (such as Java, C#, PHP, C#, Ruby, Python, Objective C) ,
d) good with atleast one modern programming language (such as Scala, Go) and
e) a guru with SQL.
You are also comfortable with
f) a few different IDEs,
g) a couple of version control systems and
h) atleast a couple of different operating environments (iOS, Linux, Windows).

In a nutshell, you can build a digital product all on your own from scratch be it a responsive website or an app or a data crunching algorithm that delivers superior analysis (more on this later) to your customer.  Why must you be a full stack developer and not just a master of one or two languages? This has a lot to do with #1 above. When you are comfortable with the full stack used in a solution, you can design better solutions, make changes faster and thus respond to change faster and better and be more effective in a team.

3) Data technologies - The era of data is here like we have never seen before. Banks, Retailers, Social Networks and apps and everyone else these days crunch enormous amounts of data to hone their products and services. So processing enormous amounts of data and deriving intelligence from them is a skill that you should probably possess to build great digital products. What does this mean in terms of a skillset?

a) Domain knowledge. You know a couple of industries really well. To understand data you need to understand the business. Apart from that, of the list below from ETL Tools to DW/OLAP you have worked with at least one category of tools/technologies.

b) ETL Tools. You are comfortable using tools such as Pentaho Data Integration or Oracle Data Integrator. Data almost never is in a ready to use form or all in one place or nice and clean, so you need these to put them together.
c) Data science. You know a few well-known classification, class probability estimation, regression, clustering, profiling etc. machine learning algorithms and how to use them, when to use which one, how to tune them, building models, how to choose attributes, how to preprocess data and have an intelligent conversation with a machine learning expert. You also have the necessary mathematics and statistics knowledge to understand how they work. This may not necessarily mean that you are an expert here, but you should be able to straddle the worlds of machine learning, programming and industry knowledge to derive useful insights.
d) Big Data. You have worked with "Big data" with tools such as Hadoop, Spark or the Elastic stack.
e) Visualisation. You are comfortable with the use of visualisation tools (such as Tableau, MatPlotLib) to show the results of your data processing.
f) NoSQL. You can go beyond RDBMS solutions and use products such as Redis, MongoDB, Neo4j in storing and asking questions in an efficient way of your data.
g) DW and OLAP. You can build data warehouses, are comforable with star schemas and OLAP tools.

4) Social, SEO and SEM - You are familiar with a range of social APIs. Facebook, Twitter, Instagram, Pinterest, Google social APIs, apps and networks are of second nature to you. You use good SEO practices while developing websites. Not only do you have an excellent understanding of how to measure user behavior, but you can use various tools such as Google Tag Manager, Google Analytics, Facebook Analytics, Twitter Analytics comfortably to measure everything about your digital product and change strategies to improve outcomes.

5)  Cloud -  You are at least comfortable with one cloud infrastructure provider such as Amazon AWS or Microsoft Azure and have a reasonably good understanding of their full service offering , the differences with similar such on-premise services and have hands-on experience with a few of their cloud services. Apart from that there are several other providers of various services. Their services include A/B Testing, Real User Monitoring, CDNs, Reverse Proxy services, Security services and so on. Familarity with a few popular ones such as CloudFlare, Incapsula, Optimizely, Pingdom etc. will definitely be useful.

6)  Code -  You write secure, performant, scalable, accessibility compliant and beautiful code. Most digital products/services these days store store some kind of personal data and its very important to protect it with sound secure coding practices. If you ended up building a popular digital product, then performance and scalability of  your code is paramount. Its important to write accessibility standards compliant code (levels depend on what you are building and for whom) so we don't neglect or ignore the less able. Finally, your code is beautiful and can be maintained well by people after you.

Too much to ask for? Missed something? Please leave your pithy comments.



No comments:

Post a Comment