On the Software Engineering Productivity forum, I noticed Michael Surkan write a provocative take on whether we should let our kids be software developers. He wrote:
“This is tongue in cheek, but I think the question about what careers we would recommend our children go into is a valid one. Is software engineering still a career we would suggest young people take on? Sometimes I wonder if the sheer excitement, and adventure, of programming is a thing of the past.
Software engineering is far more defined, and formalized, than it used to be. The days of just cranking out code for fun are gone. Now it is all about following methodologies, writing specifications, and being just the part of a much bigger team.”
To look at it another way, is programming “fun” anymore?”
Very interesting take Michael!
I guess it all depends what you consider fun. There’s a lot of fun in adventure and exploration. There’s also a lot of fun in hard work and discipline. As a father of four, whenever I see my kids take too much time off their homework, take too many shortcuts, have too much adventure, explore “new ground” too much, I see them have fun for a short period of time, then I see them start to get aimless, lackluster and disillusioned about life in general.
I always say to them the same thing: The secret to happiness in life is hard, disciplined work. Plan what you should do for the next two weeks, and do it. For my kids, that’s a combination of proper sleep, an aggressive start to each weekday, solid school work, eating right, working out at the gym, and community involvement. Two weeks later, they’re right as rain again.
I agree that software is getting more disciplined, but I still see a lot more time spent discussing methodology than actually following it. I personally look forward greatly to the next five years, as the tools for supporting disciplined software development become more robust and mature. For me personally, software adventure is fun but only for a short time. What’s a lot more fun is a hard working, disciplined approach to creating long term value.