Even though we deal with the problems in our field of expertise each day, we actually solve problems related to the people. At least that was the case for me during my whole career. I touched people’s life by the help of the software on different fields. Medical, telecommunication and e-commerce to be exact. After evaluating my whole career, I can surely say that, coding is never the hardest challenge in our jobs, but communicating is.
When I first read about the Melvin Conway’s law on software structure, I didn’t agree that much. I was thinking on a different angle; business people was responsible to communicate with the costumer and it was their responsibility to pass tickets to us. Our responsibility was to implement them.
This is wrong in so many aspects. First of all, this abstraction would never work. A software crafter should be aware of the whole system she built in order to think generic enough. Also, a crafter will be able to contribute to the project with new and shiny ideas only if she can know the product itself. Conway’s words made sense after adopting this mind-set.
… organizations which design systems (in the broad sense used here) are constrained to produce designs which are copies of the communication structures of these organizations.
- M. Conway
What we do is all about people. Back in 90’s the cool thing was to write code that no one understands, today even our code needs to communicate with the people.
My duty in the second phase of apprenticeship is to join different teams at HolidayCheck. It’s highly encouraged to join teams focused on something other than software, which makes total sense as I explained above. By joining different teams, I will be able to learn more about not only product itself, but the culture that produces, sells, and monitors that product as a whole.
Second phase of my apprenticeship is an elegant touch which promises a lot. In worst case, it will create bonds across the teams, but for the best case, sky is the limit.