The Human individuals are more important than the Computer Code. This is true in all aspects and layers of the product life-cycle – development, maintenance, usage, support. A project reaches end of life when nobody uses it or it is not important. New platforms and versions with breaking changes pop up and nobody develops the old anymore.
Software Development
Individual productivity is limited by time, energy, dependencies, legal and bureaucratic obstacles. A single person could work as 5 employees or even 10 people. But, he/she will not be able to accomplish the work of 50 or 100. There isn’t enough time in a day and – everybody needs to eat, sleep and rest.
Software development is a unique activity where one could create tools that help him in the process of creating new tools (for others). I’ve personally tried to package or contribute to several such projects:
- Work in Progress – features on RxBloc InteliJ Plugin
- https://tomavelev.com/GeneratorApp/ (development discontinued)- CRUD operations Generating software – from SQL, to Data Access, to UI – for Sql, Java, Php, Android, Flutter
- https://play.google.com/store/apps/details?id=com.programtom.generatorappandroid – Android – no-code Crud Generator
- https://tomavelev.com/TranslateApp/ (development discontinued)- App – to manage translations in one place and generate code for different platforms
The tasks in a team are divided in smaller chucks so everybody could have work. This way a project could get completed faster. But, inescapably – dependencies arise – and this affects the progress. Learning the skill to manage dependencies and to assign the important work to the right people is tough. You need past experience and to connect the dots for the current work.
The value of an individual employee is – how much he/she is irreplaceable. If he is not replaceable – he may ask for higher salary.
- Technical knowledge and excellence is replace-able.
- Having soft skills is more rare & is important, but still – it will not do the work on its own.
- An employee is good for a company if he is having broad point of view on every aspect of a business
- sales,
- management,
- product, software development,
- marketing,
- content creation
- etc.
To become unique and irreplaceable, you need to have a mix of all and have the confidence about it.
Corporation Aspect
To the company – the replace-able employees are the goal. That’s why corporations form processes, guidelines and way of doing work, so anybody new could get started working. A very structured organized and normalized work – has a potential getting automated by a software program.
Companies sell software engineers.If you are able to walk on the team lead ladder – this has internal and external benefit for a company.
Software Usage
Real humans use the software. Adapting the software to their habits, technical expertise, user experience is crucial for the success of a software.
User Roles
Important moment in a software lifecycle is when multiple type of users need to have partial access to a system.
- access to sections,
- permissions (read/write) & privileges should be in place to allow multiple users
- have the guards in place to prevent bad state of the application. The reason for this happening may be either from user ignorance or from intentional bad intention.
What the market needs, psychological influence , human relations are more about – than software itself. What makes a software valuable is the size of the User Table in the Database. Just look what is going on with the Elon Musk – Twitter buy-out offer.