Starting the computer science program at OSU and getting a full-time job as a developer, I didn’t know how big a role effective communication plays in software engineering. Throughout my undergraduate degree in physics I avoided communication courses and getting into a career where I would have to communicate a lot because I am terrible at it. Today, I finally realize that communication is essential in software engineering. If you are working on a project with other developers, you are going to need to communicate your ideas efficiently and effectively. For example, I am working on a project for the CS capstone with two other developers and a big part of planning our tasks is communicating ideas. I am also working on multiple projects at work that involve daily communication to stakeholders.
I dread the idea of having to go up to the front of the room and present my ideas to all stakeholders. In the back of my mind, I often think about how I will make communication errors that will cost me the attention of people. At work, I have made unusual comments or asked questions at the wrong time, and at school I have misunderstood my teammates on what they were doing and what I was tasked to do. But there has been a saving grace, I love programming and that pushes me to overcome my fears of sharing, asking questions, or making a fool out of myself.
I am an open and creative person. Yet, there have been times when I want to quit because I feel like I will never be able to communicate my software engineering ideas. I fear not being able to implement my ideas to their full potential because I can’t put them into words other people will understand and take seriously. But when I have these doubts, I like to remind myself that there is always writing. I can always write and edit. Writing is helping me at work, and these blog posts keep me focused and aimed at the objectives of my capstone project. At work I keep a journal of the daily things I do, and what I plan to do the following day.
I don’t think communication is difficult for me because English is my second language. I strongly believe this because I also struggle to communicate in Spanish (Christmas in Mexico with my family is rough). I have always been a slow reader, I hate manuals, and I was always the last one working in my physics labs because I couldn’t read the lab instructions and follow them continuously. Despite this, I managed to finish my physics degree and continue onto computer science.
Communication with normal languages has been difficult for me. My other saving grace is that software languages are different than speech. Computer languages make sense to my brain at an instinctive level. I can translate between computer languages easily and have been blessed with the ability of learning several of them. Of course, the difficult of communication always arises when the source documentation is a bunch of English writing with no code examples or links to projects.
I still want to become better at communicating my ideas because I want to collaborate with people. I like working with others and having others to push myself and learn new things from. I hope this blog post helps people like myself who have shortcomings and struggle with them at school and/or work. It’s difficult, but I think that if we learn to manage it and circumvent in different creative ways, we can achieve our goals. For me it’s been writing some lengthy Slack messages. Writing down notes when I have a creative thought, and drafting emails multiple times. Drawing up an ugly picture of an idea, or even just coding it. Find a path, because your shortcomings shouldn’t keep you away from your next big idea.
Hey there, Estradma! Just stumbled upon your blog post and I couldn’t resist leaving a comment. First of all, I want to say how refreshing it is to come across an article that addresses the shortcomings of the software world. It’s so important to have open and honest discussions about the challenges we face, as it helps us grow and find innovative solutions. So, kudos to you for tackling this topic!
I completely resonate with your point about the pressure to constantly deliver new features and the subsequent neglect of fixing existing bugs. It’s like a never-ending race to keep up with the demands of users, stakeholders, and market competition. As a software developer myself, I’ve experienced firsthand how this can create a vicious cycle, leading to a product that’s overloaded with features but riddled with issues. Your emphasis on the need for a balanced approach, where fixing bugs and improving existing functionality is given equal importance, is spot on!
Moreover, your suggestion of involving users in the development process is a game-changer. It’s amazing how much insight we can gain from the people who actually use our software. By incorporating their feedback, we not only address their needs but also ensure that the end product is more reliable and user-friendly. It’s a win-win situation. Your article has inspired me to advocate for more user involvement in my own projects and explore ways to establish a stronger feedback loop.
Thank you for shedding light on these shortcomings and offering practical solutions. Your article was a thought-provoking read, and I’m looking forward to diving into more of your blog posts in the future. Keep up the great work, and happy coding!