In order to take part to combat the 5 MINIMETS OF THE WRONG KAPRAH against SOFTWARE DEVELOPER or IT JEBOLAN.
Because it has a background that will not be far from the resource person, I have more attention to this article and follow up on the written message delivered by the resource person,
It was sad after reading the review from Joshua 스크 람 Partogi which was published on medium.com, the article is based on his experience and observations, he described the long history of Computer Science or Information Engineering in Indonesia, which for more than 40 years the branch of science entered Indonesia, but what is the result? it turns out, not much progress is meaningful, it is because the turnover rate (turnover) of the software development industry in Indonesia is still relatively high compared to other industries, one of the examples of cases is the delivery date and features that are not in accordance with customer planning / requests.
It is unfortunate, the problem which has been going on for the past 40 years, apparently still can not change the way of thinking and behaving properly in software development. Shouldn’t they learn from failure? !! But as if this does not apply in Indonesia, Like using a horse eye glasses so, they do not pay attention to developments and changes in the world.
“A problem can’t be solved from the same state of mind that created it.? — ?Einstein”
Today, while you are reading this article, in Indonesia there is a software development project that will soon fail and at the same time there are several software developers who have been working for less than a month and intend to resign, because there are still many managers and company officials who have a management mindset in the 1900s in managing 21st century software development projects, because they have not been able to adjust themselves, so this is the reason they need to be replaced. Their traditional behavior is not far from the influence of their superiors who also pretend not to know. Human Resource Depaterment (HRD) is also included, which still uses ancient theories. Their ancient theory is a myth, maybe the name that suits them is.
“partners in crime to demotivate people in the workplace.”
* What is meant by the myth in this article is a thought about the management of software development based on theories from the horse age that are inhumane and are no longer relevant in the 21st century.
1. Software Developer = Resource
In every training he goes through, there are those who correlate software developers as resources.
“Sir, what if our resources are limited? Is Scrum …? “
He always cuts questions like that, because they really irritate the ears. According to the English Dictionary, the meaning of the word resource is.
resource (n). a place or thing that provides something useful and can be used whenever it is needed.
And unfortunately humans are not a thing (things) that can be treated at will. Humans have thoughts and feelings.
People are NOT Resource
The developmet software line is not a production line as it is in factories. What is done by the programmer is not the same as what is done by factory workers, because what is done by the programmer is not a mass work, the code they type is not a bouquet of stories or news, but an algorithm that requires a high level of intelligence. The mindset that cannot distinguish between the role of laborers and the paradigm in this case is that software developers are BIG MISTAKES.
Software developers will not experience shrinkage, but instead over time they will become smarter because they are knowledge workers who use their brains to work not their muscles. The knowledge that is in the heads of software developers will not be obsolete, unless they do not want to continuously learn and be up-to-date with the development of the era again. And if they are getting smarter, then the software they develop will be increasingly high quality.
Software developers are not resources that need to be managed. When software developers are over-managed, they will under-manage themselves. They are humans. They are knowledge workers. They are capital investments where their main capital is knowledge.
2. Software development = predictive work
Chaos theory is a field of study that studies system dynamics that are very sensitive to the situation at the beginning that causes the situation at the end to be unpredictable. Lorenz system is an example of a chaotic system and as a contrast gravity can be said as a system that has a high degree of certainty.
To give a simple picture that can be accepted by the wider community, the informant told his younger brother who was still in high school and worked part time at a fast food restaurant (burger). One of the habits of fast food restaurants is to look for workers with a high school background, because the daily salary of high school kids is cheaper than someone who is married. This is not strange and can be accepted by common sense, because the process of making burgers is repetitive and uncomplicated, even someone who is still in high school can be given a short training on making burgers in less than a day. If the process of developing software is the same as the process of making burgers, maybe the way of thinking that software development is a predictive job is acceptable.
Unfortunately the work of developing software is not a predictive job like making burgers because software developers never make the same software more than once. Developing software is not a production process. If we take the example of the automotive industry, we can see there is an R&D (Research & Development) division and there is a factory section that is in charge of producing cars that are designed by the R&D division. The expertise of the people in the R&D division is different from the people in the factory. People in the R&D division contain creative innovators who are different from those in the factory who simply follow standard procedures. Innovators in the R&D division D has never designed the same car more than once, but people who work in production lines can make the same type of car many times a day. If we want to link the nature of software development work, then it is more suitable to be connected with the R&D division than with the production line in the factory. Software developers are innovators, not factory workers.
But it is unfortunate that so many project managers still think that the type of work in software development is work that can be predicted from the start such as the job of making burgers. The project manager will make every effort to create a work breakdown structure (WBS) that is near perfect so that the project does not fail. And when the project fails, in the next project they will try to spend more time to make the WBS closer to perfect again and if necessary add a buffer this time. This way of thinking is highly irrelevant in software development because most project management theories adopted by many project managers are based on construction project management theory which is indeed predictive. The building construction process that uses a lot of civil engineering theory and physics theory makes it tends to be predictive. If only developing software based on physical formulas, maybe we can use WBS and we don’t need to have an intelligent software developer, just as coolie as a building. If only the project manager had the humility to admit that their project management knowledge was irrelevant in software development, maybe more software developers today are happy and don’t regret why they are a software developer.
“Coercing people into commitments that didn’t come out of their mouth then blaming them for not meeting those commitments is an abuse.”
This is made worse by the salesman who gives false promises to clients just so he gets a project from his customer. The salesman will get a bonus from the company for passing the project, while the software developer must suffer because the deadline promised by the salesman to the customer is often unreasonable. Isn’t this a very cruel manipulation process? Many salesmen in software companies think that making software is the same as making egg-fried instant noodles. And don’t blame if the software developed by the software developer becomes of low quality.
“Software developers don’t work effectively when they’re pushed into a no-win situation.”
For types of work that have a lot of uncertainties such as software development, empirical methods are more appropriate to use. The project manager who thinks that the type of software development work is predictive may not have been involved or has not been involved in software development for a long time or his team has developed simple software with simple technology with only one user.
3. Sukses = On-Time, On-Budget dan On-Scope
At the beginning of this year, on my way home from the office outing where I was then a trainer for the team at the company, heading for Jakarta, one of the outing participants received a short message from their superiors whose contents were roughly:
“Don’t forget, John, our target this year is Always On.”
Thought that emphasizes that success is On-Time, On-Budget and On-Scope comes from traditional project management theory. These three success criteria are often referred to as the Iron Triangle Project Management. If the type of project or type of work being done is predictive like making burgers then this thinking can be accepted by common sense. But developing software is not the same as building a mall.
The solution is overtime
In many companies in Indonesia, overtime is often used as a solution so that the software that has been promised by management to customers can be completed on time. It is as if the software being developed is not finished on time so the world will end. But viewed from any side, overtime is very ineffective.
“Overtime” will always be followed by an equal period of “undertime” where people trying to catch up with their lives.
Every hour software developers overtime, every hour they will also lose time with family and friends. The more they overtime, the more they have no life. Overtime is a short-term solution but the long-term impact is more painful.
Quality is not important
Based on the company dictionary, the definition of overtime is the addition of time to increase the quantity of work not to improve the quality of the software being developed. For management, delivering software faster though with lower quality is more important because they assume that there will be time in the Post Implementation Review (PIR) or User Acceptance Test (UAT) to improve the software. But the trick is that management will still report to stakeholders and customers if the project has been completed successfully because they have met the criteria of on-time, on-scope and on-budget, even with low quality.
Assuming that low-quality software that is completed on time, the scope of work and funds determined as a criterion for success is like an illusion. Software development is an art, writing good code requires extra caution and a relatively longer time than writing odd code. Low quality code will slow down the addition of new features and increase costs for software maintenance in the long run. I have often seen software developers resign from a company because the software they manage is of poor quality.
4. Productivity = quantity of time worked
High quality time = high quality software
In the world of software development, time to think / daydream is something that is very important because quality software is made by knowledge workers who use their brains instead of their muscles. In the majority of companies in Indonesia, a software developer is said to be productive if he sat and typed in the code for a long time. There are even companies in Indonesia that measure programmer productivity based on the number of lines of code written by the programmer in a day. If the software developer is daydreaming or walking in the park, then they are considered not working and harming the company. What if when they were daydreaming they were thinking of an algorithm that could make the code more efficient and clean (clean code)? What if the daydream produces thoughts that make the user experience software even better? Software developers are like painting artists, when they are daydreaming they are actually being productive.
The interruption is endless
Wired-in is a situation where software developers connect to the code they are writing just like when someone meditates without realizing what has happened around them and how much time is too while he is writing the code. If you are a software developer, of course you know what I mean.
“For knowledge workers like software developer, being in the flow is important because only when they are in the flow their work goes well.”
Unfortunately, based on the observations of informants, software developers often get excessive interruptions, so the quality of the time they have while in the office is very low, because it is used up for meetings and teleconferences plus interruptions are not important from superiors and customers not to mention projects that are done in parallel, so their time for coding is very minimal.
“The quality of software developer’s time is important, not just its quantity.”
Interruptions make the quality of software developer time low, and with these circumstances companies still expect work to be completed on time? It really doesn’t make sense right?
Feudal style management
This point of view originates from the colonial era of the 17th century Spain, which considered the wealth of the earth to be fixed, so that the way they enriched themselves was to take as much gold as possible in their colonies, a similar thing was done by the VOC, but different from the British who thought with technology and innovation to enrich themselves. Because Britain experienced industrial revolution, while Spain experienced inflation because it was unable to sell its gold.
5. Coach? — not a role that is considered important
“Often the answers to many questions are already within us. We just need the help from someone to bring them out.? — ?Mae Jamison”
People don’t become more powerful because they are managed, but because they are coached. The software developer paradigm must be managed from the point of view that software developers are basically unmanageable, immature and not competent enough to manage themselves, therefore there needs to be someone to regulate them. The software developer paradigm must be co-derived from the point of view that software developers are good at having the potential to be able to manage themselves without being ordered in the future.
Competent adults don’t need to be managed
Because software developers are considered incompetent, they need to be managed like chess pieces by others who are considered smarter, in this case the project manager and sometimes added several layers such as Technical Leader, System Analyst, Solution Architect and Business Analyst. This way of thinking indirectly makes software developers at the lowest hierarchy in the organizational structure as coolies in the lowest hierarchy.
Manipulative annual appraisal performance
“Rather than have a yearly performance evaluation, how about making course correcting info available all year long?”
The annual ritual conducted by a company called performance appraisal is expected to motivate software developers in the following year. But this is actually a ruse which actually aims to manipulate the motivation of software developers due to the nature of performance appraisal who judge software developer performance for the past year. Judging software developers is considered more important than providing continuous coaching that can increase the capacity and capabilities of software developers. What’s worse is that the high-performance criteria for software developers that are used at the time of performance appraisal is the iron triangle — — on-time, on-budget and on-scope — that doesn’t make sense. HRD is one of the parties expected to be able to provide coaching to software developers considering that many of them have psychological backgrounds, but how many of HRDs understand Agile Coaching and provide active coaching to software developers in Indonesia? Almost no.
“Leadership is the process of creating an environment in which people become empowered.”
Companies often dream of getting a mature and self-organizing software developer, but at the same time the company does not place enough investment for a role that is tasked with maturing the software developer. The company hopes there is a miracle from heaven that can mature software developers in an instant. Even though roles like Agile Coach and Scrum Master have been felt and are considered important in other parts of the world, this role has not been considered important at all in Indonesia. Why is that? Because an Agile Coach or Scrum Master is seen as someone who is weak and has no authority. Indonesians want to govern others, because only then can they be seen as someone who is a great leader and has authority.
“Top down solutions ignore the knowledge & wisdom that exists throughout an organization.”
Someone does not automatically become an adult, even to this day I still have a personal mentor who continues to help me in my career. Leadership is not about taking as much as possible from the people in our company but rather about serving our people. Software developers are basically intelligent people. Intelligent people need co-training so that the potential within them can be expelled. The bottom up approach with the Scrum model is more appropriate for a software development environment that contains a lot of knowledge workers.
If you are a software developer who wants HRD, superiors, project managers, business analysts, users, customers, sales, marketing to understand that what you do as a software developer is complex, please share this article. If you want to improve the software development ecosystem in Indonesia and save even more software developers who are currently being abused with feudal style management, please share this article. Please retweet, share, like, reblog, recommend, repath, spread to the office mailing list, spread to the discussion forum without having to ask permission from me first.
This is a war against feudal thinking in the software development industry in Indonesia which has reached an acute level. Let’s together humanize software developers in Indonesia. If more and more Indonesian people are educated about the work process of software development that should and can get out of the old ways of thinking that cannot be scientifically proven, the software development ecosystem in Indonesia will be healthier and more and more software developers will become happier and do not need to contemplate the fate of why he is a software developer.