Systems Engineering (SE) has a
key role in building complex systems to satisfy customers. Using a Wiki offers several advantages to performing Systems Engineering effectively and efficiently. There are, however, possible issues with a Wiki that require managing the data.
Systems Engineering: A Primer and Some Data Problems
SE comprises practices that ensure the system delivered to a customer satisfies their needs. While the practice of SE on development projects is standard, it applies just as well to operations and maintenance situations. Two of the standard texts on Systems Engineering include Eisner’s Essentials of Project and Systems Engineering Management (2008) and Blanchard & Fabrycky’s Systems Engineering and Analysis (2010).
People use complex systems and these complex systems seek to satisfy hundreds of customer requirements. Systems Engineering tracks these so that every requirement is either satisfied by the system or the customer knows that it is not and why.
Some of the fundamental attributes of SE include:
- Traceability: The Systems Engineer can trace a customer requirement to evidence that the system meets that requirement. Each customer requirement points to a preliminary design, which points to a detailed design, which points to an implementation, which points to a test plan, which points to a test procedure, which points to a test report. A Requirements Verification Traceability Matrix contains these “points to” or links.
- Interfaces: The Systems Engineer ensures that the different parts of the system connect to one another properly. The Systems Engineer defines the functions of each component and the interfaces for that component. These interfaces can be both physical and logical.
- Completeness: The Systems Engineer ensures that everything in the system has a purpose, i.e., each part of the system is necessary to meet a customer requirement. The Systems Engineer also ensures that there are no extra parts to the system, such as if a part is not necessary to meet a customer requirement, it is removed.
In SE, the project team creates and maintains all the data needed to specify, build, and test the system. These data describe the customer’s requirements, translate them into technical specifications, describe how to build and test components to meet the requirements, and so on. Hence, the data are predominantly text written by the Systems Engineering team.
The traditional approach to capturing all these data is via separate documents, e.g., Microsoft Word files. That approach can succeed as time has shown. It also has its problems. One problem is maintaining a set of files that can have several dozen versions each. Document software products, such as Microsoft Word, have features that track versions. Content Management Systems also aid in tracking many files and many versions. Still, the users – those engineers, programmers, and testers – who create the data must master these tools.
Another problem is the collisions of persons entering data. It is rare that only one person on a project needs to see and edit a single, large Requirements Specification. Again, Content Management Systems can reduce collisions or at least let persons know that others are already editing a document. The users have to peek around the cubicles and schedule times when the can have the document.
Using a Wiki in Systems Engineering
A Wiki helps solve many of the problems encountered with the traditional approach of using separate document files to contain the Systems Engineering data.
First, everyone can see all the data at any time. The data are contained on pages or entries in the Wiki and, thus, are visible. The data often contain questions or problems such as, “the temperature spec from the government standard is unknown as the government environmental spec is missing.” When everyone can see everything, there are many eyeballs on the problems and solutions are quicker to appear.
Along with being able to see the data, everyone can contribute to the data. Correcting problems, as described above, is only one type of adding data. Another is adding new knowledge as in, “I’ve reviewed this test plan, but the team on the last project used a different approach that saved time, and here it is.” That addition need not come from the official Test Plan Writer. It can come from anyone on the team at any time.
Seeing the data reduces wasted time in team meetings. A fundamental task in team meetings is to review the status of the project. With a Wiki, each team member can review the status of the project independently. Persons can tag Wiki data with status labels such as COMPLETE, IN-WORK, ON-TIME, TBD, etc. A team member can see the schedule data quickly freeing team meetings to concentrate on solving problems.
In essence, the Wiki technology helps make everyone smarter. No one can remember all the data, but that is not necessary. The Wiki allows the team to link and tag all the data so that it is easier to find.
Managing the Data
The Wiki is not a perfect tool; it requires managing the data. Two common problems encountered when using Wikis are (1) errors and (2) editorial wars. The team members using the Wiki in SE are human and prone to error. Only another person can detect an error in the Wiki data. As noted earlier, allowing everyone to see everything increases the speed of detecting and correcting the errors.
Errors, however, are sometimes a matter of opinion. Consider the frequent customer requirement that a system be “easy to use.” A designer enters a design to meet that requirement. Everyone on the team sees the design, and people change the design to meet their interpretation of the requirement. The original designer disagrees and changes the data to reflect the original design. People see their edits changed, so they change the design again. Soon, the team is consumed in an editorial war.
Error correction and re-correction, and editorial wars have a common attribute: frequent changes. Data managers can note these frequent changes with the What-is-New feature of the Wiki listed below.
Managing these two, and other, issues with Wikis can be difficult, but the task is not impossible.
First, establish policies governing the use of the Wiki in SE. State what team members will be expected to do with the Wiki. Also, state the importance of the Wiki to the SE effort. The cute name “Wiki” may fool persons into thinking that the Wiki is merely an electronic white board for scribbling ideas rather than a tool that defines the system. And do not forget to state the Wiki etiquette expected from all team members.
Second, educate and lead the people using the Wiki in Systems Engineering. Explain the policies; teach the use of the Wiki – they all operate a little differently and the syntax needed is definitely different. Data managers should use the Wiki themselves to understand its capabilities and monitor its use by the team.
Finally, choose an appropriate Wiki package for the team. There are many capable Wiki packages that are free to download and install. They are not, however, free to maintain as they require system administration. Commercial, i.e., pay money to obtain, Wiki packages may have a lower total cost of ownership when considering the technical support that saves system administrator hours.
There are several features of the Wiki that enable better Systems Engineering. These include:
- Tags: The ability to tag data with a useful keyword. This enables displaying similar data quickly.
- Search: Anyone can search for any word or phrase in the data.
- Links: Any data can point to any other data. This includes many-to-many links.
- History: Anyone can see who made what edit and when.
- What is New: Anyone can see the latest activity in the Wiki.
- Export: The Wiki can export data to standard reports and other documentation formats.
- Attribution: The Wiki requires the users to identify themselves before adding to or changing data.
One of the best-known Wiki packages is MediaWiki. It is the engine that runs Wikipedia – the most-used Wiki in the world. There are dozens of other Wiki packages that are open-source and commercial. It is not surprising, but each package has some advantages over MediaWiki and some disadvantages. (See this link for one listing of the Top Ten Wikis.)
Systems Engineering plays an important role in delivering complex systems that satisfy customers. Critical to SE are the data created and maintained by team members. A Wiki can provide features that help with the data, but the Wiki approach only works if the data are managed properly.