When I started my current job back in February one of the first things I noticed was that I didn’t speak the language. It wasn’t that I was a stranger to acronyms – the Boy Scouts are quite fond of them – but these were new and strange letter combinations accompanied by words I was not accustomed to hearing. So I decided to start a little dictionary and felt this would be a great place to share it.
This is actually the model of software development we work off of, so it’ll get more detail than Waterfall. It was actually developed as a reaction to the Waterfall model and is based on the Agile Manifesto. Instead of trying to approach the entire project as one large piece of work it is divided into smaller chunks of work. The larger project is put into the format of a vision and these smaller pieces are put through the entire requirements/design/coding/testing gamut in a boxed period of time called an iteration. Sometimes these smaller pieces of work can be released on their own, whereas other times they are released as a whole when the vision is concluded.
This method has something of a cyclic nature. More like a rapid than a waterfall. Instead of each section being completed then not touched again as it goes the process things like testing and design are incorporated all the way through so that problems can be discovered and addressed early and quickly.
Plain text interface is where interactions with the computer occur through written lines of text – no graphics. This term was not entirely new as I used to play in DOS as a child, but it disappeared from my vocabulary until I began working with Linux loving developers.
When most girls talk about committing they’re referring to marriage, but here to commit is to add completed code work back into the main project’s code base. While this is a common occurrence it can occasionally lead to being hosed. Thank goodness for the ability to revert to a previous state.
GUI (Graphic User Interface)
Pronounced ‘gooey’, this always makes me think of warm chocolate chip cookies. In reality, it’s what you’re used to seeing on the screen of your computer if you’re not a Linux user. Unlike command line which is totally text based, GUI uses a graphical interface to let you communicate with your computer.
HCI (Human Computer Interaction)
This is actually the field of work which preceded User Experience Design and studies the interaction between, you guessed it, humans and computers.
Basically, you’re out of luck. If something is ‘hosed’ it is completely and utterly broken down. Good luck if you need anything from it in the near future. The term does exist in Urban Dictionary if you’d like further examples.
IA (Information Architecture)
The underlying structure and organization of a website. This has close ties to library science and shares a lot of similarities since its all about organizing information so that it can be found and understood.
In the greater world and according to Webster’s this is usually used in relation to something like a speech impediment, but here is it is more closely tied to the verb ‘impede’ which is ‘to interfere with or slow the progress of’ so an impediment is anything that gets in the way of work being completed.
A measurement used to represent a pre-determined period of time during which work is done and reviewed. The goal is to have a working piece of software at the close of a sprint.
NUI (Natural User Interface)
The most recent development in interfaces, this is supposed to mimic the natural world closely enough so that it becomes intuitive. Examples of this can be seen in the various touch screens out there which allow you to interact with them via ‘gestures’ like ‘dragging’ something across the face of an iPad or iPhone.
So this particular entry is a bit of a joke for my co-workers. I’ve long been familiar with this typeface, but due to it’s recent rise in importance it was felt this should be included in this list. To the developers delight it is the bane of Lisa’s existence and has become and ongoing source of joking and pranking in the office. If you ask the devs, it is all that is right and glorious in the world even if there are occasionally consequences to this sentiment.
Originally this stood for ‘personal home page’ when it appeared on the scene in 1995 and is a general scripting language. In essence it’s a way to write web pages that do things. Now that I know it exists I see it pop up all over the place, but it seems to garner mixed responses around here. It may not be PHP’s fault though. It could just be getting a bad rap due to some old code the guys have to clean up.
Is not only a snake after all. It is another programming language that is supposed to be highly readable and has caused much excitement amongst the guys I work with. It was originally developed in the 80s and has had updates in 2000 and 2008. Apparently it makes you fly as well.
According to Wikipedia, it ‘is an iterative, incremental framework for project management and agile software development.’ Basically it’s a development team who have a Product Owner to represent the stakeholder and a ScrumMaster to maintain the processes. In our office those two roles are mostly combined.
The biggest thing (to me) with scrum is the three forms of review incorporated in it. Daily Scrum is within the team every morning reviewing the previous days work, plans for the current day and work impediments. Scrum review is presenting work completed in a sprint to the company at large. Then there’s the retrospective that is again within the team.
A model of software design that is sequential starting with requirements and ending with installation and maintenance. Each piece of the process is completed in its entirety before moving onto the next one.
Letting the code out in the great wild world. A release is when all the project work is done tested and shared with those who use the program it was intended for. In terms of software there is usually a ‘beta’ release which goes out to some folks who are will to test it to see how it functions beyond our walls and then, assuming all remains well, a general release which includes anyone else with the software.
In other words, whenever you get a notification to update your web browser (like Firefox or Chrome) or an app on your iPhone/iPod touch that means that the folks who are working on the software for that product have put out a new release for it.
A regularly held meeting (usually at the end of a sprint) where the team discusses what was good, bad and needs to change since the last retro. At the close of the retro items are starred and assigned to be completed as well as there being a review of the previous retro’s stars to see if all of that work was completed.
UX (User Experience)
I have tried to find a simple explanation for my job and failed, but I will come back with a better description in a post just on this subject. My friend Zach says that UX is about ending suffering in regards to technology. I usually describe it as that I work with the development team to make sure that the things we make can be used by actual people.
UI (User Interface)
Tied in with the field of HCI, the user interface is the place where the actual interaction between human and computer occur.
The overall goal of the current development project which contains the key points of what is to be achieved by the completion of the project.
This is a communal work area, also sometimes known as a Bull Pen, which is common practice in Agile to increase face to face communication. Communication, of course, can include many varied and entertaining things. In our case it is a communal cubicle and we do call it the War Room. It even has its own twitter feed – @InTheWarRoom – which documents some of these entertaining communiques.
I’ve hit that point now where I don’t even realize how much I’ve learned by immersion so I’m sure there are terms I’ve missed. Feel free to include terms that probably should have been included in the comments below (or ask about ones you’re curious about).