- Low-tech methods (e.g., The Bridge method, sticky notes, index cards)
- High-tech methods (e.g., JIRA for requirements traceability)
- We become part of your team, actively engaged
- System designing
- Interaction designing
- GUI designing
- Needs, Goals, Objectives (NGOs) creating & validating
- Requirements creating & validating
- Specifications creating & validating
- Integrating design & development of software with hardware
Program, Project, & Process Managing
- Roadmap creating & validating (for program or project)
- Process managing
- Development process streamlining
- Integrating across projects within a program
- Risk and dependency identifying and managing
- Bidirectional tracing up and down the tangled hierarchy of NGOs, requirements, specifications, and tasks.
- Live, continuous managing of NGOs & requirements as part of managing tasks & schedules
- Co-locating of us with your team members, so we can connect the dots
- Improving team communication
- Evolving team culture
- Improving group dynamics
- Getting team's buy-in to the NGOs, requirements, tasks, & schedules
- Getting every member of the team to proactively contribute to managing the project
We act as glue and conduits within your project team. We work truly inside the team, co-located, shoulder to shoulder, actively engaged as continuous collaborators rather than mere advisors or lecturers. We overhear casual conversations that let us connect the dots across team members and across stages of the project. We overhear someone while we are walking behind them down the hall, which seems related to something we overheard wafting over the top of a cubicle, which causes us to drag those two people together for a two-minute conversation so we all can decide that work on a requirement should be transferred from Person A to Person B who already is working on a related requirement. Then we show those two people how (often also prodding them) to update the electronic tracking system of requirements (e.g., JIRA) to reflect that change. We are able to serve as glue and conduits because we do portions of many other people's jobs:
We do portions of several roles simultaneously: program manager, product manager, project manager, product marketer, scheduler, system engineer, interaction designer, lead developer, technical writer, quality assurance lead, and tester / quality engineer. We do only the portions of those roles that usually don't get done, because the people formally assigned to those roles lack the time or expertise. Examples:
- Most project managers in large companies, or of project teams with more than 10 members, spend all of their time dealing with the project's finances, interacting with the project's funders, meeting with the sub-leads of the project, creating reports for upper management, and managing more than one project at a time. They do not have time to sit among the developers, overhearing their conversations, talking with them all day long, and reading all the changes in the requirement and task electronic tracking system. Even if they did have time, many of them lack sufficient knowledge of system engineering, software developing, or quality assuring to be able to glean We do some or even most of those latter activities in place of the project manager, collaborating with the project manager and others.
- Many software development leads are required to spend so much of their time coding (due to lack of sufficient developer labor on the project) that they do not spend enough time assigning and reassigning tasks to developers by scrupulously and continuously balancing the load among them, monitoring the electronic tracking system, collaborating with the master scheduler, and reporting to the project manager and other managers. We do portions of all that work, collaborating with the development lead and others.
We help your team transition across project stages systematically, strategically, and efficiently. We help your team within any or all stages of innovation and development--brainstorming, needs-goals-objectives (NGOs) creating, requirements creating, system engineering, designing, process managing, project managing, and quality assuring. But many teams have special trouble transitioning across those stages. We drive and facilitate your team in estimating the desirabilities of the NGOs and requirements, and estimating the costs of the multiple possible solutions (labor, money, time, etc.)--costs not just in that stage, but costs throughout later stages too. With those bases, the team down-scopes, prioritizes, and schedules the NGOs, requirements, and tasks. We drive and facilitate the team reviewing and revising all that (more or less, as appropriate) continuously throughout the project, thereby avoiding the shock of discovering only at the end of this stage that the current plan for the remaining stages "suddenly" is too risky.
We enforce traceability downward through needs, goals, objectives, requirements, specifications, and tasks--and back up that chain. We force and facilitate the team's enforcement and recording of bidirectional traceability, starting in the participatory sessions with low-tech materials (index cards and sticky notes). We transcribe that traceability into the electronic tracking system (e.g., JIRA). All work done by anyone must be traceable all the way up the chain to a Need, and all the elements in that chain must be high enough priority to justify that work being done at that particular time. That traceability is a key to the work we described in the previous section ("We help your team transition across project stages....")
We are training wheels for your team. We do not intend to be permanent members of your team. We drive and facilitate your team to evolve its culture. We help the team design its better process to suit the particular characteristics of that project and its members. We motivate them to change their process and to follow the new one, by demonstrating how the new process benefits not just the project but them individually. For example, developers do not like to be faced with bugs in code they wrote months ago; they are happier if the bugs are avoided by the requirements and specifications being clear and sensible, by that code's relationships to other code being clear, and by bugs being found during immediate code design and code inspections, unit tests, and nearly-immediately executed integrated tests. We work ourselves out of your project, by creating labor-reducing project infrastructure and processes, demonstrating their use by actually using them as real workers on the team, training your team members to use all that, and smoothly moving our tasks onto your team members.