Yesterday I participated in yet another of Post University’s Advisory Board meetings for its CIS department (see descriptions of previous years here). The participants included individuals with widely varying experience and perspectives, and it’s always interesting to hear what they have to say. What follows are my own suggestions, based on topics from the agenda, other advisors, and my own observations.
General Topics, Business Analysis, and Soft Skills
I noted that their department is targeted to CIS (computer information systems) and not pure computer science. That means that the context is more about working in different capacities within an organization than going down the rabbit hole of maximum performance and finding the next incremental advance in algorithms and data structures. That suggests that students might benefit from being exposed to a wide variety of concepts during their educations, including core:
- Algorithms and Data Structures: You gotta start with the basics. This means you typically start with a single language, but it’s a good idea to be exposed to more than one language and some discussions of the applications of and differences between each. When I went to college, must of us started with Pascal, but being exposed to C and assembly language was helpful in beginning to explore the wider world of computing. Since then I’ve worked with or studied close to twenty more, and there are reasons why they all exist. A few of them are and can be expected to remain in widespread use (JavaScript, Node, Java, Python, GO, R, Swift, PHP, C/C++, and C#), some will continue to fade but never completely (FORTRAN, BASIC, Ruby, COBOL), and others may break through or remain in niche uses (Rust, Dart, Opa, Scala, Erlang, Ceylon, Golang, and Hack).
- Architectural Arrangements: Solutions are built in many contexts, including web-based, microservices, client-server, peer-to-peer, desktop and other standalone, mobile devices, embedded, and IOT. Some will clearly be more germane to CIS graduates expecting to support organizations, but it’s good to be aware of everything that’s out there.
- Collaboration Tools: Industry tools like SharePoint, Jira, Confluence, Rally, Slack, BaseCamp, Discord, Zoom, Github, email, MS Teams, Azure Devops, and more. Nobody does anything alone any more, especially of any scope, scale, or complexity.
- Desktop Apps: MS Office apps like Word, Excel, and PowerPoint — or their “free” equivalents from Google, Apple, and others; diagramming tools like Visio, data presentation tools like Tableau and PowerBI, various utilities, and so on.
- Operating Systems: Unix and Linux (everything from Red Hat to Raspbian for the Raspberry Pi), Windows, Apple desktop, iOS, Android, and others.
- Management Paradigms: Waterfall, Agile, Scrum, Kanban, SAFe, local vs. remote including offshoring, and work at client sites and consulting.
- Other: ERP suites, automation and configuration tools (e.g., Jenkins), low-code and BPR platforms (e.g., FileNet, Appian)
Per a discussion of soft skills, I brought up the work I’ve done for my presentations on business analysis, where I often discuss the need for feedback, being thorough, communication models, and generally getting people with different skills and needs to talk to each other. Business analysis is really about the larger context of solving problems as a group, from the point of view of practitioners who can be involved in every phase of any kind of effort. The BABoK (Business Analysis Body of Knowledge), published by the IIBA (International Institute of Business Analysis), describes a wide range of tools, techniques, and general approaches to helping people work together. The sections run as follows:
-
Chapter 1: Introduction (structure of the BABOK)
-
Chapter 2: Key Concepts (basic context of business analysis)
-
Chapters 3-8: Knowledge Areas (the basic flow of what gets done)
-
Chapter 9: Underlying Competencies (Analysis, Behavior, Domain Knowledge, Communication, Interaction, Tools/Tech)
-
Chapter 10: Techniques (50)
-
Chapter 11: Perspectives (Agile, BI, IT, Business Architecture, Process Management)
-
Appendices
…with chapters three to eight generally providing guidelines to work through any kind or project, program, or engagement in a logical order.
I’ve distilled this material down into a more streamlined framework I’ve developed after having worked in many different industries, on efforts of widely varying scope and scale and team sizes, with many different architectural considerations, for many types of target applications, in many kinds of environments all over the world, often while creating, deploying, and using computer simulations. I put this together as a way to give business analysts and project managers a feel for how problems could be effectively addressed and worked through, usually in a team setting where not everyone knows what everyone else is doing. I feel this helps everyone communicate better, be more organized, and produce better work with less wasted effort. The framework is flexible enough to be applied to a variety of working situations.
Thinking back to my own college education, and the things I came to know throughout my career, especially early on, this is material that would have made my life a lot easier, and would have made me a better employee and teammate, if I’d been exposed to it as part of my curriculum. This is despite the overall high quality of the instruction I received. In short, this is very close to what I wish I could learn first if I had it to do over again.
One additional benefit of my efforts is that I’ve come to a much better understanding of the strengths and weaknesses of the processes used by the many organizations I’ve worked for. All had strengths and all had weaknesses, and that raw material gives me a lot of direct experience to work with. (I’ve been meaning to write a separate blog post about this; I need to make it happen.)
As much as I like certifications (which I discuss below), there’s a time to know enough is enough. I often point out that the Wikipedia article for every management or industry-certified approach includes a section for criticisms. They range from the body of knowledge being too diffuse to be useful (e.g., ITIL never gives you specific recommended procedures that lead to specific results), that certs don’t guarantee their holders know anything useful (any Scrum cert), or that they create expensive and wasteful cottage industries of consultants and educators (all management certs). To avoid this, while trying to concretize the material in the BABoK, I present the core engagement steps as a series of iterative loops that involve lots of communication, feedback, and correction. Additionally, the framework builds in the flexibility to iterate between phases to modify and add or delete items in previous or later phases. Like I said above, it’s all about getting people to talk to each other.
I’m especially fond of a talk given by one of the people who helped create the Agile Manifesto. He cheekily suggests that Agile Is Dead, and that what we really need to do is talk to each other, make sure understand each other, make sure we agree we’re doing the right things, and make corrections after so talking. His presentation is on Youtube here, and cannot be recommended highly enough.
Being supportive, engaging, understanding, respectful, and kind — while not wasting people’s time and money — is the best soft skill you can have.
I describe my basic framework here.
I expand on the material in a series of webinars here. The slides for a ninth presentation are here.
The slides for all of my presentations are most easily accessed in the Presentations article here.
AI, Machine Learning, and Data
As an erstwhile mechanical engineer I was never going to be a great computer scientist, even if I probably took as many or more computing courses as any engineer who didn’t get at least a formal minor in the subject. When I took the second level CS course (15-211) in 1983, they covered tree structures, dynamic allocation, and predicate calculus, which was a way of evaluating the truth or falsity of statements written in formal logic. They also talked about how computers could (in theory) understand and describe the world in terms of objects and movements and qualities that could be sensed. I also worked on a year-long senior project and independent study course to create an interactive system to teach engineering students how to solve certain classes of engineering problems. It had a (very rudimentary) natural language interface and maintained situational awareness of where the student was in the process and what ideally needed to be done next. This experience led to a lifelong sensitivity to developments in the (so-called) artificial intelligence field. It similarly contributed to a lifelong interest in education, and its automation and improvement.
One of the main things I’ve learned from watching developments in AI and associated understandings of the brain, nervous system, and sensory systems, is that the more we learn, the more we learn how much there is to learn. The big breakthrough is always thirty years in the future. It was true in 1983, it’s true now in 2021, and I suspect it’ll still be true in 2059.
That said, we do continue to learn and a lot of interesting and useful work is getting done. The question is how much of it to cover in an undergraduate CIS program. I think that students should definitely be given some awareness of the field, and even some exposure to the basics. One of the advisors noted that to researchers in AI can make quite a lot of money right out of school, but that’s for pure computer scientists at top schools (and I know I’m not one of those). Like everything, there are ranges of activities in AI, and some will inevitably be more accessible than others. Data Science and Machine Learning are definitely on the more accessible end of things. For example, a Udemy course on the R programming language covers the following algorithms in order of increasing complexity: Linear Regression, Logistic Regression, K Nearest Neighbors, Decision Trees and Random Forests, Support Vector Machines, K-means Clustering, Natural Language Processing, and Neural Nets. The course doesn’t take the time to go into the algorithms in much detail, and Linear Regression can hardly be considered any kind of AI, but is does show students how to use them. I’m certain that Post University can cover that material and cover it better and more deeply.
I also know that the CIS department includes courses in data structures and databases, so students are already touching on the handling of data, and possibly in large quantities. I think it would be beneficial to include some kind of survey of the contexts in which data are used. I do this in webinar eight of my BA series, which discusses how data may be handled through the course of an engagement, but there are many other contexts including policies (PII, HIPAA), workflow (data pipelines and workflows), display and dashboards (again, Tableau and PowerBI just to start), controversies with Big Tech, collection and conditioning, and automated assistants (Siri, Cortana), among others.
Professional Certifications and Student Portfolios
College diplomas have generally been seen as proof that students can show up regularly, can accomplish certain goals, can reasonably follow directions and cooperate with others, and have a certain amount of intelligence. Grades can communicate another level of information to potential employers, as can impressions made in interviews. But it can be even better to have more visible and specific proof that students have mastered skills and completed projects.
One way is to create and maintain some sort of online presence. This can take many forms, but two main ones are Github repositories, which is most useful for developers, and portfolios, which generally take the form of personal websites. If someone is really clever they can deploy their personal website directly from Github, which would be the best of both worlds. Most of the work on a portfolio site should be original (which could definitely include student projects) or at least non-proprietary. And even then, a portfolio can include quite detailed descriptions of work done for employers. (I do this quite often here on my own site.)
Public websites like LinkedIn and possibly Instagram can host a certain amount of material as well.
Another proof of competency is to earn professionally recognized industry certifications, of which there are many kinds. Certifications may be issued by companies like Microsoft, Google, and Amazon, by industry organizations like IEEE, IIBA, and PMI, or by independent educational companies like Udemy, W3schools, and Codecademy. They may be related to general skills like networking, project management, security, or process improvement, or specific products or technologies like Oracle, AWS, or CISSP.
Like anything, certifications come in ranges of expense, difficulty, time to complete, and general heft. Some have formal work experience requirements. The mid- and top-level IIBA certifications, for example, require applicants to document 3,750 and 7,500 applicable work hours, respectively. Some certifications require that applicants have completed some number of hours from an approved industry education provider or as part of an approved independent study group. In other cases it’s possible to simply read a reference book and pass the exam, though having an awful lot of related experience greatly improves the chances for success. Some certifications will probably be too expensive and take too long to even consider.
The department heads will have to give serious thought to what kinds of certification might best serve new graduates.
Here are a few approaches Post might consider, though I’m sure the department can dream up some other clever approaches.
- Structure one or more formal courses that lead directly to industry certification. This would include educational hours, practicum, test prep, and collaborative study. The university would have to work out what surcharges, if any, would be needed to cover the cost of exams and materials from third party certifying organizations.
- Become a certified educational, and perhaps testing provider for some industry organization(s), or become a recognized chapter.
- Establish and nurture independent communities of practice aimed at earning specific certifications.
- Give formal school credits for certifications students earn on their own (or in communities of practice described above).
- Work out student discounts for certifications with certifying bodies.
Conclusion
Thank you as always for allowing me to participate.