Tuesday 11 June 2013

Synetec’s quick guide to software development buzzwords



Synetec’s quick guide to software development buzzwords

“There are two ways of constructing a software design: One way is to make it so simple that there are obviously no deficiencies, and the other way is to make it so complicated that there are no obvious deficiencies. The first method is far more difficult.” -C.A.R. Hoare

We’ve all sat in team meetings or conferences being bombarded with technical terms or buzzwords which we’ve never heard before. If we’re honest with ourselves, the IT team are amongst the worst offenders. Coding might be it’s own language but that is no excuse for adding so many terms to the dictionary. So here is Synetec’s short guide to 10 often misunderstood software terms.

1. Agile development
Agile Teams produce software in small stages, keeping code simple, testing it frequently often, and delivering small, functional pieces of the application as soon as they're ready. The focus is to build a succession of parts, rather than delivering one large application at the end of the project.

2. Extreme Programming
Extreme programming is a type of agile development that involves a pragmatic approach to program development. It places emphasis on delivering business results first while taking an incremental approach to building the product.

3. Feature creep
Feature creep is one of the biggest factors in time and cost overruns. It describes changes to scope of the project, usually adding news features beyond the original brief. These additional requirements can result in a significant impact to final cost, quality and schedule of the project.

4. Genetic programming
In artificial intelligence, genetic programming (GP) is an evolutionary algorithm-based methodology inspired by biological evolution to find computer programs that perform a user-defined task.

5. Pasta Theory of Programming
The pasta theory of programming refers to the idea that various programming structures are like pasta dishes. An unstructured procedural programming is called spaghetti code, while a more structured and layered programming is called lasagna code, while object-oriented programming is named the ravioli code.

6. Pair programming
Pair programming is an agile software development technique in which two programmers work together at one workstation. One, the driver, writes code while the other, the observer or navigator, reviews each line of code as it is typed in. The two programmers switch roles frequently.

7. Scrum
Scrum is an iterative and incremental agile software development framework for managing software projects and product or application development. Its focus is on "a flexible, holistic product development strategy where a development team works as a unit to reach a common goal" as opposed to a "traditional, sequential approach".

8. Scrum master
The scrum master is accountable for removing impediments to the ability of the team to deliver the sprint goal/deliverables. The Scrum Master is not the team leader but acts as a buffer between the team and any distracting influences. The Scrum Master ensures that the Scrum process is used as intended. The Scrum Master is the enforcer of rules.

9. Shotgun debugging
Shotgun debugging refers to the debugging of a program, hardware, or system problem by attempting multiple possible solutions at the same time in the hope that one of them will work.

10. Sprint backlog
Part of the scrum methodology, at the beginning of each sprint, the team has sprint planning with an end result being a backlog of work that the team anticipates completing at the end of the sprint.

11. Waterfall model
The waterfall model is a sequential design process, often used in software development processes, in which progress is seen as flowing steadily downwards through the phases of Conception, Initiation, Analysis, Design, Construction, Testing, Production/Implementation, and Maintenance.

12. WIP
WIP refers to Work in Progress and is any work that has been started but has yet to be completed. WIP meetings usually involve all stakeholders to ascertain degrees of progress against set objectives.

No comments:

Post a Comment