What exactly does a software engineer/software programmer do?

What are some notable moments in your development as a programmer to a software architect?

  • This question will require a certain level of reflection. Essentially it is asking how did you notice yourself evolve from a programmer to a software architect. Please shed light on the things you learned as well as how your mentality towards software changed over the course of your development. These definitions are not meant to be all encompassing, their just necessary to provide some level of context to the question(Suggest better definitions if they are inadequate) Programmer - Person that implements a design Software Architect - Person that designs the initial architecture of an application

  • Answer:

    From the beginning, I wanted to understand what was being built, end-to-end.  I wanted to understand how my piece fit into the whole solution. I like understanding why we're building the system.  What problem is being solved?  What are the resource boundaries (time, money, expertise) needed to solve this problem? The rest may be TL;DR and addresses general software architecture tasks. At a general level, the key difference is the person who is to become an architect will want to understand the entire system, not just their piece of it.  If their role is to code a specific module, they will want to understand the role of that module in the bigger system as a whole.   This will also help when designing their module as it makes the interpretation of the specs more likely to be what the author intended because they will know  the underlying assumptions in the design.   In a small company,  where everybody does a little of everything, you  will find that different people have different strengths.  Everyone will  be coding and designing, but there are usually only a couple of people  who understand the links within the entire system - those people will  become architects when specialization occurs as the company grows. Even though large companies may have several architectural  specializations, such as Application Architect or Network Architect, the  common thinking is the ability to take a problem, understand how to  combine (use) the tools / software available to solve that problem, and describe  the relationships between the tools / components /modules.  The specialization occurs in the level of detail an architect knows.  A network architect will know networking equipment and networking concepts to a deeper level, but not understand SAP or SOA interfaces at the same depth as an application architect.  In addition to being able to understand the bigger picture, a budding architect should start thinking about how to express the bigger picture.  Once you become an architect, most of your time will be spent figuring out how to best communicate the design.  Creating the design is the fun part and something of an innate talent - documenting and communicating the design so non-architects can understand it is a learned skill, but some inborn talent for communication / explaining abstract concepts to people will help here as well. This posting is my own opinion / observation and may not reflect the opinion / observation of my employer

Joe Herman at Quora Visit the source

Was this solution helpful to you?

Find solution

For every problem there is a solution! Proved by Solucija.

  • Got an issue and looking for advice?

  • Ask Solucija to search every corner of the Web for help.

  • Get workable solutions and helpful tips in a moment.

Just ask Solucija about an issue you face and immediately get a list of ready solutions, answers and tips from other Internet users. We always provide the most suitable and complete answer to your question at the top, along with a few good alternatives below.