background preloader

Extreme Programming

Extreme Programming
Planning and feedback loops in extreme programming. Extreme programming (XP) is a software development methodology which is intended to improve software quality and responsiveness to changing customer requirements. As a type of agile software development,[1][2][3] it advocates frequent "releases" in short development cycles, which is intended to improve productivity and introduce checkpoints at which new customer requirements can be adopted. Critics have noted several potential drawbacks,[5] including problems with unstable requirements, no documented compromises of user conflicts, and a lack of an overall design specification or document. History[edit] Although extreme programming itself is relatively new, many of its practices have been around for some time; the methodology, after all, takes "best practices" to extreme levels. Origins[edit] The first time I was asked to lead a team, I asked them to do a little bit of the things I thought were sensible, like testing and reviews.

Opinion: Students, Version Control! [Insomniac Games designer Lisa Brown presents an informative primer on version control software for students, offering a crash course, tips, and useful resources, in this #altdevblogaday-reprinted opinion piece.] Here's one for all the students out there. Since I'm still relatively fresh out of grad school (though I don't know when one starts ripening, honestly), I often have students approach me with questions about what they need to do/learn/etc. that will help them get into game development. I try as much as I can to remember the state of not-knowing I had before, which is difficult to do as what once were new insights turn into normal routine. The other day I was futzing around on the internet, trying to find if there was a way to integrate Devtrack and Perforce, when a thought hit me so hard that I nearly fell out of my chair! I feel like that's probably the case with most game developers who use version control every day. What's Version Control? Making the Transition Resources

Scrum (development) Scrum is an iterative and incremental agile software development framework for managing product development. It defines "a flexible, holistic product development strategy where a development team works as a unit to reach a common goal", challenges assumptions of the "traditional, sequential approach" to product development, and enables teams to self-organize by encouraging physical co-location or close online collaboration of all team members, as well as daily face-to-face communication among all team members and disciplines in the project. A key principle of Scrum is its recognition that during a project the customers can change their minds about what they want and need (often called "requirements churn"), and that unpredicted challenges cannot be easily addressed in a traditional predictive or planned manner. Later, Schwaber with others founded the Scrum Alliance and created the Certified Scrum Master programs and its derivatives. Each sprint is started by a planning meeting.

Git - Fast Version Control System Agile software development Agile software development is a set of principles for software development in which requirements and solutions evolve through collaboration between self-organizing,[1] cross-functional teams. It promotes adaptive planning, evolutionary development, early delivery, and continuous improvement, and it encourages rapid and flexible response to change.[2] Agile itself has never defined any specific methods to achieve this, but many have grown up as a result and have been recognized as being 'Agile'. The Manifesto for Agile Software Development,[3] also known as the Agile Manifesto, was first proclaimed in 2001, after "agile methodology" was originally introduced in the late 1980s and early 1990s. History[edit] Incremental software development methods trace back to 1957.[6] In 1974, E. The Agile Manifesto[edit] In February 2001, 17 software developers[12] met at the Snowbird resort in Utah to discuss lightweight development methods. Agile principles[edit] Evolutions[edit] Overview[edit] RAD[edit]

Features - Game Design Methods: A 2003 Survey At the Game Developers Conference this week in San Jose, two roundtable discussions [20] will be dedicated to the topic of "game design methods" - that is, methods for planning and defining gameplay. To set the stage, this article presents a cursory overview of past and present efforts to define structured, formal game design methods. Some of the proposals referenced here were originally started several years ago, others were conceived as recently as a few months ago. The Aim Of Game Design Methods Compared with the vast body of operational knowledge found in the world of filmmaking, the game design community is just beginning to articulate the concepts and techniques specific to our medium in order to establish methods of game design. Relate to game design. This article focuses on design - how to plan and define gameplay, and how to make it work. What are the equivalents of script or storyboard for game pre-production? Game Design Documents

Kanban This article is about the process management and improvement method. For the lean manufacturing process, see Kanban. Kanban in the context of software development can mean a visual process management system that tells what to produce, when to produce it, and how much to produce inspired by the Toyota Production System[1] and Lean manufacturing.[2] The name 'Kanban' originates from Japanese[看板], and translates roughly as "signboard" or "billboard". It was formulated by David J. Anderson[3][4] as an approach to incremental, evolutionary process and systems change for organizations. Start with existing process The Kanban method does not prescribe a specific set of roles or process steps. Agree to pursue incremental, evolutionary change The organization (or team) must agree that continuous, incremental and evolutionary change is the way to make system improvements and make them stick. Respect the current process, roles, responsibilities and titles Leadership at all levels 1. 2. 3. 4.

Do Ocracy A do-ocracy (also sometimes do-opoly, which is a more obvious pun on “duopoly”) is an organizational structure in which individuals choose roles and tasks for themselves and execute them. Responsibilities attach to people who do the work, rather than elected or selected officials. The term is popular with libertarian management afficionados and BurningMan? participants. It also has a Zen nature that can be hard for some people to fathom. “Why is it Lion who posts so many big ideas on CommunityWiki?” A do-ocratic example: 30 people are going to Burning Man and camping together. A new campmate may grumble, “Jeez, why does Mary get to decide what everyone eats and when they work? A second example: in a medium-sized corporation, the IT group has become ossified and unresponsive to their users’ needs. Things come to a head when one of IT’s star 36-month projects is cancelled because “the app those guys in Marketing did for us is good enough.” Necessary conditions Stakes are low. Contrast Wow!

Scrum – Beginners Guide To Scrum Scrum is an agile way to manage a project, usually software development. Agile software development with Scrum is often perceived as a methodology; but rather than viewing Scrum as methodology, think of it as a framework for managing a process. In the agile Scrum world, instead of providing complete, detailed descriptions of how everything is to be done on a project, much of it is left up to the Scrum software development team. This is why in Scrum development, for example, a sprint planning meeting is described in terms of the desired outcome (a commitment to a set of features to be developed in the next sprint) instead of a set of Entry criteria, Task definitions, Validation criteria, Exit criteria (ETVX) and so on, as would be provided in most methodologies. Scrum relies on a self-organizing, cross-functional team. And in Scrum, a team is cross functional, meaning everyone is needed to take a feature from idea to implementation. The product backlog is another artifact of Scrum.

Cross-functional team A cross-functional team is a group of people with different functional expertise working toward a common goal.[1] It may include people from finance, marketing, operations, and human resources departments. Typically, it includes employees from all levels of an organization. Members may also come from outside an organization (in particular, from suppliers, key customers, or consultants). Cross-functional teams often function as self-directed teams assigned to a specific task which calls for the input and expertise of numerous departments. Assigning a task to a team composed of multi-disciplinary individuals increases the level of creativity and out of the box thinking. Effects[edit] Less unidirectional[edit] Up until recently, decision making flowed in one direction. Greater scope of information[edit] Cross-functional teams require a wide range of information to reach their decisions. Greater depth of information[edit] Greater range of users[edit] Less goal dominated[edit] See also[edit]

Lean Lean software development (LSD) is a translation of lean manufacturing and lean IT principles and practices to the software development domain. Adapted from the Toyota Production System,[1] a pro-lean subculture is emerging from within the Agile community. Origin[edit] The term lean software development originated in a book by the same name, written by Mary Poppendieck and Tom Poppendieck.[2] The book presents the traditional lean principles in a modified form, as well as a set of 22 tools and compares the tools to agile practices. Lean principles[edit] Lean development can be summarized by seven principles, very close in concept to lean manufacturing principles: Eliminate waste[edit] In order to eliminate waste, one should be able to recognize it. A value stream mapping technique is used to identify waste. Amplify learning[edit] Software development is a continuous learning process with the additional challenge of development teams and end product sizes. Decide as late as possible[edit]

activeCollab - Project Management and Collaboration Tool Agile Architecture: Strategies for Scaling 1. Towards Agile Architecture Architecture provides the foundation from which systems are built and an architectural model defines the vision on which your architecture is based. The scope of architecture can be that of a single application, of a family of applications, for an organization, or for an infrastructure such as the Internet that is shared by many organizations.Regardless of the scope, my experience is that you can take an agile approach to the modeling, development, and evolution of an architecture. Here are a few ideas to get you thinking: There is nothing special about architecture. 2. Figure 1. Figure 2 depicts the agile/basic lifecycle described by the Disciplined Agile Delivery (DAD) framework. Figure 2. An alternative to this light-weight approach to initial architecture modeling, is to attempt to define your architecture completely before implementation begins. 3. This question is more complex than you think. Sometimes people don't agree. 4. 5. Figure 3. Figure 4. 6.

Project management software, online collaboration: Basecamp

Related: