Tips from a Software Architect - Jerome McTeigue MACS CT MSc (Software) from True Software
30th March 2021
- Jerome McTeigue MACS CT MSc (Software) is an IT Consultant & Principle for True Software, consulting in Software Architecture and Engineering.
- Are you undertaking a new project but not sure where to start? Jerome takes you through the initial steps of the research and design decision processes to guide you through your project. Also, discover Jerome’s top tips on programming language and project management methodologies.
2. As a Solution Architect and Engineer, what are the biggest challenges you see in the industry and how do you hope to solve this?
a) Challenges: we are still in the “steam age” of cyber technology. We are getting better at this; however there is still a great divide between technology and people – we would do well to bring these closer together. Technologists: we could be better at communicating with business people on their terms. Business people: please be patient with us technologists, we probably have the answers you are looking for, let’s work together to deliver what you need.
b) Professionals: when you have a painful toothache and you need it fixed, there is no substitute for a caring, effective dentist. One measure of this is that the dentist will be a member of a Professional Association who has assessed their skills and requires members to abide by a code of practice. Just the same when you want to solve a technology problem, hiring a practitioner who is a member of an IT professional organisation, e.g. the ACS, will boost the likelihood of an effective solution.
c) Australia, our island home, has been very successful in creating technology; but in my opinion has an even greater potential to contribute new technologies and methodologies in the international community. Let’s look inside our own backyard first; together we can develop what we have and harness this to export our goods and services.
3. When you undertake a new project, what research is conducted and how are design decisions made?
a) For new projects:
i) Confirm the business/organisational foundation and context. If this is missing, go and find it.
ii) Research solutions (includes designs) using an appropriate methodology for the research.
iii) Present several solution options with a single recommendation.
iv) Gain approval from a panel of several people, even if you have the final say.
b) Projects are unique as the people and organisations in which they function. Make sure there is enough clear information about the relevant context of the project to deliver something successful. What, when, where, how, who of the organisational context (not tech). Even the most technical people still need to know the answers to the questions “Who is my customer?”, “Who are my stakeholders?”
c) If a project is not feasible; have the courage to cancel a project as early as practical.
d) Even if your expected solution does become the final result; be open to change and adaptation. Test a design using Traceability.
e) Become good at knowing what technology is fit for what purpose. This assumes that the professional already have a good understanding of the how the tech works.
f) If you think you have a truly unique idea, test it by doing a literature review. I have found that most of my ideas have already been well-developed by someone else: think ISO, ANSI, https://omg.org/. Usually it’s a matter of applying what is already out there.
4. What tips would you give to those using project management methodologies?
a) Know how to harness the skill and talents of all the people on the team. Articulate and loud people can give the team obvious benefits in selling and communicating ideas. Learn how to balance this with quiet people, as their ideas can be precious gems waiting to be discovered and brought to light.
c) Study all the popular traditional (all are still in use today, especially in the Defence industry) as well as the latest methodologies. Know when to use what and their strengths and weaknesses.
5. What are your thoughts on different programming languages and what should individuals learn first?
a) Try something fun that would solve something you are interested in; if in doubt try Java or C#.
b) Popular languages come and go like fashion and loosely-typed languages (often script-based) have a big following. However; for reliability and complex solutions, most people will need to know a strongly-typed business language: right now this means Java or C#.
c) Learn a data query language: e.g. SQL. Watch this space for a standardised, mainstream language that queries Graph Theory data (the industry is still divided on this).
d) C / C++ and Assembler have specialised applications, have been around for 40 years and are still going strong.