Over 2016 I kept note of the popular topics discussed during my coaching and mentoring sessions with business intelligence professionals. Data Science was definitely one of the topics of the year, and this blog outlines the computer science technical skills (t-skills) collectively expected in a business intelligence environment.
The blog also presents a basic computer science t-skills assessment tool for use by teams or individuals to self-assess their depth of knowledge in each of the computer science t-skills, identifying appropriate areas for development and training.
I have identified the seven hot topics of 2016 and will share these through blogs over the new few weeks. The blogs are written for professionals entering their first business intelligence management role, or individuals interested in developing themselves as business intelligence professionals. Please check back to see if any of the future hot topics are useful to you. My aim is that these blogs are supportive of business intelligence progression.
Credibility is paramount in business intelligence, customers are not interested in excuses when output is not robust, reliable and (when expected) routinely available. Individuals and teams who have strong internal governance processes and quality control are trusted.
The human aspects involved in forming business intelligence credibility hinge upon computer science t-skills capability.
To assess your depth of knowledge in computer science t-skills you must first decide which computer science t-skills are vital for your team.
I suggest the following 10 computer science t-skills as a starting point, feel free to amend as required:
- Data structure: how to best structure data so that a computer (i.e: code) can use it efficiently.
- Algorithms/Systems Programming: formulating a set of rules to solve problems and then using the set of rules to provide a business solution.
- Software Engineering: design, develop, test, implement and maintain solutions in a systematic way.
- Programming: preparing a set of rules (2) or instructions to automate a task, meeting the requirements received (7), through code.
- Code Organisation: ability to organise code into functional blocks, without repetition, where the individual blocks can stand alone.
- Error Handling: use error handlers to anticipate, detect, resolve and communicate errors within written code in a manner that best suits the end user.
- Requirements: ability to prepare and use high level documented statements to outline the desired goals, objectives and deliverables of a solution.
- Automated Testing: use code to automate the running of tests, communication of outcomes and comparison of later tests against earlier tests to show delivery of requirements.
- Broad Tool Knowledge: broad and comprehensive understanding in at least the major software languages.
- Communication: use effective communication (non-verbal, listening, stress management, assertive communication, etc.) with key stakeholders, business colleagues and the interested public.
Using the Computer_Science_T_Skills_template assess your depth of knowledge in each of the t-skills. I suggest the following guidelines in deciding on depth of knowledge:
- basic implies that the individual has started to learning the t-skill but spends most of their time searching training guides, manuals or blogs on the internet
- intermediate implies that the individual has learned a few of the key deliverables of each t-skill, however when asked to complete a piece of work a bit out of the ordinary they will return to searching training guides, manuals or other on-line advice and information
- advanced implies that the individual has a good grasp of the t-skill, if asked to complete a complex piece of work they will need to search training guides, manuals or other on-line advice and information, and
- expert implies the individual has a full understanding of the t-skill and has had substantial experience in delivering work using the t-skill.
Using the results of the surveyed computer science t-skills set development and training goals, initially focus where t-skill depth of knowledge is low and the team is wanting to evolve up the business intelligence maturity model, or, if you are already a mature business intelligence team where the t-skill is one that the individual would like to enhance.
In the example shown, left, the team have a lot of experience in programming (PRO) but only in 1 or 2 software languages (BTK). The team show confidence in communicating (COM), and there is existing depth in preparing requirements (REQ) and automated testing (TST). Strength in these last two computer science t-skills sits with one individual, which in my mind would elevate the t-skill as a training need for at least one other person (if the t-skill is frequently used within the team).
The most obvious training need for the team, shown in the example, would involve improving computer science t-skills in algorithms/system programming (ASP), software engineering (SEn) and error handling (ERR).
These t-skills will be especially important if the team strategy is to automate regular reporting, meaning the team will benefit from the planning, code efficiency, release process implementation, helpful error message generation, full process testing, and the gathering and documenting of reporting requirements learned through improved knowledge and experience improving these three t-skills (ASP, SEn and ERR).
This simple assessment exercise will generate additional development work for the team, however, the benefit to any business intelligence development project from having knowledgeable team members is immeasurable.
It would be great to hear any feedback you have regarding this blog in the comments below.
Mel blogs about analytics, analytical tools and managing better business intelligence. Want to read more? Try more from Mel.
We run regular Agile courses with a business intelligence slant in both Wellington and Auckland.