Pretty on-track, I think. While I have seen some toy examples entirely written by an AI system, I’m not seeing complex software yet. More importantly, even in the examples that I have seen, it’s still being directed by a software engineer.
That said, copilot can now do a better job of analyzing and refactoring code. I still don’t think that an AI system will be able to replace me in 3 years. While I have seen some project setup examples that were fairly impressive, but still most of it is just saving typing.
That said, those savings are likely to become significant. Documentation alone will be a big change. Right now documentation is hard. It takes time to write, and worse it is all too easy to become outdated as time goes on, so it’s often neglected. I expect that documentation will become a lot easier to write and maintain, as developers can just approve it as a part of code review, along with corrections.
I expect that within the next year, testing will largely be written automatically. That will be amazing, as writing tests are tedious but essential. This is just the sort of task that an AI assistant is perfect for, because they are fairly self-contained.
What I hope is that within three years, I’ll be working similarly to when I’m pair-programming with another developer where they are mostly driving. Sort of a more conversational interface too.
Within that time, I still expect that it will still take a human to translate business requirements into the proper abstractions and tasks, but tasks that used to take a week or so to write and test will become doable in an afternoon.
Basically I feel like my productivity will be multiplied by about an order of magnitude in three years. While this might mean that some teams will be smaller, I expect that there will be a much higher demand, as smaller businesses will be able to have a full software development team with made up by just a few people. Mostly though I just think that releases will be more frequent, as there is more capacity. Rather than months for a big update, it’s like a couple of weeks.
Learning to become a software engineer is going to become harder in some ways and easier in others. Smaller teams mean less learning from senior teammates, but that may be offset or surpassed by the AI assistant being always there to help explain a new concept.
I expect that writing software will use higher levels of abstraction. As someone who has been writing code for almost 40 years, I am used to thinking about systems at multiple levels, but that is a skill that generally takes time. Our education system needs to adjust to this changing environment—and fast. The worst part is I don’t really know how I’d change it, if I could. Hopefully that will be offset by AI tutors who are always available.
I’m looking forward to being able to focus on what I enjoy and what I am good at, with far less drudgery.
One year later, what you think about the field now?
Pretty on-track, I think. While I have seen some toy examples entirely written by an AI system, I’m not seeing complex software yet. More importantly, even in the examples that I have seen, it’s still being directed by a software engineer.
That said, copilot can now do a better job of analyzing and refactoring code. I still don’t think that an AI system will be able to replace me in 3 years. While I have seen some project setup examples that were fairly impressive, but still most of it is just saving typing.
That said, those savings are likely to become significant. Documentation alone will be a big change. Right now documentation is hard. It takes time to write, and worse it is all too easy to become outdated as time goes on, so it’s often neglected. I expect that documentation will become a lot easier to write and maintain, as developers can just approve it as a part of code review, along with corrections.
I expect that within the next year, testing will largely be written automatically. That will be amazing, as writing tests are tedious but essential. This is just the sort of task that an AI assistant is perfect for, because they are fairly self-contained.
What I hope is that within three years, I’ll be working similarly to when I’m pair-programming with another developer where they are mostly driving. Sort of a more conversational interface too.
Within that time, I still expect that it will still take a human to translate business requirements into the proper abstractions and tasks, but tasks that used to take a week or so to write and test will become doable in an afternoon.
Basically I feel like my productivity will be multiplied by about an order of magnitude in three years. While this might mean that some teams will be smaller, I expect that there will be a much higher demand, as smaller businesses will be able to have a full software development team with made up by just a few people. Mostly though I just think that releases will be more frequent, as there is more capacity. Rather than months for a big update, it’s like a couple of weeks.
Learning to become a software engineer is going to become harder in some ways and easier in others. Smaller teams mean less learning from senior teammates, but that may be offset or surpassed by the AI assistant being always there to help explain a new concept.
I expect that writing software will use higher levels of abstraction. As someone who has been writing code for almost 40 years, I am used to thinking about systems at multiple levels, but that is a skill that generally takes time. Our education system needs to adjust to this changing environment—and fast. The worst part is I don’t really know how I’d change it, if I could. Hopefully that will be offset by AI tutors who are always available.
I’m looking forward to being able to focus on what I enjoy and what I am good at, with far less drudgery.
In five years though… I just don’t know.