FAQ
General
- What is UNA?
- Who should use UNA?
- What are the benefits of using UNA?
- What are the features of UNA?
- What is the difference between UNA and a version control system?
- Is UNA a replacement for version control systems?
- Is UNA compatible with agile software development?
- Is UNA designed for distance pair programming?
The UNA Paradigm
- What is the UNA Paradigm?
- Doesn't having "too many hands in the cookie jar" lead to lower quality software?
- How do I know my developers will work well in a team?
- Won't assigning several developers to one task be slower than assigning them to different tasks?
- How is using UNA different than Pair Programming?
- How many developers can collaborate at the same time?
Licensing
- How is UNA licensed?
- What are the differences between the hosted and standalone licensing options?
- Which licensing option is right for me?
Technical
- What are the system requirements for UNA?
- Can UNA compile and debug programs?
- What languages does UNA support?
- What version control systems does UNA support?
- Can I use UNA Hosted if I am behind a Firewall?
General
1. What is UNA?
UNA is a development environment for software developers that enables multiple developers to work on the same files — simultaneously and in real-time. This environment enforces peer review, collaborative design, and modular, component-based development. For more information, see the UNA Overview.
2. Who should use UNA?
UNA is targeted specifically at software developers. UNA does not support text formatting and therefore is not suitable to use as a collaborative word processor. Software development instructors may find UNA helpful in teaching software development principles, since UNA includes a built-in moderator project role that can be used for moderation of students.
3. What are the benefits of using UNA?
Briefly, they are increased code quality, decreased defects, automatic knowledge-sharing, elimination of bottlenecks, greater productivity, reduced maintenance costs, and shorter time-to-market.
See the Overview page for more information.
4. What are the features of UNA?
UNA has numerous features, including real-time collaborative editing, per-project, per-user customization of project roles, integrated whiteboard and chat to facilitate collaboration, syntax highlighting, regular expression-based search and replace, powerful tool support, auto-completion, and all other standard features of text editors.
See the Features page for more information.
5. What is the difference between UNA and a version control system?
In a version control system, developers work on copies of a document. They can work on these copies at the same time, but they are working on different documents. Later, the version control system is capable of merging the different copies into one document, as long as the developers haven't made changes to the same lines of code.
In UNA, developers edit the same document in real-time. So while UNA encourages multiple developers to work on the same piece of code simultaneously, a version control system strongly discourages it. Therefore, version control systems provide none of the advantages of UNA (even though they are important for other reasons).
6. Is UNA a replacement for version control systems?
No. Although UNA enables developers to edit the same document at the same time, UNA is not a replacement for version control systems. UNA is designed to function in combination with a version control system. A version control system is necessary to isolate development code from production code, to provide powerful reversion features, to enable developers to put feature development on hold while they fix critical defects in the software, and to enable large-scale (but non-real-time) collaboration.
7. Is UNA compatible with agile software development?
Yes. UNA is the tool of choice for agile software development and evolutionary design. UNA takes Pair Programming to a whole new level, by enabling pairs of developers to work jointly on the same piece of code, and by extending the concept to more than two programmers.
8. Is UNA designed for distance pair programming?
UNA handles distance pair programming with ease, but this is not its primary application. UNA is an alternative to pair programming, designed to be used both by people working in the same building, and by distributed teams separated by continents. For more information, read about the differences between UNA and pair programming.
The UNA Paradigm
1. What is the UNA Paradigm?
The UNA Paradigm can be summed up in the phrase "quality through collaboration". It is a way of developing software that emphasizes the importance of real-time collaboration as a means of decreasing software defects and increasing productivity.
2. Doesn't having "too many hands in the cookie jar" lead to lower quality software?
With Version Control Systems, this is true, since developers working in the same area of code will make changes that are incompatible or poorly integrated with the changes other developers are making. With UNA, since all developers in a project (a subcomponent of the application) are working together on the same task, at the same time, adding another developer only increases the speed and quality of the development process.
3. How do I know my developers will work well in a team?
Most developers find that after an initial introductory period, they actually prefer working with other developers, because it is more mentally stimulating than working alone. However, since UNA seamlessly interfaces with version control systems, it is possible for "lone wolves" to work without impacting those working in a team using UNA.
4. Won't assigning several developers to one task be slower than assigning them to different tasks?
Published research done by Dr. Laurie Williams at North Carolina State University shows that when two developers work together on a single task, they get it done in half the time (i.e. no more man-hours), with half the defects. Experience shows an even greater benefit with UNA, since all developers can simultaneously contribute to the development process.
5. How is using UNA different than Pair Programming?
Programming with UNA is a logical extension of pair programming, and differs in the following important ways:
- Pair programming is bandwidth-limited by the navigator, but with UNA, all developers are free to work simultaneously on the same piece of code.
- Many developers who are uncomfortable with pair programming work well with UNA, because they don't have to leave their familiar working spaces or comfort zones.
- UNA equalizes the balance of power, preventing the driver from monopolizing development, and preventing the navigator from becoming bored.
- Team members work together seamlessly, whether they are located down the hall or in a different country.
- Customization of project member roles allows enforcement of quality practices.
- Chat and whiteboard history are preserved for later review, so key discussions are never forgotten.
- UNA automatically tracks key statistics, such as percentage of time spent collaborating, which are difficult to obtain from traditional pair programming.
- UNA enables more than just two programmers to work together.
6. How many developers can collaborate at the same time?
Although UNA imposes no hard limitation, we recommend two to five developers per UNA project, depending on the context. There is no limit to the number of UNA projects, and therefore, no limit to the size of an application that can be developed with UNA, if developers are properly broken down into small teams.
Licensing
1. How is UNA licensed?
Currently, UNA is licensed as a Standalone application, in which you are responsible for hosting UNA Server and your projects. However, we expect to offer a hosted license sometime toward the latter half of 2008. See Licensing and Pricing for more information.
2. What are the differences between the hosted and standalone licensing options?
The standalone option requires that you have a dedicated machine to install and configure both the UNA Server software, and the applications that it requires. This machine must be running at all times you wish to use UNA Standalone. For this option, you receive free minor updates to UNA Standalone and the UNA Server software.
For standalone customers that do not have their own server, we are partnering with PowerVPS to provide a virtual dedicated server for $150/month.
The hosted license, which we expect to be available toward the latter half of 2008, will require only that you run the UNA Hosted on the machines on which you wish to use UNA Hosted. Our partner will be responsible for configuring and hosting the UNA Server software on its servers. For this option, you receive free major and minor updates to UNA Hosted throughout the term of your licensing agreement.
For more information about the differences between the hosted and standalone licensing options, see the Licensing and Pricing page.
3. Which licensing option is right for me?
For completely distributed teams, the hosted license is generally the easiest choice. For deployment in corporate environments, the standalone license is superior.
Technical
1. What are the system requirements for UNA?
UNA requires a networked computer running Windows, Linux, Mac OS X (10.4 or later), or Solaris, with at least 1 GB of disk space and 1 GB of system RAM. UNA Server requires 2 GB of RAM and 2 GB of disk space.
2. Can UNA compile and debug programs?
No, UNA does not have a built-in compiler or debugger. However, you can execute command-line tools and view the results of those tools from within UNA. You can even add common tools to the menu, to make compiling as easy as clicking a menu option or invoking a keyboard shortcut.
For those jobs where collaboration is not essential, UNA's native support for version control systems means that switching between UNA and your existing workflow tools is as easy as checking code in and out.
3. What languages does UNA support?
UNA has built-in syntax-highlighting for all common computer languages, including C, C++, C#, Java, Ruby, Visual Basic, Delphi, PHP, Perl, HTML, Python, and many others. You can easily add syntax-highlighting profiles for other languages using XML syntax definition files.
4. What version control systems does UNA support?
UNA natively supports CVS, Subversion, and Perforce. We will support other version control systems as necessary.
5. Can I use UNA Hosted if I am behind a Firewall or Proxy?
Proxies are supported by UNA Hosted. To use UNA Hosted with a Firewall, you must either disable your Firewall or configure it to allow two-way communication between UNA and UNA Server.
| Continue |