"I cannot teach anybody anything. I can only make them think" - Socrates
The work of an engineer primarily encompasses the design and building of things in accordance with certain scientific principles in order to meet a pre-defined objective.
Software Engineering, in particular, is quite different from other forms of engineering as it deals with more abstract problems and/or requirements that are more likely to change over time. The design of a solution to such problems requires a lot of creativity, not only because there are several different ways of doing the same thing and several different technologies that can be used, but also because the solution needs to be adaptable to change.
The usual approach to designing a solution to a Software Engineering problem is to consider a number of different solutions and then pick the one that is most appropriate for both the requirement and the technical expertise of the Engineer. Software, unlike a bridge over a river, evolves over time. Features are added or enhanced. Sometimes features are removed. The Software product that is initially delivered may look very different from what it will be in 5 years' time as a result of a continuous cycle of change.
The same is true of ourselves. We evolve over time. Our evolution is more obvious in our early years when our growth is both physical and intellectual. However, once we reach adulthood, we tend to get more set in our ways and less adaptable to change. Not only does our body get more rigid, our mind does too.
It is therefore important to ensure that we retain the flexibility of thought that we used to naturally possess as a child while taking advantage of the wisdom we have gained through life experience.
It serves us greatly to know that learning never stops. There is always something that we don't know. The more we learn in our chosen profession, the more adept we become at it. The more we learn about ourselves and others, the more flexibility of thought we have and the more kind we can be towards ourselves and others.
While designing and implementing a software solution, it is important not to get tunnel vision. Agile Methodologies exist to ensure that this does not happen by ensuring there is regular communication and feedback between those who build the solution and those who need it. This helps to avoid any drift from what is required to what is assumed to be required.
It is highly beneficial to do the same with ourselves by regularly reflecting on our own actions and our way of life and to check if it aligns with who we want to be. It is never too late to make a little change here and there to make yourself more organised, more present, more caring and more of what you want to be.
In our adult life, there are various aspects to consider such as:
While remaining in good health is important in aiding the other three aspects of life mentioned here, there is usually a synergy between all aspects. For instance, sometimes you need the support of your loved ones to be able to progress in your career. To manage income and wealth, you may need to rely on people you can trust, therefore it depends on the quality of your relationships.
However, effective time management is the key in ensuring that these various aspects of life are being taken care of. Spending too much time on your career, for instance, will not help your health or relationships. It is therefore essential, no matter which profession you are in, to become more efficient in everything that you do. This improvement in efficiencies can be a gradual process.
The 5 minute rule - In most cases, a few minutes is all you need to make an improvement to something. For instance, if you find yourself having "no time" to do a certain task, ask yourself what you can do about it in 5 minutes. Allocate 5 minutes to this small piece of work and just do it. Once you make a habit of this, you will find that you get more things done, and the 5 minutes could turn into 10 minutes or 15 minutes as you start enjoying what you are doing.
This can apply to any aspect of life. It could be that you keep telling yourself you have no time to look into better ways of managing your money or to reach out to a friend you lost touch with. Following the 5 minute rule is sure to help you stop making such negative statements and rewire your thought process into a more positive one where you stop saying you cannot do something and start asking when you can do it.
I find that using a digital calendar such as Google Calendar helps me greatly in getting things done as I can get notified on my phone or computer when things are due. Getting into the habit of deciding when to do something and not if it can be done creates a major shift in your thought process. Breaking things down into baby steps that you can do in a few minutes and having a regular schedule in your calendar to ensure these steps are completed will mean that you get a lot done over a few days or weeks. In other words, you are never stagnant.
Positive self evolution is something we must embrace and be proactive about as it helps us in every aspect of life in the long term.