Agile Software Development
For the next few weeks/months/years, I'll be learning to be Agile. That's a style of computer programming. It's kinda "cool". Um, if I've lost you already, sorry. ;) I'll try to use as few tech buzzwords as possible, if you haven't already left! In the past, I've built some nice software that does one job, on a fixed brief, on my own; software that is built once and never needs to be updated. I've built some reasonable sized, good quality projects by just getting stuck in and doing it. I like to build like that - I've always felt it shows off my skill. I've never done any coding "professionally", but I have made some money - it's always been more of a hobby. Whatever has worked, has been good enough. But, sometimes, changing part of the program has required so much refactoring (untangling a mess of code) that it was more efficient to tear the work down and start again. Making the decision to start again in a programming project is a pleasurable experience... you can work with a blank sheet, dropping the mistakes you made the first time, and using your experience to know what worked well and what didn't work. You use what you learned to make a better, faster, slicker, more functional version of what you did before. It might take a while, but feels totally satisfying. But, sometimes projects get lost that way, because it just creates too much work. My current project requires me to work in a different way.
I have to release a web app that works, learn from people using that, and improve it - but once it's released, I won't be allowed to make them start again with me. I have to improve and upgrade without people waiting to receive a change to a product that - by now - they've gotten familiar with. I also have to play more nicely with other coders, work with a coding style guide that other people can pick up and work with. With my own style unencumbered by the requirements of working a real coding job, this might be a challenge to think about. So, I have some key words to learn more about: iterative growth, continuous delivery, test-driven, pairs programming. I've got a lot of catching up to do.
So, see you later :P
Ronald
I have to release a web app that works, learn from people using that, and improve it - but once it's released, I won't be allowed to make them start again with me. I have to improve and upgrade without people waiting to receive a change to a product that - by now - they've gotten familiar with. I also have to play more nicely with other coders, work with a coding style guide that other people can pick up and work with. With my own style unencumbered by the requirements of working a real coding job, this might be a challenge to think about. So, I have some key words to learn more about: iterative growth, continuous delivery, test-driven, pairs programming. I've got a lot of catching up to do.
So, see you later :P
Ronald