Skip Go Content
AI translate this article from Japanese
Read in Japanese
This article dey for Public Domain (CC0). Feel free to use am anyhow you like. CC0 1.0 Universal

Kunu Developmen We De Kun De Develop, With Refactoring-Driven Testing

Developmen na to make sometin new wey go fit dey useful, wey you go fit dey do over and over again.

When we hear "developmen", wetin we too dey quickly tink about na to make new products. Dis one no be like when dem just dey produce one-one tins; instead, e be like say you dey create di design or di mould wey dem go use make di products.

So, di blueprints or moulds wey dem make through dis new product developmen na wetin dem go dey use over and over inside factory to make plenty plenty di same products.

We get oda uses too, like to develop person skill or to develop society and whole country. Dis ones mean say e no just be say wetin person get don increase, but say di skill wey don develop go fit dey useful and person go fit dey use am over and over.

Even if person or society get money wey fit dey go up and down because of how economy be, di skills wey don develop suppose last forever.

Even if e reduce, we go call am decline, no be like how money just dey go up and down.

Apart from all dis ones, we get developmen of technology and knowledge. Unlike person skill or di skill of particular society, dis ones get one kain special tin wey make dem easy to share with oda people.

And among all di products, skills, knowledge, and technology wey come out from all dis developmen, some of dem go fit help for di developmen wey go come next.

By developing dis kain useful tins, di scope of developmen go just dey wide, and di way wey dem dey work and di quality go just dey improve.

AI-Driven Software Developmen

Normally, to do any developmen dey always chop plenty time and energy. Especially as society dey move forward and different different tins dey become more complex, to make new tins dey even harder.

But now, as generative AI don come, dis tori dey change. For now, software developmen don dey change a lot because generative AI get high power for programming.

For dis matter, di dream for future wey generative AI-based autonomous agents go be di main focus for software developmen as software engineers, don dey happen small small.

We dey for one kain period now wey tins dey change. Even if we no fit completely leave all developmen for generative AI, if we sabi use generative AI well, e fit push software developmen go far.

Dis one na wetin dem dey call AI-driven software developmen.

Kunu Developmen We De Kun Dey Develop

When generative AI make software developmen to dey fast, e no go just make di final software developmen easy, but e go also make di developmen of software wey go help for developmen itself easy.

As we talk am before, tins wey come out and help developmen go make di scope wide, and e go help make work fast and quality better. On top dat, if dem make am well, dem go fit use am again for oda developmen projects.

So, if you develop software wey go help for developmen while you dey do software developmen, di work go fast well well, and you go fit use all dis tins for future developmen.

Before before, to develop dis kain helper software na normal tin, but e dey chop time and energy of its own. So, you go need to tink am well and focus when you dey do am.

If you use generative AI, you fit quickly make small small software to do small work wey dey come your mind automatically. If di work get clear steps, generative AI go accurately generate di program with almost no error.

Because of dis, to develop software wey go help for developmen during di software developmen process don dey easier now than before.

And, if you tink well well about dis, one kain developmen style go come out where useful tools for developmen go just dey created continuously during di process, and dis one go change di developmen style itself.

We go call dis one "Kunu Developmen We De Kun Dey Develop."

To do dis kain developmen, person go need to get di habit of just dey look e own software developmen objectively, dey tink say which parts software fit handle and which parts only human fit do, plus di skill to develop dat kain helper software.

On top dat, you fit put generative AI inside dis software tools. If you put am inside di software, e no go be like generative AI agents, di scope of wetin e go process go fit reduce small, and dem fit define di way e go follow.

Even if AI agents fit get di same result with prompts, software wey get generative AI inside fit easily increase accuracy by combining both programs and prompts.

If you fit do dis kain kunu developmen, di second project go show say quality and cost don better pass di first one. On top dat, with each project wey follow—di third, fourth, and so on—improvement go just dey pile up.

Dis one totally different from just using generative AI to develop software. One big gap go just dey show over time between teams wey just sabi use generative AI tools and teams wey dey do kunu developmen.

Testing We De Do Because Of Refactoring (Refactoring-Driven Testing)

One concept dey wey dem dey call Test-Driven Development (TDD). For dis one, dem go first design tests based on di specifications, then dem go develop di software to pass those tests.

At first, I too been dey tink say if we use generative AI, e go easy to develop test programs for automated testing, and dis go make TDD possible.

But as I begin dey do developmental development, I come believe say to dey tink about tests before you implement am no always be di best way.

Especially for software like web applications wey get subjective tins like how easy e be to use and how di design look, wey person dey interact with directly, I come realize say to actually run and interact with di software na im first pass detailed tests.

Dis one na because if person no too happy with di UI/UX after interacting with am, e fit be say dem go wan change fundamental parts like di framework, di basic architecture, di data model, or even di use cases.

For my current personal software development project, I notice problems with how flexible di features be and di performance, and I end up changing two frameworks for different ones.

I also had to totally review how some areas dey process because di memory usage no dey efficient.

Na for dis kain refactoring moments, testing first come become something wey you go consciously tink about.

If dis one dey for di early stage of development, or if di functions and specifications go still change a lot anyway, tests fit no be necessary.

However, if di developmen don already go far and plenty tins dey to check, tests go be necessary to confirm say di refactoring no bring any functional problem or forget some tins.

So, di idea of creating test programs when developmen don reach a certain level and refactoring come necessary, no be bad idea.

At dis point, di main tin no be to create tests for all di code, but to focus on testing parts wey don mature and no too likely to change much for future, while you leave parts wey still dey fluid without automated tests.

Dis one na wetin we fit call Refactoring-Driven Testing.

Conclusion

Generative AI don dey change software developmen drastically.

For one article I write before, I talk about say e important make person aim to be "Omni-directional Engineer." Dis one na person wey fit develop systems wey combine different different areas, infrastructures, and where di system go run, passing di normal full-stack engineer.

I also write one article wey talk say we dey enter one era of "Experience & Behavior-centric Development." For dis one, di focus no be to make di specifications match di implementation, but to make di user experience better through how di software dey behave.

Kunu developmen and refactoring-driven testing na exactly wetin dey carry us go dis new levels for software developmen.