I’m the lead architect on a large CRM project that is about to start the Design phase (or in my RUP world, “Elaboration”), and my PM asked me what architectural tasks belong in her project plan for this phase of work. I don’t always get asked this question on projects as there’s usually either a large “system design” bucket, or, just a couple high level tasks assigned to the project architect.
So, I have three options here:
- Ask for one giant “system design” task that goes for 4 months. On the plus side, this let’s the design process be fairly fluid and doesn’t put the various design tasks into a strict linear path. However, obviously this makes tracking progress quite difficult, and, would force the PM to add 5-10 different “assigned to” parties because the various design tasks involve different parts of the organization.
- Go hyper-detailed and list every possible design milestone. The PM started down this path, but I’m not a fan. I don’t want every single system integration, or software plug-in choice called out as specific tasks. Those items must be captured and tracked somewhere (of course), but the project plan doesn’t seem to me to be the right place. It makes the plan too complicated and cross-referenced and makes maintenance such a chore for the PM.
- List high level design tasks which allow for segmentation of responsibility and milestone tracking. I naturally saved my personal preference for last, because that’s typically how my lists work. In this model, I break out “system design” into its core components.
So I provided the list below to my PM. I broke out each core task and flagged which dependencies are associated with each. If you “mouseover” the task title, I have a bit more text explaining what the details of that task are. Some of these tasks can and will happen simultaneously, so don’t totally read this as a linear sequence. I’d be interested in all of your feedback.
|2||Capture System Use Cases||Functional requirements
|3||Record System Dependencies||Functional requirements|
|4||Identify Data Sources||Functional requirements|
|5||List Design Constraints||Functional requirements
[Task 2] [Task 3] [Task 4]
|6||Build High Level Data Flow||Functional requirements
[Task 2] [Task 3] [Task 4]
|7||Catalog System Interfaces||Functional requirements
|8||Outline Security Strategy||Functional requirements
|9||Define Deployment Design||Non-functional requirements|
|11||Organization Architecture Board Review||[Task 1]|
|12||Team Peer Review||[Task 11]|
Hopefully this provides enough structure to keep track of key milestones, but not so much detail that I’m constantly updating the minutiae of my progress. How do your projects typically track architectural progress during a design phase?