alpaca princess (renniekins) wrote,
alpaca princess

Technical Life

In my "introduce yourself" post, I opened the floor to questions. One question was "I'd be most interested to hear more about is your technical life -- you write a lot about the social aspect of your job, but since I'm a geek I'd also be interested in what tools you're using, how you like them, that kind of thing."

I figured some of the other folks on my fl might be also curious, so here's a quick rundown. Feel free to ask more questions if you'd like.

Hmmm, my technical life. I do java development. I happen to run Windows, but I don't much care for it. I use Eclipse is my IDE and I love it. I use Agile as my style of project management, and I am a big advocate. My current project uses Scrum, a form of agile. We have 3 week "sprints" (aka iterations, in which we have a specific set of tasks (stories) we are working on and attempting to finish within the sprint), and we do two in a row. Every 2 sprints (6 weeks) the whole team travels and gets together for a colocated planning session wherein we spend a week in a room with a whiteboard and plan and design the next 6 weeks worth of work.

There are 30-ish people on my project, and I'm the only woman. There are actually 3 10-person teams, since agile is best done with a small team. We are located in several US states, Belgium, and Germany. Probably 30% the team works out of their houses, the others in offices.

I work at home when not at the colos, sitting at a desk in my den. I do lots of pair-programming (another agile/eXtreme Programming concept), and we use VOIP and VNC to do this. We also use a lot of instant messaging. It works better than I would have expected it to. Most of my projects literally involve two people working on one desktop, both talking/designing/working together, one person "driving" aka typing. This means I'm on a headset talking to one or more coworkers almost all day, even though I'm alone in my house. When I'm not driving, I sometimes have a cat on my lap. We have daily status meetings which last about 10-20 minutes, to keep everybody on the same page and aware of each story's status. A "story" is a unit of work to accomplish.

I have a laptop and a laptop backpack which always holds a spare power cord, a mouse, a headset, an internet cable. (And a spiral notebook for the occasionally scribbled notes. Other than that, my job is completely paper-free.) With this setup I can be completely mobile and work anywhere with internet connectivity. Talk about agile! That said, it's easier to work somewhere without distractions, and it's easier to work somewhere with some ergonomics set up.

Whoops, I got non-technical again I think. I am a big proponent of object oriented programming. I also love test driven design/development. I have gotten very good at the classic TDD method of coding, which is: write a test that fails, get the test to pass, refactor, repeat. It's hard to get into that mindset, but when you do it helps immensely with design and test coverage.

I also *love* to refactor, reducing redundancy and complexity, making the code clean and readable. Eclipse has lots of refactoring tools that make it easy to write code extremely fast, then tidy it up with the tool. I am a keyboard junkie when it comes to coding, and although I can barely remember what I ate for breakfast this morning, I can tell you key combinations for all kinds of frequently-used refactorings and lookups. My memory is a weird thing. (for example, these are a few off the top of my head. Classes that implement a method? control-t. Classes that use a method? control-shift-g. Open a resource? control-shift-r. However alt-shift-r will rename, and alt-shift-m is method extract. Make getters and setters? alt-s-r. And if you can't remember a refactoring combination, alt-shift-t will pop up a selection window. And yet, I still don't remember the names of everybody on my team yet, and I spaced out while driving somewhere familiar last night and made two wrong turns.....)

Okay. That's probably more than enough geekiness for now. Feel free to ask questions or request elaborations though!
Tags: work
  • Post a new comment


    Anonymous comments are disabled in this journal

    default userpic

    Your reply will be screened

    Your IP address will be recorded