Software Engineer v/s Architect


Dear reader,


I previously wrote an article on Software Engineer v/s Sr.Software Engineer and also how to get promoted to a Senior Software engineer and I received an overwhelming response for it. So thank you for that.

This time I want to shed light on what a Software Architect does differently as compared to a Jr. / Sr. Software Engineer. This way, those hard-working engineers who want to become a Software Architect someday will get an idea on what to do to achieve their goal.

Let's look at some of the aspects that differentiate between the two.



1. Technical design of the system.

Software Engineers will usually implement an already created design. They also add new features to the existing technical design of the system. Sometimes, they will also create designs but with some sort of assistance.

Software Architects will analyze the gaps in the software system and will create new design documents for reference. They will make sure that the design is ambiguity-free because it will be implemented by the engineers in the future.



2. The Code.

Software Engineers, of course, will write good quality code and implement a system. They will make sure a certain functionality is completed so that it can be integrated with the entire application workflow.

Software Architects will also write code. The only difference is that they create an initial framework or base classes and define interfaces of the system. They will be involved in understanding the code of all the features of the system until they are integrated and tested.

3. Application ownership.

Software Engineers do possess ownership of the features that they implement. They will make sure that the app is tested and integrated. They also take account of the issues that they encounter while application integration and support during application maintenance.

Software Architects, on the other hand, take up end-to-end application ownership including all the features that make up the complete product. They are the ones who will need to be aware of the integration issues and predict them before the features are merged. They will need to be responsible for the requirement to delivery match aspect of the application.



4. Project Roadmap.

Software Engineers know about the current project roadmap and they will make sure the tasks are completed and the code is written that achieves the required software functionality.

Software Architects will be involved in creating these roadmaps, timelines and will be responsible for the delivery / deadlines and code cut-off dates. They continuously track the progress during all phases of software development life cycle. They will break the epic into independent tasks so that it can be divided among engineers.



5. What's next ?

Software Engineers (usually) will make sure that the software implementation + testing is completed and will wait for the next functionality / software to implement.

Software Architects will have a pretty good idea about what is coming next when a project completes. They will make sure the team gets new work and start this cycle of designing, road mapping and task division all over again.....and again....and again. They don't wait for inputs. They create opportunities and investigate the gaps in the system and keep them ready for proposing solutions to the Leadership. They will ensure that the projects are approved so that fellow engineers will get the opportunity to start implementation.

That being said,

Point #5 is probably the most important one and it clearly separates an Architect from a developer.



I'll close this article by saying :

Architecting' is an ' Art'. Both of them begin with the same 2 letters