In my transition from collaborator to team leader I’ve figured out a few techniques that I find effective. What follows are what I’ve found to be some effective practices for running a software development team (this is for a purely dev team–I have some thoughts on QA as well, which I will address at a later date).
- Everyone has their own fork of the code repository (eg: How to fork on GitHub).
- Have a good branching scheme.
- Have a continuous integration system (like Jenkins)–fire off a new build every time a commit is merged to the main repository’s develop branch.
- Configure your compiler settings to treat warnings as errors.
- Use Test-Driven Development, or else waste time chasing down random bugs whenever someone introduces a change.
- On a team of 2, each developer should review the others’ commits and constantly check each others’ work (see: Pair Programming).
- On a team of 4 or more, a lead developer should be responsible for reviewing commits, running the latest build and doing basic verification of features in progress.
- The lead helps coordinate and unblock developers.
- The lead helps plan and schedule the user stories with the product owner and scrum master.
- The lead relies on the team to come up with designs, but provides guidance on the design–generally with an eye toward not over-designing, doing the minimum necessary without cutting corners.
- A user story is not complete without unit tests.
- When you find a bug, fix it and add a unit test to check it.
There is undoubtedly more than this, and I hope to expand on a few of these points in the future. As you move into a lead position your job is less about writing all the code and more about coordinating the code that others generate. I still write some code, but at least half my time is taken by supervising others’ code–making sure there is a cohesive design and that the pieces fit together. It is a different sort of problem than writing the code, but it is a fun challenge.
I’m a fan of the new Xcode 4. However, sometimes the editor seems to “forget” my project’s symbols–preventing auto-completion and symbol lookup (including the quick-open feature, which I use a lot). Here’s a useful solution if you find yourself in this situation. Select your project in the Xcode Organizer and delete its “derived data.” It’s annoying but does the trick.
Another reason I love WordPress is their handy iOS app. It makes uploading photos and posting articles a snap. I highly recommend it if you’re a WordPress user (or thinking about becoming one) and you have an iPhone, iPod Touch or iPad.
Meet my new favorite cocktail, the Aviation. It’s a classic, but a less common one–perhaps because the ingredient creme de violette is so hard to come by.
The recipe consists of:
- 1.5 oz gin
- 1 oz fresh lemon juice
- .75 oz Luxardo maraschino liqueur
- a dash of creme de violette
Shake the ingredients with ice and strain into a cocktail glass. Garnish with a brandied cherry. I like to use amarena cherries that have been “bourboned.” If you don’t have creme de violette then elderflower liqueur makes a nice substitute.
When I installed the Deko Boko plugin to provide a contact form in WordPress, I discovered an annoying bug. The text input field for reCAPTCHA was off-center and overlapped some of the reCAPTCHA controls. I did a quick search and found a useful post which offered a solution which seems to work for me.
You need to change the CSS for the recaptcha_response_field element in order to reposition the text input field. The author of the post offered a few good solutions, but what I chose to do was insert the following html in my contact page, right before the dekoboko shortcode tag:
One could also edit the dekoboko.css file directly and change this element’s CSS. I prefer to edit my contact page instead of editing the Deko Boko files to make upgrading the plugin hassle-free.
This is my mom’s famous mac n’ cheese recipe. I’ve passed it on to several friends who have passed it on to their friends… it is currently making its way around North America. There are a lot of tasty variations you can do with it. Below is the standard recipe, and following it are a few variants I’ve tried and some other ideas.
- 10 oz extra sharp cheddar, grated (original recipe called for 8oz, but I find this isn’t enough. In fact, I’d recommend 12oz to be on the safe side.)
- 2 tbsp butter
- 3 tbsp flour
- 1 tsp salt
- 1/2 tsp pepper (I use white pepper, but black is cool–you could even use cayenne, though you might want to use less)
- 2 cups milk, room temperature
- 3 1/2 cups small elbow macaroni
- tobasco or worcestershire sauce (optional)
- grate the cheese (don’t cut the cheese)
- measure out flour, salt, pepper, milk
- warm milk in microwave (don’t boil it, just get it to room temp)
- preheat oven to 375F
make a white sauce
- melt butter in saucepan
- add warm milk, flour (so the mixture won’t be runny), salt and pepper
- stir this mixture regularly (but not constantly) over medium heat
- add some of the grated cheese when the sauce is hot along with a drop or two of tabasco and worcestershire sauce
- fill large pot with water (add 1 tsp of salt) and bring to a boil (I’d start boiling it before you begin the white sauce–you should be able to do both simultaneously and have them ready at nearly the same time)
- once boiling, add macaroni
- cook four minutes for standard macaroni, 6 minutes for Barilla “plus” (or other pasta which takes longer than regular pasta)–the point is that you don’t want the macaroni to be thoroughly cooked, not even al dente–it will cook more in the oven.
- drain macaroni and blanch with cold water
- layer the pasta, cheese and white sauce in a casserole dish:
- white sauce
- I usually manage three layers. Only use a little bit of the cheese–save enough that you can completely cover the top.
- top with the remaining cheese
- bake at 375F (preheated) for 30 minutes–or until top is bubbling.
- NOTE: if you prepare the casserole ahead of time and refrigerate it, add an additional 10 minutes baking time.
- let stand for a few minutes and serve!
- refrigerate leftovers, or cut into individual servings and freeze!
- take one large jalapeño, cut it open, remove the seeds and dice
- fry up six thick slices of bacon (about 8 oz), cook until most of the fat is gone and the bacon is crispy
- set out a plate with a couple paper towels on it, let bacon cool on paper towels
- blot bacon with additional paper towels
- stack bacon slices on cutting board and cut into small slivers of hickory-smoked goodness
- prepare standard mac n’ cheese recipe
- when layering pasta, sprinkle bacon and jalapeño bits into each layer
- prepare standard mac n’ cheese recipe
- instead of adding grated cheddar to white sauce, add 1/4 cup of crumbled gorgonzola
- if you really love gorgonzola, also sprinkle some crumbles into the casserole as you layer it
Welcome to the latest nickhart.com website redesign. Let’s face it: I’m lazy about updating my website and keeping it organized. It’s back to the blog format. WordPress seems pretty cool, so that’s what I picked. The default theme is pretty good, so slap up my own header picture (taken at my pad), tweak the background color and we’re good to go!
If you’re one of the other dozens of individuals on this planet who shares the name Nick Hart, welcome! This is the website of the one that lives in Seattle. And sorry, I registered this domain name a long time ago when the Internet was young. I’m not planning on selling it.