The Future of Coding: When Generative AI Becomes Your Data Scientist Sidekick
A few years ago, posed with the question of how I would spend an entire year off my evolving corporate career, two answers immediately came to mind. The first, indulging in my passion for music by exploring every eminent music store globally. The second, merging my P&L management, Analytics, and Data Science experience, to venture into public company investments.
Remarkably, the past year afforded me the unique opportunity to realize both aspirations. Those acquainted with my professional endeavors would know that over the last year, I pioneered "QualProspex", an AI-driven investment tool. Seamlessly integrating APIs, automation, machine learning, and user-friendly interfaces, QualProspex has been instrumental in shaping investment decisions for my personal portfolio. While still in a Beta development phase, the results have been compelling, boasting a high hit ratio (measured by the fraction of profitable transactions) and an annual ROI far exceeding other investment opportunities.
While the accomplishments of QualProspex have been pleasing, the primary focus of this article lies elsewhere. I aim to shed light on my experience leveraging Generative AI, which played a pivotal role in enhancing the coding framework behind my investment system.
As context, QualProspex's backbone currently consists of thousands of lines of code. A recent interaction with a headhunter brought forth an interesting query — whether I had enlisted a programmer's assistance for my project. My instinctive response was a firm "No". But upon reflection, a more fitting answer would have been, "Indeed, I did. Just not a human one."
"But upon reflection, a more fitting answer would have been, 'Indeed, I did (hire a programmer to assist me). Just not a human one.'"
Although my expertise spans utilizing Open Source Languages such as R and Python, harnessing Data Visualization tools like Tableau, and navigating Cloud Computing environments including AWS and Microsoft Azure to streamline AI/ML implementations, my true strength lies in sculpting the ideal solution. I excel in guiding teams to select the optimal algorithms and tools, ensuring swift delivery of business solutions.
A few months ago, I embarked on integrating Generative AI to enhance this process. Through this journey, I gleaned several key insights, which I share with you today:
1. Generative AI Lacks "Instant Recall". In human collaborations, coding errors are part and parcel of the development process, often addressed through collaborative refinement. Generative AI, being rooted in Large Language Models (LLM), operates differently. Although these models are designed to offer alternate solutions when errors are highlighted, they lack the intrinsic continuous learning curve humans possess. My interactions revealed that after successive iterations and improvements, the LLM occasionally reverts to previously highlighted mistakes, exhibiting a cyclic pattern in its responses.
2. Critical Design Thinking Remains Paramount. The reality is that GenAI doesn’t help with conceptual modeling. While LLMs can expedite the coding phase, they are not replacements for the critical understanding of data science paradigms, design tradeoffs, and selection of the right technique to translate a business problem. The onus remains on the user to discern the appropriate techniques for a given scenario and undertake high-level modeling.
An illustrative instance is when I requested the LLM to construct a regression model for price-to-book ratios; it promptly offered a basic linear regression. Probing further, it revealed capabilities for more intricate methodologies like tree-based designs and hyperparameter optimization. However, I discerned that optimal outcomes are achieved when directing the LLM iteratively — breaking down tasks, verifying code at each stage, and progressively ramping up complexity. Directly diving into intricate tasks often leads the LLM to produce code riddled with bugs and inaccuracies.
3. The role of app development managers will have to include deciding how to set clear boundaries. I can confidently say that Generative AI will transform the development management process by creating segments that are fully AI-generated, partly AI-assisted, and some uniquely human-crafted. Segmenting these aspects will be crucial for effective code management. For the AI-assisted portions, robust tests are needed to ensure intended outcomes.
Recommended by LinkedIn
In larger projects involving numerous developers, clear boundaries must be set, with some tasks completely addressed by junior developers in conjunction with AI. On the other side of the spectrum, some tasks will remain exclusively human-crafted, either due to AI's limitations in that area or licensing restrictions. I expect the proportion of these collaborations to evolve over time (as the LLMs continue to learn and be updated) and only robust testing and critical thinking will continue to be pivotal in deciding where to put the above-described boundaries. Managing a sizable developer team amidst these dynamics emphasizes the importance of understanding the overarching problem, setting boundaries, and effectively designing solutions.
The Human Element in a World of AI. There is an old saying: "To err is human." While this may be true, it is also human to learn, adapt, and innovate. Our ability to work symbiotically with technology, as evident in my experience with Generative AI, shows that our greatest asset is not just our intellect but our adaptability. The evolution of software development won't be about humans vs. machines but about humans working harmoniously alongside machines.
"Generative AI serves as a testament to the transformative power of human-machine collaboration — it has become my junior data scientist assistant, not my replacement"
In the near future, we can anticipate a change in the landscape of app development. Traditional roles may evolve, and entirely new ones might emerge. As I myself have done with QualProspex, a new breed of business developers will leverage the strengths of AI while compensating for its limitations.
From a more practical standpoint, software toolchains will undergo significant changes. They will be optimized to incorporate AI-driven components, allowing developers to visualize and manage the melding of human-generated and AI-generated code. Comprehensive testing, integration, and validation tools will be paramount to ensure that the fusion of these two worlds yields reliable and effective solutions.
The Road Ahead. As AI becomes even more integrated into our workflows, we must remain aware of its advantages and limitations. This new era in software development will not diminish the value of human ingenuity; instead, it will amplify it. While tools like Generative AI will provide vast reservoirs of possibilities, it is our insight, vision, and creativity that will shape the future. Generative AI serves as a testament to the transformative power of human-machine collaboration — it has become my junior data scientist assistant, not my replacement.
In the grander scheme of things, I imagine a world where human developers and Generative AI collaborate in harmony, fostering an environment of perpetual learning and advancement. The future is not merely about automating processes but optimizing collaboration, shaping a new paradigm for innovation in app development.
In closing, I invite fellow directors, developers, and enthusiasts to embrace this digital revolution with an open mind. Together, let us sculpt the future, ensuring that technology serves society's best interests.
Javier Santivanez boasts more than twenty years of tech leadership, with roles at global giants like Nokia, Softbank, KPMG, and Omnicom. He melds deep expertise in Data Engineering, Data Science, and Machine Learning with a robust P&L background, making him an advisor to C-suite executives on A.I. strategy formulation and execution. When he's not immersed in the world of technology, Javier relishes jogging and exploring music stores wherever his travels take him.
Quite an insightful piece Javier.