This title may anger some people and may interest to others, Actually Its not related to the job title you have but we would discuss the impact on business for being a software engineer to develop the persona and support the working environment together.
While some computer science faculties focus on technical side only, the others are focusing on refine the business and technical persona, therefore you will note that the technical side are medium for fresh software engineers, but they have good ground that can be build on it.
However there is a real difference between being a software engineer and being a programmer or developer, the software engineer have the ability to apply engineering principles in his technical work, not only focusing on technical perspective.
Lets mention the main points to clarify the difference:
- Divide and conquer: solving problems are poses challenge in creative and complicated work, therefore the way of dealing with big problems and try to solve it once, make it difficult and complected, but split the problem into set of small problems and solve each one partly and then assemble them is a way to solve the most complicated problems! software engineer usually solve big problems in the same way. Thus he refine this skill through solve many complicated problems granular.
Divide and conquer
- Focus on solution: there is a slight different between focusing on solution and focus on the problem itself and its obstacles, therefore this different make a huge impact in the performance
- The management system: respect the system and the framework, increase the production and support the management, this does not mean not suggesting improvements, but the software engineer knows that he must support the system and the environment because the benefit will reflected on his way of work, while the developer think to avoid anything not related to code, and he might sloppy or beyond the system as he see it costly and not necessary like writing documents, daily meetings…etc. However its difficult for a pure developer to get promoted in the management hierarchy.
- Flexibility: software engineer has the ability to change the work pattern instead of fix box and change resistance, that let him learn more skills like communication, presentation, meetings, writing reports..etc.
Design: imagine the solution before start, through draw models before direct execution, give the art and directions of how the problem will be solved, as always think about design solutions before start in writing codes, and while he is writing the code he write a bold lines and signs and start to fill each part piecemeal.
- Continues Improvement: Software engineer not willing to deliver the functional work only. But always find its important to improve the work through refactoring, and this might extend his delivery because he think its not completed yet.
- Continues learning: for sure this is the situation for software engineer, the domain is growing fast and he look always to learn how to write good software, when he look at his previous work he lough about how he do it like this way.
- Communication: communicate all the time and share the information through face to face meetings, writing reports, sending emails make him more team player and knows any problem might happen early.
This is the most important points that successful software engineer have to develop, and no one has to own an engineering certificate to have these skills, but those skills need to be refined daily basis specially when working with small teams and companies.
However companies require creativity and accuracy and team work like google, focus always on finding the best software engineers not pure developers.
But this is not always the case for the company to hire software engineers, it depends on the company needs, therefore companies have the behavior for repeated work like design fixed template for sites. Thus it will be costly to hire software engineers as there is no added value, therefore it will be harmful for both sides, software engineers look for team work and complicated projects.
However we are in Rozn build eCommerce applications needs team work to solve complicated problems, therefore 58% of staff are software engineers.
Regards, till the next blog.