The Regenerate Web

facilitating the regeneration of software teams

User login

Syndicate

Syndicate content

Services


Add to Technorati Favorites

Project

- delivery (3)
- duration (1)
- effort (3)
- estimation (4)
- Iterative (1)
- measurement (1)
- metrics (1)
- Planning (2)
- PMI (1)
 - PMBOK
- Progressive Elaboration (1)
- risk (1)
- Rolling Wave (1)
- schedule (1)
- task (2)
- velocity (6)

Management

- Boss (1)
- consensus (1)
- influence (1)
- leader (5)
- meetings (1)
- Motivation (1)
- process (1)
- Time Span (1)

Browse archives

« March 2010  
Su Mo Tu We Th Fr Sa
  1 2 3 4 5 6
7 8 9 10 11 12 13
14 15 16 17 18 19 20
21 22 23 24 25 26 27
28 29 30 31      

Analysis

- abstraction (1)
- metaphors (1)
- modeling (3)
- requirements (5)
- research
- semantics (1)
- Analysis (1)

Who's online

There are currently 0 users and 1 guest online.

Learning About Stuff

Last Friday, I went to a presentation by Martin Fowler. You may know Martin From some of his books, or from his participation in the Agile Alliance, or from his role as Chief Scientist at Thoughtworks. I have been reading Martins books for years since "Refactoring", and believe him to be one of the best modern authors on software development topics, as he can communicate on several levels simultaneously, and is great at articulating how to get value from ideas, as well as how to implement those ideas (a rare gift in my experience).

Martin's talk was about Domain Specific Languages, which will be the subject of his next book. He is well into this book, but claims that it will be still one year and a half before publication. I am not interested in DSL's per se, and I have long been out of the business of writing software for a living, and am mostly focused on requirements engineering, Software quality assurance, project management, and software team management.

This recent focus, does not exempt me from the need to stay current on the most vital abstractions and concepts used in software development. In order to interact with developers, I will continue to need to understand in some depth, the abstractions that they use to build, and the reasons and benefits for selecting one over another.

Moreover, learning new stuff makes my brain better. And that, my friends, is what this post is about. We all need to continually learn new stuff, regardless of how it applies to our job, or life. We need to try new ideas on like a coat. We need to experiment with things that we are learning or have become aware of. We need to adopt new practices (even if we think they are lame) and evaluate them from a practitioners perspective (rather than from a critical distance). We need to explore bodies of knowledge that are foreign to us, because it makes our brain better.

Regardless of that you do to earn a living, this is true. When someone throws you a new idea - rather than saying to yourself, "Why would I take the time to understand this, it is no better than what I am doing today.", we should periodically, put on our mental lab coat, and perform an experiment. We should borrow a page from the scientific method, and formulate a hypothesis and then conduct the experiment, to prove or disprove the hypothesis.

I have absolutely no reason for implementing DSL's on any of my projects. I will not be writing any code soon, but I wonder if any of the problems that I will need to solve over the next few years will be enhanced by my deeper understanding of some of the concepts presented to me.

This curiosity allows me to challenge the developers that I work with to be curious as well. It allows me to ask questions that can change the course of projects.