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
Related Q & A:
- What Is The Geometric Meaning Of Third Derivative Of A Function At A Point?Best solution by Mathematics
- How to become a software architect?Best solution by Programmers
- Who earns more money: a computer software programmer or a general medical doctor?Best solution by Yahoo! Answers
- What is the difference between a computer programmer and a software developer?Best solution by Yahoo! Answers
- What is the pH at the equivalence point of a titration of a weak base with a strong acid?Best solution by chemguide.co.uk
Just Added Q & A:
- How many active mobile subscribers are there in China?Best solution by Quora
- How to find the right vacation?Best solution by bookit.com
- How To Make Your Own Primer?Best solution by thekrazycouponlady.com
- How do you get the domain & range?Best solution by ChaCha
- How do you open pop up blockers?Best solution by Yahoo! Answers
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.