We help your project either from its start, or by diving straight into any stage.
- Start your project right by setting its goals innovatively but realistically:
- Brainstorm a hierarchy of needs, goals, objectives (NGOs), and requirements that the project should aim to meet, and rate each by desirability.
- Cost, prioritize, and prune of all those in light of feasibility given frank estimates of your project's resources (time, people, money, technology).
- Follow a similar process to brainstorm and choose product or service solutions to meet those NGOs and requirements, by balancing desirability with feasibility. An example of a method we use for user interface design is The Bridge.
- Package those solutions into different products or services within a strategic program. Validate each package of solutions by ensuring each meets a market-demanded package of needs, via tracing the solutions up the hierarchy of requirements and NGOs.
- Allocate the features of each product or service across different releases based on both marketing strategy and development feasibility.
- Translate those goals into a feasible, flexible project plan:
- Plan development of each product's or service's release in a process that is tailored to your project, but usually is spread into several short, agile-like, iterations or sprints (i.e., within-team-releases).
- Include process and quality management to keep project risk at its chosen level, largely by reducing the need for rework. The risk level is chosen quite deliberately to suit your project's particular desired degrees of innovation, features, quality, and project speed. For example, inspection and testing become more integrated and thorough as the project progresses: implementation design review, implementation inspection, unit test, integrated test, end to end test.
- Execute that plan within budget and schedule, but revise it on the fly as appropriate. Focused, controlled, and nimble need not contradictory attributes of a project!
- Rebalance the load across development team members, constantly.
- Nimbly respond to (always!) changing circumstance -- technology impediment, budget cut, deadline moved closer, market target changes during project. But do so systematically and strategically by using the project's new infrastructure, skills, and process. Sometimes that includes iterating all the way back to brainstorming the NGOs!
- "Whitewater" process, not waterfall but not free-for-all. "The activity as a whole moves rapidly toward its goal in a messy way due to the high total energy. There is churning, surging, boiling, and even some convulsing and eddying, but if those things are kept just enough under control, the activity as a whole makes much more rapid progress than it would if enough control were imposed to keep the activity smooth."
- Push projects that are stuck at the end of one stage into the next.
- "What solutions might solve this vaguely understood market need?"
- "Which one of these great solution ideas do we try first?"
- "How do we turn this prototype into a real product?"
- "Halfway to our deadline we realized we cannot produce our original idea on schedule! How do we reach at least minimum project success by the deadline?"
- We do all the above as your team's heretofore missing impellers, facilitators, trainers, helpers, conduits, and glue.
- We do simultaneously, multiple missing portions of work that existing people on your team lack the time or experience to do: program manager, product manager, user experience researcher/designer, system engineer, development process manager, quality assurance engineer, and project manager.
- We are hybrids who augment, not replace, all those people at once.
- We are embedded consultants -- training wheels for your team.
- Initially we shoulder much of the process work ourselves, but shoulder to shoulder with your team as we gradually train them to do it.
- We create infrastructure that takes much of that load off of the people. An example is putting into the same electronic tracking system, all the team's tasks together with the hierarchy of requirements and NGOs, all of those being linked for easy bidirectional traceability and always-up-to-date project status displays.
We leave your project team much better able to rapidly ("Presto!") and continuously innovate both their products/services, and their process for conceiving and producing those -- while achieving rationally chosen levels of quality and control.
Our videos show some of our approaches in action.
- Low-tech methods (e.g., The Bridge method, sticky notes)
- High-tech methods (e.g., JIRA for requirements traceability)
- Needs, Goals, Objectives (NGOs), & requirements creating & validating
- Specifications creating & validating
- System designing
- Interaction designing
- GUI designing
Program, Project, Process Managing
- Process speeding & streamlining
- Risk managing
- Continuous managing of NGOs & requirements tied to tasks
- Team's buy-in to NGOs, requirements, tasks, & schedule
- All team members help manage
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.