Skip to content

Categories:

Career Day Wednesday

I am going to be spending my morning tomorrow at my daughter’s elementary school, participating in their Career Day. I think I am going to have groups of 3rd - 5th graders wandering by, and I get to talk to them about being a computer programmer.

Not really sure (still!) what I’m going to talk about. I can show some code, but that’s not really going to mean anything to them. I’m thinking of some interactive questions (what is the biggest number a computer can count? Which is smarter, a baby or a computer?) and an activity where one student is the computer and another student is the programmer. They get to give the computer directions to accomplish some task. I think I’m going to be in the gymnasium, so I’ll probably get them to move to a certain location and do something like jump.

I also want to emphasize the craft nature of programming. Compare it to something like writing stories, or songs, or making paintings or sculptures.

I don’t know how it’s going to go, but it’s a morning with my daughter and her school mates, so how bad can it truly be?

 

Posted in Uncategorized. Tagged with , , .

So, what’s this all about?

That’s the big question, any time someone is starting a blog. I know there is something that I want to say; knowledge that I can provide to help someone solve their programming challenges. It’s just a matter of gaining the discipline to consistently post something.

I want to talk about the issues I see in our programming shop at work, what is causing them, and how I think I can help fix them. I want to explore ideas about meta-programming tools (software factories, code generators) that help to leverage the knowledge of a SME and distribute it to the entire team. I want a place to just talk about a cool tool that I’ve found, or a bit of code that I might have written.

By title, I’m a Sr. Software Developer at Compassion International. In actuality, I’m moving (unofficially) into the role of a Solutions Architect. There are a few of us on the development team with the temperament and ability to look at the bigger picture, beyond the confines of the current project, and try to envision making all this “stuff” work together, and work well.

Compassion is a Christ-centered organization ministering to children in poverty throughout the world. That fact makes it different than doing the same job for a bank or financial center. We’re writing the same type of code, same kinds of applications, but at the end of it, I can look back and say that I am truly making a difference in the world, both today and in the future. We need to be effective with what we create; a failed or abandoned project is funding that could have gone to another effort within Compassion. There is a lot of self-imposed pressure applied.

I am currently assigned to two projects: CSP and CIV (we love acronyms at Compassion). The CSP project is phase 2 out of about five, and is just about finished with refining requirements and beginning to write code. My role on this team has been different for me. This is the first time that I’ve worked on a team and purposely not written any code. I feel like I can be more effective here by providing design guidance and helping the other team members to get their heads into the problem and express the ideas that I have come up with. We’re also trying to follow a Scrum-like process, which is new for most of us on this team. Our biggest challenge at the moment is in defining our interim deliverables (what will we demo at the end of each two-week sprint). I think that is going to change in the near future. Most of the uncertainty in what we are building has been driven out (or at least exposed to the light so that we can stab at it!) and the project manager is going to help us refine our backlog of features and get it broken into tasks and prioritized. The customers on this project are not really into the whole Scrum idea, so there is a lot of us pushing things to the customer and getting them to say “Yeah, looks good,” or “What were you thinking?!” Either one works for me, as it gets discussion going between the development team and the business unit that will ultimately have to live with the code.

The second project is CIV. It is going through changes at the moment, and building steam. We were initially looking at an ASP to provide most of the functionality, supplementing it where necessary with custom code through web services the ASP provides. The problem (or opportunity, pick your side of the coin) is that CIV shares a lot of processes and ideas with the CSP project. The project management group has finally seen that, and we are going to be building CIV in the footsteps of CSP. Right now, I’m going back and reviewing the analysis and process diagramming that was created for CSP and identifying similarities and differences. I expect that when we finally get to a place to code, it will involve a lot of work refactoring what was done for CSP and making it more general in the process of adding support for CIV. Overall, this is a good goal, but something that is difficult to explain to management, or to predict how long/how much to do it.

So, expect plenty of talk about issues that crop up on the teams, ideas about how to make the teams more effective, and how to distribute the knowledge that individual programmers have in their heads to the entire department.

Posted in Uncategorized. Tagged with , , , .

Patterns&Practices Contrib Projects

Via Tom Hollander: p&p Contrib Open for Business

The patterns&practices team at Microsoft, responsible for a ton of useful code, has opened several new projects on CodePlex. There are projects for Enterprise Library, the Web Client Software Factory, and the Smart Client Software Factory. SCSF Contrib and WCSF Contrib aren’t public just yet, but the EntLib Contrib project is rolling. There have been two submissions (some new PIAB matching rules and a DAAB provider for MySQL). I’ve been playing with putting together a provider for SQLite; I think this is just the push I need to get that tested and finished.

Thanks patterns&practices, for these new projects and all the help you’ve provided in the past.

Posted in Uncategorized. Tagged with , , , , , .