Tech sidebar  
Personnel Management

Building a team is generally time consuming and includes reviewing resumes, coordinating with recruiters, interviewing and following up with potential candidates. However, building a team allows you to tailor the personnel to your projects needs. Some existing teams work well together, but others may need a lot of coaching. The goal is to improve an existing teams by rewarding stellar employees and setting goals for those who need motivation. Mentoring employees in interpersonal, communication and technical skills is critical to a well functioning technical team. Also critical is the ability to communicate and coordinate with other peer and higher level managers.

Program and Project Management

Shipping a product takes a lot of planning, coordination and communication. Usually some amount of formal process is necessary but the amount of process needs to be tailored to the scale of the project collaboration. Product specifications, functional requirements, use cases, detailed design and object models, test plans, and documentation plans can all be tailored depending on the level of complexity of what is to be shipped and when. We view program and project management as a focal point, someone who can coordinate requirements from Marketing, management, engineering, quality assurance and users then track those requirements through to the projects end and beyond. It is important to coordinate end user documentation and quality assurance at early phases of the development cycle. Tracking and adjusting project time lines is vital, including incorporating engineering, QA and publications estimates into the master schedule.

Design and Development

In theory, a linear development life cycle is the most efficient way of seeing a project from concept to fruition, but in reality, that almost never happens. Thus it is important to begin by accepting your software development will likely be a cyclical process. This is particularly true when human users are experience the final product. Admittedly, updating design documentation is time consuming, but it is incredibly useful for new employees as well as existing employees as they have to return to the development of a project for subsequent versions.

User Experience

Can engineers really design a product that all types of people, novice to expert, can successfully use? Quite possibly, if they are guided in using the right tools and techniques . Contextual Inquiry, participatory design, low fidelity prototypes, user studies and testing are invaluable for developing a satisfying (and non frustrating) user experience. Understanding that the user experience is not limited to how a human interacts with the computer is also critical. A holistic approach to user experiences also includes documentation, support and incorporating user defined changes into future versions of the product.

Creativity
Did you know that programming is really a creative endeavor? Communicating good technical designs necessitates using diagrams, sketches, storyboards. So a background of artistic endeavors that includes pottery, metalwork, jewelry, woodworking, landscape design, mosaics, and knitting certainly doesn't hurt.
Programming

Unlike many developers out there, we're not wedded to any one platform, operating system or language. Although we have extensive experience on PCs running Windows and DOS, Java and C/C++, we also have experience using Various/*nix, Apple Macintosh/OSX, DEC/VMS and Sun/OpenWindows platforms. Additionally we have done significant programming in Ada, Assembly, BASIC, HTML, Lisp, Modula-2, Perl, Prolog, Self, and Smalltalk. Even if you have a new and possibly esoteric language and you need some development help? We can learn it, we can help.

Mentoring

What good is knowledge if you can't share it? Over 24 years of experience in computer programming and product development is worth sharing. Helping friends and family with seemingly small computer issues is one way in which our knowledge is shared. Another is to be a resource for junior level employees - teaching and coaching them in programming skills as well as efficient design work habits.