by: Jessica Green and Ryan Ernst
Welcome to the second post in the IQ Ask an Architect Series! In this series of posts, I will be collaborating with one or more of our Systems Architects to pick their brains on various topics. If you missed the first post, you can check it out here: Five Mistakes Junior Engineers Make and How to Avoid Them.
This time I sat down with Jessica Green, who has been with IQ since 2017. She started as a Software Engineer, and as of January 2021, she was promoted to Systems Architect. She has now been performing her Architect duties for nearly six months. We talked about what she has learned along the way and what advice she would give to Engineers who aspire to become Software Architects.
I started by asking Jessica what made her want to become a Software Architect. We talked about her time on the Omnicell project, which she has been a part of for quite some time. Her tenure on this project has allowed her to see how it has evolved over the years. Jessica was able to see how each of the individual pieces has grown, and how the system works as a whole. She said: “I was fortunate to be part of the design process of the system from the very beginning, so I was always exposed to that and just wanted to do more of that.” Now that she’s an Architect, she’s more aware of how design decisions can have a long-term impact and is more sensitive to the need for thinking about this.
I asked Jessica if there was anything specific she did as a Software Engineer that she felt prepared her to become a Software Architect. She said: “For a good portion of my time on the Omnicell project, I did all of the code reviews for our team. At times this was tedious, but it gave me a phenomenal perspective of all of the pieces of the system. I would encourage all Engineers to try to do more code reviews because it helps give them a better system perspective.”
Next, Jessica and I talked about the challenges she has faced as an Architect, mainly what she felt was the most challenging part of being a Software Architect. She said, “Keeping a forward-looking perspective in an environment with limited knowledge of the future.” Meaning in an agile product-development environment where the backlog and functionality are liable to change, you need to make architectural decisions that you won’t regret in the future. When considering different design trade-offs, pay close attention to anything that could significantly reduce your design choices in the future.
Finally, I asked Jessica what advice she would give herself if she could go back in time. Her response was, “Don’t be afraid of making decisions; it’s not as scary as it seems. Also, just get started.” Being the person that is the subject matter expert on something, especially the only one, can be daunting; but don’t be afraid to do your best and call the shots. As long as you have a healthy and supportive team, there is nothing to worry about.
If you have any other questions you would like to ask Jessica about her journey into Software Architecture, don’t hesitate to send them to firstname.lastname@example.org.