What resources do software engineers have at their disposal? | Sololearn: Learn to code for FREE!


What resources do software engineers have at their disposal?

What do developers have at their disposal when it comes to developing a software for a given project, simple or complex? More specifically, how do developers know what to utilize from the various environments or tools that they want to use in creating softwares such as python, django, and/or html/css and coalesce it as one thing? Which of those is compatible with another tool? Is it situational? How can they see a bigger picture of how a software might fit together by its modules and its various software components? I'm a senior beginning software engineering, and we have to work in a team to develop a certain application or software, say, a project meeting planner utilizing Google's calendar feature or the like. What should I be more aware of when developing such an application? What resources should I also look into?

11/3/2018 7:25:25 AM


10 Answers

New Answer


Very good answers from Hatsy Rei and Morpheus… We are not developing web applications or commonly used software (most people don’t know they are using it), but special software in a highly regulated industry, railway signalling. Our projects rater large with loads of people working on them. For historical reasons (many company mergers) we are using a lot of different tools and software libraries, what causes also quite a lot of problems. With the Common Tools project, we try to streamline the tools landscape and the plan is to go with IBM Rational tools, such as Doors (requirements, my area), RQM (testing), and RTC (configuration management and change requests), but also Git, Hydra, Visual Studio, and our own compilers, just to name a few. Compatibility between the tools is of course all the time an issue. What tools to use is basically enforced by our processes, of which we have also loads, and which are written by our global ALM guys. To be continued...


Pulling straight from my vague memory of the SAD and SE courses I've been through: A software engineer would start by identifying the requirements (functional, quality, constraints) of the system to be built, by liaising with the stakeholders though brainstorming sessions, meetings, surveys, interviews, etc. Then, you start producing the high-level design, the UML diagrams of your system (your big picture). This is where I usually get the idea of what tools I want to use to realize the system. A project usually starts from a proposal, and a crucial part of the proposal, apart from introducing and describing your project, is to analyze existing systems which are similar to your proposed system. Through the requirements placed forward by the stakeholders, and the analysis you do unto existing systems, you begin to identify what tools or components you can salvage and reuse in your proposed system. Rinse and repeat.


Which standards (also a lot) we have to follow is also in cooperated in the processes... Which parts or functionality of our generic products to reuse or to develop newly is basically decided by our system engineers and solution managers on system level or by product managers at subsystem level. Anyway, a lot of times we are also forced to use the tools the customer dictates in their tender… so there goes the theory of standardizing everything and it’s basically an eternal project of keeping things more or less under control. ;-)


Hatsy Rei Modi Haris vardanator Cépagrave Morpheus Paul Burey Danijel Ivanović


Just in case I've misunderstood your question, you might be asking about requirements management tools and other tools used by software engineers to plan their projects? https://www.softwaretestinghelp.com/requirements-management-tools/ When you start using one, you get proper documentation on the requirements of your past systems. You can then refer back to them and identify the suitable modules which can be reused in your future projects, saving you lots of time instead of doing a new research on what to use to realize your project later on.


(continued) - if user a school, company, group of hundreds, we ll need to scale the app accordingly and will need much more expertise . - if userbase is in millions then we need much higher expertise example being govt project, big social media platform etc. and only enterprise level solutions can help here. Things to look while developing from a senior Developer perspective. (i m just speculating I am a Beginner myself and listing broad stuffs, correct my errors if any) - experience in prior projects - knowledge of popular Api s, libraries, frameworks and knowing which to use - study of any similar existing product


Awesome answer by Hatsy Rei, I ll just add. Decision making is allocated based on your experience, and it often varies based on the development practices like following waterfall model, or an active agile scrum team. At management level, project manager will guide the team and make sure its in the right directions, he ll also take care of interacting with sales, marketting, HR, client needs. A very senior Developer (technical architect) will layout the design & architecture of application. He might also be responsible for breaking down the task to make teams and selections of tech stack. multiple teams will be given a task, with their team leader or scrum master assisting the team. so as we go down responsibility get lesser based on experience. I can only wonder the pressure on senior Developers to deliver a solution. Now regarding a project meeting planner, it ll depends on who will consume the application, - if few users any Indie team /freelancer is fine.