2035
The year is 2035. AI has become an integral part of everyone's lives. It has replaced people in many professions. There are few people writing books for any other purpose than their own entertainment. Teachers are taught about in history chats by the AI tutor. The first time a human sees the script of a movie is when they sign the contract for the studio to use their likeness in the computer generated end-product.
Used to be if you had a business idea, you wanted to take online, you had to approach a company who made software, to make it for you. That cost a considerable amount of money and you had to spend hours in meetings, than wait months for the finished product to be ready for launch. Developers are no longer needed. AI can generate a software without assistance. In the early days, AI was a little silly and inefficient when generating code, now it avoids mistakes. You just tell it, what you want and you'll have it. No meetings, no months of waiting, no exorbitant prices.
You just woke up with a business idea: A ride sharing application. You can register as a driver who can offer their car on the way to somewhere, or you can register as a passenger who needs a ride to somewhere. If your routes overlap, you are matched by the system. It's good for the planet and can work on a subscription plan.
You sit down before your computer and start chatting with the AI.
- Make me an app - you tell it - that allows people to share rides. You can register as a driver who can offer their car on the way to somewhere, or you can register as a passenger who needs a ride to somewhere. If your routes overlap, you are matched by the system. It's good for the planet and can work on a subscription plan.
- Gladly - answers the AI -, what's the name of the app?
Oh this tool is really great, you haven't thought about that.
- Let's call it “RideShare” for now. - You answer.
- …
- Can I change it later? - You type out in a panic.
- Of course - answers the AI, you imagine in a calming tone -, I'm using the name RideShare, but you can ask me to change it anytime.
- What platform do you want it to run on? - It asks next.
- On any mobile phone.
- Great choice! - answers the AI. Is it cheery? - It's a good idea to first start on any known platform, than branch out. I am creating your app for Android devices as that is the most popular brand in your area.
You become confused. Didn't you say “any mobile phone?”, but you quickly realize, how ambiguous that is, so you clarify:
- I meant, it should run on ALL mobile phones.
- Got it - comes the answer -. Sorry for the misunderstanding, I'll make sure, your app runs on all mobile phones.
- Your application will require a backend to work - The AI continues - What architecture would you like to go with?
- How should I know.? You tell me! - If you could yell by typing, you would. You start to get annoyed by the questionnaire.
- Choosing a backend architecture is an important decision for a business, if you need guidance on your options, I can provide you with suggested courses and literature.
- No need for that, it's your job to decide the technicalities - You answer smugly.
- Very well - Comes the answer after a while. You feel it released a sigh -, but I need further information about your products scale. How many users do you expect?
- As much as possible - You're bored now.
- Where are your users located?
- Anywhere.
- How many of them are expected to use the application at the same time?
- All of them. - You just don't want any problems. Let's prepare for everything.
- Your application will serve the entirety of the human population all across the globe and they might use it at the same time. Is this correct? - You're sure it's raising a brow.
- yes
- Are you aware of the possible implications?
Smart ass. You get anxious however. What could it mean?
- No. What are they? - You should have lied and get on with it.
- I can provide you literature on the matter, but I see you're pressed for time, so here's a short summary - Now it's the smug one - To support the entirety of the human population all across the globe at the same time, your costs would be astronomical, the energy it would use is hard to quantify and it could have a very adverse effect on the planet.
Oh no, that's the opposite of what you want.
- Give me that literature. - you concede.
You have spent weeks studying the most common backend architectures, their advantages, disadvantages, the decision making points. You recognize now, that the AI was a little ambiguous as the number of active users and their locations doesn't directly correlate to your architecture, you could use different architectures with different implications, You also know, that making this decision early on is important, because otherwise the application will not know, what kind of backend will it need to talk to and how it should talk to it.
- I will start with 10 000 active users inside a single town at first, but I'd like to be able to scale up fast to at least 10 million across a country. - You tell the AI proudly and just to prove your smart - I think a microservice architecture running in the cloud would be a good choice here.
- You're right! - You're now sure it tries to be cheerful - A microservice architecture in the cloud will be great for those needs. Which country do you want to first deploy to?
- Why does that matter?
- You want to store user data and different countries have different legislation in place for such applications.
- Ok, I want to start right here. - You answer passive-aggressively, as you are aware IT knows your location.
- Alright, I can generate the application in accordance to your locations currently active legislation regarding the storage and handling of personal information. Be aware though, as an AI language model, I can't be legally liable for any issues, that may come from my understanding of the law or the implementation of the code.
- Who is liable then? - You already know the answer.
- As the person who oversees the creation and maintenance of the application created by an AI language model, you are.
You feel a little frightened.
- Go ahead but give me the text of the laws and keep me informed of the implementation. - You know it will hurt, but you now have to learn about personal data legislation and how storage of user data is usually handled in applications, to be able to review if the product is in accordance with the law.
You left the AI at that point. Now you know some about handling personal data.
- Can we get to registering the users please? - you start
- Sure, would you like to use a third party authentication service, or would you like me to implement my own?
- What's the difference? - You really hate the questionnaire
- Third party tools are tried and tested overall solutions, that ensure good practices and user security at the cost of your application depending on the availability of their services and the need to hand over the governance of some user data to them. If your application uses it's own authentication systems, you can go without relying on others, but you may lag behind when following best practices and implementing the newest features. If you choose the latter, I will need to ask further questions about how you want your users to register, sign in, verify their accounts and what additional security steps you want to add, which will have their own questions attached.
- I choose the first - It's onto you. It knows you hate these questions and it hates you.
- Good Choice! Which of the following services would you like to use?
- …
- I choose the first - Up and enter. Quick and saved you another long decision making process.
- Sure. That can work. - The AI answers. It's toying with you.
- The next step is to create a welcome screen. A welcome screen is important, because it will set up the connection with your customer. It can be professional, or informal. It can ask your customer to initiate interaction by pressing a button or display the login screen if they aren't logged in and a personalized landing page, if they are.
- login screen and landing page sound good - you answer
- login screen and landing page it is. - The AI “nods” - The login page usually contains a navigation option to registration instead. I've added it for you.
- Ehm.. Thanks? - What the heck, it can do stuff on it's own without questions?
- Would you like to store additional information about users? After registration would be a great place to ask for it - The AI tells you
- What are we storing currently? - You're happy, that it started to take the initiative, but you're starting to wonder how much time will it take to finish your application. How many decisions will you need to make and how many books will you have to read to make those decisions.
- Currently you are storing what's needed to register and login your users to RideShare.
Namely:
- Id
- AuthId
- And if they are a driver or a passenger
- That looks good. Maybe we could store there names too?
- Sure. I will create a form for them where they can select if they are a driver or a passenger and they can give their name.
- Sounds good. Go ahead. - you hit enter with great satisfaction. You finally feel like, you're actually doing something.
- When they are logged in, they should be able to let others know if they are going somewhere, right? - Asks the AI.
- Yepp.
- I would suggest to display a form with a source and destination address field then. - The AI just knows what to do.
- Sure. - You're feeling comfortable now, that the AI took the initiative. You shorten your answers.
- When they hit submit, a new ride gets created with the details. We should add a list for the other users to browse the created rides.
- Go ahead.
- The list will display the name of the user, the source and destination addresses and if the user is a driver or a passenger.
- Ok.
- Next up I would suggest to generate your application until this point, so you can decide if what we have is to your liking. - Says the AI - First you should choose an appearance to your application. Should I generate a style based on the theme of the application: “Sharing rides between drivers and passengers”?
- Yes, please do.
- Alright, I'll generate an appearance for your application. I should advise you however, that not all of your target devices support modern display features. The older ones may need separate solutions which I can also generate.
- Wait a moment. - You type hesitantly - What are my target devices?
- You specified ALL mobile phones - The AI responds defensively - The list would be too long to render, but that specification includes devices from the previous century too.
- I see - you type while holding your head with one hand - Let's narrow that down to all IOS and Android smart phones released after 2030.
- Good idea. Narrowing down the list of your target platforms can greatly improve the visual consistency across all devices. - Deep nods from the AI. Just how specific you need to be? This thing is supposed to be smart.
- Would you like to run code natively on the devices or use a platform-agnostic framework?
- Why don't I remember you asking that before?
- There are no platform-agnostic frameworks available for all devices in your previous scope. I assumed, visual consistency is not a high priority. - Replies the AI.
Suddenly you feel very tired.
- Alright, use whatever you want, just generate it - you type out slowly.
- As an AI language model, I'm incapable of wanting anything. However if you are unable to make the decision, I will generate your application using a framework, as that makes for a more consistent outcome and easier multi-platform changes.
- sure
The loading spinner appears, you step away from the computer for a few minutes. When it finishes, a demo of your application appears on the screen. You start playing with it. It's bad. It doesn't look how you imagined, it misses stuff, and it completely messed up the driver-passenger logic you had in mind. You wanted for it to be a setting in every ride, not per user. Looking back at the chat history makes you realize, that at least this was your fault. You didn't notice the way the AI was describing this setting. It doesn't store any date information either, so you can't know if the ride your looking at is still actual or not. It doesn't filter out rides that are made by you. It doesn't let you tell if your looking for passengers or a driver. When you give your address, it doesn't help with auto-completion. You don't like the UI either, the colors the shapes are all off. And on and on.
It seems you have to exactly tell the machine, what you want from it. It might guess some things right, and it skip the most generic parts, but what YOU want, it may not know.
So you start typing again.
I want users to specify if they are drivers or passengers for every ride, not store the information when they are registering. I want to store the date a ride was created and I want to list the most recent ones. Rides can be also available or unavailable. Only list available ones. The address field should allow auto completion. You shouldn't see rides, that are made by you in the list. I want rounded buttons and a green theme….
And so you continue. You try not to be even a little ambiguous, but it's difficult. You wander if there are tools for expressing logic concisely and clearly, but you're here now, so you don't bother looking for them yet. You specify the color for each element, you tweak borders by trial and error, until you're satisfied with them. You iterate and modify your wording on details, until searching for rides is a breeze.
- The last system we should implement - you tell the AI on a quiet morning weeks of work later - Is finding rides, that overlap our route.
- We will need maps for that - answers the AI.
- I already thought of that - you answer and you paste the link to a mapping library - The users will need to place waypoints on the map. We can decide based on the given waypoints if they have common points or not.
- I see - The AI has nothing to add.
- Of course we have to consider edge cases though. - You continue - If a user only specifies a start and an end point, which route will they take? It might overlap with several other users routes, but we can't know, because we don't know how are they planning to get from point a to point b. I think if we would have a time range per ride, we could at least offer the ride, where the points are not farther away than a certain threshold and inside the time range the other user is looking for.
- Your logic is sound - The AI has nothing to add.
- Generate it and let's try - you lay back.
Naturally you forgot to tell the AI, that the threshold would be a user setting, but that's a quick fix. The waypoints weren't precise enough and jumped all over the place, you had to investigate a lot through trial and error. It turned out, the mapping library was misconfigured.
That's it, your app is ready, after months of work, you tell the AI to launch it. After another few days of questions and decisions and reading legal documents, it becomes available in stores.
You're happy, the world is a better a place and you have no more work to do with it. If there are any issues reported, the AI can find the problem and fix it easily.
But the issues pile up. There are some, the AI was able to fix, but there are a lot, where the AI chose an approach to fix the bug, but that broke something else. Sure, it introduces new tests every time an issue is found and after a while, the situation could stabilize, but that won't help the launch. And if the launch is ruined, there's a good chance your app will fail.
For a few days, you try to fix issues manually, but alone you're not enough to keep up even with the help of the AI.
You're finally forced to shut down your app.
The situation is grim. You spent months working on this product and it isn't able to pay for itself. You need to find a job.
- Hey - you initiate the chat with the AI -, I need a job. I've enjoyed working on RideShare. I learnt a lot about how software works and the infrastructure around it. I learnt to identify issues early and create solutions for them. I learnt to handle issues, I couldn't identify beforehand. I can describe logic clearly and efficiently in written language. I know how to build a software product from a single idea into something that can be launched. I'm just not experienced enough and low on resources to do it alone. Can you offer a career path based on these skills?
- What you described - answers the AI - is the job description of a software developer.
You look silently at the monitor.
It's a shame, developers are no longer needed.