Can in-house software programmers become extinct?
Companies spend millions dollars on in-house software development. There is no easy escape for business – they must use software in today world. Companies need in-house programmers for specific for their businesses applications and pay hefty ransom. But will it continue forever? Companies are not happy. And there are few trends that can put in danger a large population of in-house programmers:
- customizable commercial and open-source software for conventional needs as accounting, CRM, CMS, etc.
- outsourcing to specialized consulting software companies
- growth of domain specific languages and workbenches that allow business experts to build software.
- development of AI that can replace programmers, e.g. neural networks, expert systems, evolutionary computation.
Lets imagine the worst scenario. Suppose the dark day came – somebody invented a machine that can program. Non-programmers can use the machine for building software for their business needs. Technical knowledge and programming skills are no longer needed – just tell machine what you want and get a software program. Will it be the end of in-house programmer’s era?
What does business care about?
The present programmers value for business is mostly in knowing what business don’t care about, but cannot avoid because of technical complexity and large amount of specialized expertise involved. But can programmers help with what business cares about? Can they offer something beyond technical expertise? Can they become key players for business?
Top 5 non-traditional, but essential aptitudes for complex business world
Communication with people is not easy. We have different backgrounds, knowledge, ways to think and present information. The major part of our knowledge is stored on the subconscious level, which is not easy to access, describe with words and share with other people. And often this is one of the biggest challenges in software development – correctly understand meaning of what people need. In many cases, customers don’t have clear understanding even themselves. Good solutions for complex and wicked problems are only possible with clear understanding of these problems. Programmers and customers can together define problems, explore needs and overcome gaps in understanding.
Business will need programmers who help to discover meaning – true needs and real problems that should be solved by computers.
- communication and presentation skills
- understanding business lexicon and domain concepts
- listening and desire to find out what customers need
- ability to comprehend complex problems
Logical, rational and analytical mind is necessary for solving complex problems. Left brain is probably the most important part of a programmer’s body (at least for work). It could be used not only for programming, but also for resolving customer needs. Programmers should be able to convert complex business needs into clear, logical and consistent models and processes. They can remove contradictions, vagueness and gaps in the logic and concepts behind the system.
Business will need programmers who can come up with straight and logical ideas for solving complex twisted problems.
- problem solving
Software for people should be convenient, easy-to-use and simple. Good programmers understand how human mind works, the value of simplicity and beauty. They can strike the balance between functionality, usability and quality of the system. They understand what is important or can be left out. They could make software users productive, successful and happy.
Business will need programmers who can come up with friendly, elegant and simple software designs that empower people.
- appreciation of simplictiy
People are more comfortable with other people than with machines. Programmers could connect, share feelings and support human customers in the process of creating a software system. They can work in playful way, motivate and open mind. They can engage customers, become good partners and merge into powerful motivated team for tackling any challenges.
Business will need programmers who can make them comfortable, open minded and fully engaged in building software.
- care about others
- appreciating difference in personalities and approaches
- cooperation and teamwork
5. Big picture
The complexity of today world and huge amount of information overwhelm our brains. Many people are becoming narrow specialists who loose sight beyond the realm of their small professional world and job responsibilities. But good solutions require understanding of complex systems as a whole, how they fit into company business and outside world. Good programmers can understand this big picture, core concepts and relations. They know what is important, possible and makes sense.
Business will need programmers who can comprehend big picture, have intellectual control over complex systems and offer intelligent solutions.
- system thinking
- understanding what really matters and what are limitations
- broad vision and out-of-the box thinking
- knowledge of environment, context and system outside relations
- synthesis of concepts, information and experience
The New Programmer
Present programmer’s strategy for survival is
- intensively learn new technologies
- push business for using them
- as a result make system more complex and business more dependent.
It works well now. Probably, developing 5 non-traditional non-technical aptitudes seems laughable, naive and wasteful. But this is the way to survive. Programmers should become key players for business. They should be involved in what business cares about.
Three forces make this strategy viable:
- new trends (see the beginning of the post) will make pure technical skills less important
- Agile development successfully offers a way to build software in a direct contact with a customer without an army of PM, BA, architects and consultants
- companies face more complex problems and tough competition; they need infusion of smart, logical and creative brains (programmers are premium source of this kind of brains)
- Learn how to talk with business and understand their problems
- Learn how to create practical and usable solutions in the business best interests
- Learn how to see out of your box, project and profession.
You can be more than a trivial technical programmer. Think about strengthening your positions as The New Programmer who mastered Meaning, Logic, Design, Empathy and Big Picture aptitudes.
A Whole New Mind: Why Right-Brainers Will Rule the Future, Daniel H. Pink