Thursday, January 15, 2009

Project plans in software projects....

Some key concepts to get out of the way first ...

Project: Has an objective, a clear start date and a specific end date. If these are missing, a different term may be more suitable (undertaking or a venture come to mind).

Now to the plan and a few of my issues with current generation project management tools.

A plan has the following core components:
  1. A break-down of the work that needs to be completed (best guess anyway -- can be determined reasonably well for the short-term, but gets harder as we move into the future)
  2. Resources that will undertake the work (Can be allocated with some confidence at the 2-4 weeks scale)
  3. The order in which work will take place -- a schedule of sorts with a time-line
What will get done, Who will do it and How/When will they go about should be apparent in proper plan.

------

Now to the real interesting part - each of these components from a 'problem framing' perspective require very very different thinking models.

1. Work breakdown is a 'decomposition problem'. We need to consider the level of detail/abstraction. But it is generally a good idea to have work expressed and communicated as a set of outcomes (much easier to know if you have actually completed the task this way)

2. Allocation resources is well .... an 'optimization problem'. We have a fixed pool of resources with certain skills and knowledge. We need to allocate these for the most optimal outcome. A first pass of this can be done without taking into consideration the time-line (though it is tempting). Again a good practice, because you are not preemptively thinking ahead too much.

3. Scheduling yet another 'optimization problem', only now you have to take all aspects into the equation. The overall strategy, actual work as decomposed, people and time/cost.

Planning is a complex problem solving activity, with some distinct problem types each of which require a slightly different hat and frame of thinking.

----

So far so good. Now for the mess-up by the tool vendors. Almost all traditional project management tools provide a user-interface model that requires the user to think about all the of above activities pretty much at the same time. So, we create a task, allocate resources and set start/end dates and include dependencies. Good planners do innately understand the above process and tend not to get too carried away by the tools focus, but when we teach project planning -- these is a need for a tool that essentially forces a certain structure (or) at least allows the user to choose a 'reference frame' which hides all non relevant information.

Some of the work done by David Allen in GTD (Getting Things Done) essentially take this perspective where they get people to focus on tasks from a context.

I do not want to directly blame the tool vendors for producing the current generation of planning tools, just a request to see some additional features that allow the user to 'hide' information. I also strongly believe that this would most certainly improve the quality and effectiveness of the plans generated via this process, even if it takes a little longer due to the iterative nature of the process described above.

-- rv

Wednesday, January 14, 2009

Lectures ... boring?

I saw this article on NYTimes (via Slashdot) about the changes being made at MIT to the lecturing method. In a nutshell -- move away from the 50 min. lecture in large halls towards smaller classes that are more activity focused.

Having been lecturing for way too long (I think I just crossed the decade mark recently - *sigh*), I actually wanted to add a few of my own observations and opinions/reflections regarding lectures and the educational model in general.

1. It is very very hard to focus, listen and actually absorb effectively if the lecture is longer than 40-50 minutes.

2. My own experience (from listening to lectures, guest speakers and sessions at conferences) has been that after about the first 20-30 min. the mind wanders off and one has to been aware and attentive. Not impossible, just a tad tedious. Your mind starts to put in more effort just to stay focused, rather than absorb and understand.

3. The content on the lecture slide is more effective during review and revision (typically undertaken in the last weeks of the semester in order to prepare for the examination or to solve an assignment). In order for this to actually work, it is really important to take notes and put down annotations on concepts .. esp. note stuff that one is not quite sure about.

4. More than 50% of the students stop attending lectures after the first few weeks of the semester (good to see that they are having the same problem at MIT. So in a way, students are similar in some aspects in other parts of the world).

5. Real learning tends to take place when students actually *do and reflect* in a structured approach on their work, rather than just listen and guess.

The strangest part of IT education is we expect students to actually learn by 'listening' and creating mental abstractions and connecting them all in their heads when the content is presented in as a bullet points in a long 2 hours continuous session. It would be like teaching to play the guitar in a 'lecture hall' concept by concept for 2 hours (then set an assignment to compose new music and play it) ... and of course, wonder why students did not quite get it. The real wonder for me is how much students actually learn, given the teaching method.

-----
So why is it all like this and can it be fixed?

The strange aspect is that I never realized all this when I first started teaching. I joined the Faculty, essentially mimicked existing senior staff and added a few of my own spices to the mix. This reflection and understanding only started to form after the first 3-4 years of following the existing model. The odd part is that I never though that whole approach was not the most effective at that point in time. The long lecture, a set of assignments and a fixed examinations were all the model that I was used to for most of my University life. Simply put, I did not have a frame of mind or the vocabulary to think outside of the box. I never even thought to question it, except after seeing unfortunately high fail rates (the jolt is when students you know are capable failing).

Can this be fixed? Will I make changes?

The current models evolved and are to some extent focused on 'mass education'. If the system has to take 300-500 students and teach them all Introductory Programming at a reasonable price and in a fixed time-frame, then it is very challenging to shift from the current model and still be effective. Alternative methods like the one being touted at MIT are nice and possible, but if each class-room costs US$2.5 million, it does not come cheap (the material development costs goes on top of that -- very few Universities can consistently invest $10 million developing a single course).

Will I make changes? I have over time made adjustments to the overall teaching method and in the selection of the assignment problems with varying degrees of success. I will continue on this process. The one really hard constraint that makes it challenging is the time-boxed model of education. All students are expected to learn in 15-weeks, and move to the next stage with the full knowledge of that module. Reality is that students learn at different rates and a more flexible learning model is needed (something for me to consider then I start my own University I guess)

A closing though ... the existing system for all its flaws is still surprisingly effective and substantially better than random meandering. Almost all of the teaching staff are quite aware of the challenges (I am not alone).
I am confident that it will continue to improve (some of the efforts that my colleagues make me certain of this). We as a Faculty are much better now than we were many years ago and we will continuously improve (this, despite a substantial increase in student diversity and number).

I am looking forward to mentoring the capstone projects (Professional Software Development) and developing a couple of new subjects this year.