Software Engineering – Week the Third
Few things in life you fully can understand until you have first-hand experience. This is very much the case with learning about software engineering tools and practices. Last week I applied the content of the previous classes and some advice from Extreme Programming to a model project which involved finding maximum cycle lengths of the Collatz Conjecture across ranges of numbers. Making sure I did things correctly proved slightly more challenging than I had expected.
Putting things down for a while and picking them up later can be hard–I hadn’t really used an issue tracker or written truly worthy commit messages since the beginning of last fall and, needless to say, just as muscles are sore after returning to the gym after a 3 month break, my brain began to burn at the start of the assignment: all the requirements and steps caused the project to move painfully slowly at first. Things smoothed out after the first 4 commits or so and the rest of the assignment was a breeze. This project did something very important for me: it made me feel again like a software engineer rather than just a “coder.” And that was definitely worth the work.
But an issue tracker and a repository with no collaborators is like a dance floor with only one person on it. The reading assignments are leading up to actual collaboration–something that can be hard to get right. I know this about most bad collaboration: blame can’t usually be ladled out to a single party: things can go wrong even when all parties are trying and skilled. Rather, it’s that each collaborator has a different idea of the “ideal” way to do something. It becomes a situation where politicians from a communist nation and a capitolist one try to get together and draft economic laws together. Or a dance-off between someone tap-dancing and someone doing the dougie. You get the picture. Thankfully, Extreme Programming is providing a rule-book so everyone should have a similar idea of “best” (at least for programming in this class).
And finally, the syllabus layout seems good: the project due last week was the culmination of the previous week and this past week is preparing for something next week–there’s a nice flow to this class so, even if the work becomes like a brook after a torrential rain, it should still be manageable.
2/2/2014