Civil Engineer Meet Software Developer
Let's walk through how I ended here. I did my undergraduate degree in civil engineering. Civil engineering, summed up deals with the design and construction of the physical space we live in. This includes buildings, roads, bridges, dams and many other structures. There are many specializations within this broad field. I chose to do my masters in geotechnical engineering, focusing on the soil and subsurface and its relations to these structures we build. I decided after two and a half years of working in the civil engineering/ construction industry to learn more about software engineering. That's why I enrolled in this Flatiron Software Engineering Bootcamp.
As a civil engineer my software/ coding experience was limited. During my undergrad we took a course in computer engineering which involved learning FORTRAN, c++and MATLAB. During my master’s program, and in research MATLAB was a useful tool that I continued to learn. However, once I started working in the profession as a geotechnical engineer I did no programming. Sometimes I’d play around on excel and VBA but that was mainly for my own amusement and was definitely not expected.
Now my limited experience in programming is not to say there is no overlap in these two fields. I did use a range of pre-existing civil engineering software to perform calculations, present data and project management. Notably, I learned how to use a variety of geotechnical engineering software however, what surprised me, as part of my job I was still doing hand calculations! It seemed to me that many of those calculations could be automated to some degree for sure with the help of software advancements.
I believe the civil engineering industry needs more involvement from software development and this will become increasingly more important in the future. Software developers, who have a strong understanding of the field they hope to build software for will be key. We need more people who are at the intersection of software and civil engineering. Software applications can help with all parts of the civil engineering project lifecycle!
How can increased use of software benefit civil engineering?
Software engineering can help create more efficient, cost-effective designs and it is beginning to be implemented. The benefits range from updates to software used for calculations and finite element analysis to more innovative applications such as nanotechnology for construction materials and using AI for data and decision making. Below are some specific ways that increased use of software engineering can benefit the civil engineering industry.
- Understand the Programs Used Better
It is not necessarily an issue of more software involvement, although there is definitely room for that. The civil engineering community needs to understand their programs through the use of software developers. There are many apps out there but the issue is an insufficient commitment to these new technologies. I believe that is because the true potential of this software is not being communicated well due to a lack of understanding. Having civil engineers understand the software side of the apps will allow for unlocking this lost potential.
2. Automate More Processes
More software applications and developments in civil engineering will lead to more automated processes! This in turn can save money and increase efficiency overall. No more hand-calculations! This will also help design stay up to date with the latest changes to design codes. It will be much easier to make changes to previous calculations through the use of software advancements. Additionally, as more work can be done by technology, work in turn has the potential to become safer. For example, the case of using drones for inspections/ remote work. Through the use of technology we can reduce the human input and involvement required.
3. Adopt Good Problem-Solving Skills
By increasing the role of the software industry within civil engineering we can adopt many advantageous practices. After all, software engineering involves much of the same line of thinking with respect to problem-solving, maths and logical thinking. Software engineering has a heavy focus on understanding the problem and working with the client to determine the problems and potential solutions(even they do not have a clear picture yet of what they need). This iterative process of working out all the “bugs” can be especially useful in a field where things cannot be redone. Typically once a civil engineering project is complete, we hope to not come back to it for decades and reconstruction costs can be huge. This can lead to over designing, however, the software developer’s process may be more efficient in the long run.
4. Data and Knowledge, Collection and Sharing
The software industry is also well known to share and collectively benefit from its advancements through professional meet-up groups, conferences, and through the use of a large network of sites online. This allows the industry to stay on top of the latest practices and technologies resulting in the most (cutting edge) products. The civil engineering domain is lacking in this ability to share knowledge and this will be crucial for the field's evolution. There will be an increase in data and data collection and we will need ways to collect, store, and analyze data efficiently. By having a way to share and learn from each other in the industry this data and technology will result in more informed decisions.
Causes of resistance to software applications in civil engineering
Given all the benefits of an increased software presence in civil engineering, there are many reasons why there is some resistance. This has resulted in a slow shift towards more software applications and the field of civil engineering lagging behind where it could be.
- Lack of Funding
One of the main reasons is the lack of funding. Civil engineering is primarily invested in by the public sector and funding is therefore limited. Due to the limited funds, the field is focused on preserving infrastructure and dealing with damage control (due to the state of the world’s infrastructure). This leaves little to no effort left for innovation. We will need to change this and start investing more in civil engineering to allow for more innovation and in turn more software applications.
2. High Level of Risk with Projects
Another reason the field is reluctant to new software technologies has to do with the level of risk willing to be taken. With civil engineering projects gone wrong, a significant number of lives will be at risk. The costs associated with inadequate design can be huge! This can lead to skepticism of methods and processes that are new and do not have a long history of success. This leads to distrust of new software applications and little commitment to using them going forward.
3. No Competition in Innovation
In most cases, civil engineering projects are judged on design and final costs. Not on innovation or creativity in problem-solving. This does not create an environment where companies are pushed to innovate and improve on their methods, given that design and costs are met. We must create more competition between firms in terms of efficiency and technologies.
Why this is it going to be important in the future
The ASCE (American Society of Civil Engineers) includes the following vision for civil engineering in 2025: “ create a sustainable world and enhance the global quality of life”. Let's discuss why this is so important for all of us.
The world’s population is increasing. This is going to put increased pressure on the civil engineering industry to not only maintain current infrastructure but also accommodate the growth. This will be challenging, and the changes will need to happen fast! Software applications can help make the civil engineering process faster and more efficient.
2, Climate Change
As the global climate changes, civil engineers will be faced with managing scarce resources, increased natural disasters, and managing risk. For example, the composition and movement of water bodies will change, flooding risks will increase and air pollution will be a major concern. With all these changes, civil engineering will need to be adaptive and act quickly to manage the necessary infrastructure required for human survival. Some of these changes are already long overdue.
3. Keeping Up With Advancements in Other Fields
Many related fields to civil engineering are starting to embrace these software advancements and are changing their products. These products in turn will be required to interact with civil engineering systems and we must keep up to maintain compatibility. This includes smart buildings and autonomous cars. If civil engineering doesn't start to also adopt more software advances, it will be left behind!
As long as humans continue to build or change the physical space they live in civil engineering will always be important. It is going to be increasingly more important for this field to stay up to date and as efficient as possible. Software engineering will be the tool that should be used to support that and make it easier and more efficient. I hope to be at the forefront of this.