My last set of posts was kind of a bummer. Time for some positivity.
A lot of people at work are really proud of me right now. I’m not 100% on top of everything, but I fell into some leadership roles and handled myself well enough I guess.
I was lucky enough to work directly with three summer interns and get to know several more. Tanner, Josh, and Tori have been a delight this summer. Their enthusiasm has been intoxicating. (Although I get where they’re coming from. Working over summer is huge relief after nine months of school. School’s the worst amirite?)
I’ve always liked working with people younger than me. I feel like I relate to them more. Even in elementary school I liked playing with the first graders more than my fellow fourth graders. I’ve been a first grader so I can relate to them. It’s familiar territory.
Olds are just alien to me.
The mentor role comes very naturally. Sometimes I can be patronizing, but I usually acknowledge it, apologize, and laugh it off. I ‘mom’ people a lot and I always have. I’m a virgo, remember?
I’ve been telling my intern friends my entire life story on repeat this whole summer. I’m beyond jealous of the opportunities they have and the smart decisions they’re making at such a young age. I want them to understand how lucky they are compared to other college students and college graduates. But rambling at them won’t help it click.
They’re sharp kids though, and not jerks. I’m not worried about them.
Codes and stuff
I’m also leading the software development effort on two of my projects, plus I’m on ACDC’s leadership team and I’m an admin on the club’s web dev team. Beyond those roles, I’m invested in efforts like making company-internal software development more transparent, developing company-wide software development standards, and gaining support for open source contributions.
There’s a change in the wind at Aerospace. New president-and-soon-to-be-CEO, expanding non-DoD work with Vaeros, and lots of support for tools integration efforts. Systems integration is going to be huge going forward, and personally I don’t think see the systems engineers doing the work. It’s hitting people: software is important.
Lessons decades in the making are just now starting to sink in. Software is complex. That complexity increases exponentially as you add more people, features, variables. That we need to follow certain conventions for the sake of consistency (and sanity).
Now with these fundamental lessons learned, my efforts to bring my own software projects up to standards are finally making sense to non-software people.
In general, software developers aren’t great at articulating our value to non-technical audiences. Our modern society depends on digital infrastructure. Us software folks should be spending a much larger portion of our time developing our communication and interpersonal skills.
This March 2015 article from Science Magazine concisely argues the importance of scientists learning the humanities in order to gain the skills needed for modern research work:
In addition to practicing the traditional craft, today’s scientists need to be prepared to tackle complex challenges in a globalized (and multidisciplinary) world, to think critically about how we solve problems, and to communicate persuasively with diverse audiences.
— Kevin Boehnke, “Oh the humanities!”, Science Magazine
I’m much faster at implementing than I used to be. It’s refreshing, but I’ve known all along that implementation speed isn’t the more important factor in developing successful software.
Steve McConnell discusses how project size affects construction in one of my favorite books, Code Complete, 2nd ed.:
Construction becomes less predominant because as project size increases, the construction activities—detailed design, coding, debugging, and unit testing—scale up proportionately but many other activities scale up faster.
His accompanying graph illustrates how linear increases in construction effort correspond to exponential increases in non-construction effort:
While the math might not work out perfectly, McConnell also writes:
The number of communication paths increases proportionate to the square of the number of people on the team.
It’s easy to discount the effort required for communicating, planning, integration, etc. because on small projects these efforts are barely a blip on the radar. But as the communication paths diagram shows, communication effort can quickly become unmanageable on large teams. I’m guessing it’s similarly complex for other non-construction efforts.
This is one reason why modularity is so important. Having 20 people touching one program is much more chaotic than having 10 teams of 2 people each touching modules of a program, one module per team. Integration can occur incrementally rather than constantly.
So yeah, quality of communication is important. Let’s be working on those skills, ok?
For a short time there, I was surrounded by positive people. People who I felt understood me. Computer science people.
I’ve noticed that I really click with software engineers and I really don’t click with mechanical, aerospace, etc. engineers. We just don’t get each other. Totally different priorities. But I really do feel so comfortable around software people. We just get each other.
Another thing: I’m making realizations about developing relationships. Things I just didn’t get before. Like how managers work.
I want to be on excellent terms with all of my managers–mostly because I want people to like me, but also because it makes all of our jobs easier. So my goal for September is to sit down with as many of them as I can. I want to understand their goals for themselves and for our department. What can I do to help them reach those goals?
This is a new thing for me. The pre-frontal cortex isn’t supposed to be done developing until around age 25, which explains why teenagers and young adults make so many unwise decisions. Since I’m coming out of that age group, I’m noticing an ability to empathize and think at a broader level than I used to.
Well, my ADHD treatment can take some responsibility for my cognitive and emotional improvements. But I’m also growing up probably.
What’s interesting is that I’ve been reading about leadership and emotional intelligence and developing relationships for years, but I haven’t had an opportunity to practice any of those skills until now. I mean, of course I haven’t. This is my first corporate job.
So now that I’m in this environment, things are clicking. I have ideas, I can express them, and I can work with other people to achieve them. It sounds so simple but it’s seriously novel to me. The ability to accomplish things in teams or groups was an enigma all through high school and college.
Even the ‘having ideas’ part is new. I never thought of myself as a creative person, but I didn’t need to be creative before. Now, for the first time, I’m in an environment that can take advantage of my kind of creativity. That’s a beautiful thing.
Again, I’m not at 100%. I wouldn’t even say I’m at 80% this week. But I’ve become much more reliable, consistently productive, and open-minded than I was even six months ago. I’ve come a long way.