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, cross-functional teams. It promotes adaptive planning, evolutionary development, early delivery, and continuous improvement, and it encourages rapid and flexible response to change. 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, also known as the Agile Manifesto, was first proclaimed in 2001, after "agile methodology" was originally introduced in the late 1980s and early 1990s. The manifesto came out of the DSDM Consortium in 1994, although its roots go back to the mid 1980s at DuPont and texts by James Martin and James Kerr et al. History Incremental software development methods trace back to 1957. In 1974, E. The Agile Manifesto Agile principles
Splitting User Stories Good user stories follow Bill Wake’s INVEST model. They’re Independent, Negotiable, Valuable, Estimable, Small, and Testable. The small requirement drives us to split large stories. But the stories after splitting still have to follow the model. Many new agile teams attempt to split stories by architectural layer: one story for the UI, another for the database, etc. This may satisfy small, but it fails at independent and valuable. Over my years with agile, I’ve discovered nine patterns for splitting user stories into good, smaller stories. (Note: As with any pattern language, I didn’t invent these patterns, I’ve just observed and compiled them. How Small? How small should stories be? When you’re in a planning meeting and you hit your trigger estimate, pull out the cheat sheet at the end of this article and try a few of the patterns until you find a good split. Which Pattern to Use You’ll often find that you can split a story using several of the patterns. Pattern #1: Workflow Steps Conclusion
Manifesto for Agile Software Development INVEST in Good Stories (French) In XP, we think of requirements of coming in the form of user stories. It would be easy to mistake the story card for the “whole story,” but Ron Jeffries points out that stories in XP have three components: Cards (their physical medium), Conversation (the discussion surrounding them), and Confirmation (tests that verify them). A pidgin language is a simplified language, usually used for trade, that allows people who can’t communicate in their native language to nonetheless work together. But what are characteristics of a good story? I – IndependentN – NegotiableV – ValuableE – EstimableS – SmallT – Testable Independent Stories are easiest to work with if they are independent. We can’t always achieve this; once in a while we may say things like “3 points for the first report, then 1 point for each of the others.” Negotiable… and Negotiated A good story is negotiable. Valuable A story needs to be valuable. This is especially an issue when splitting stories. Estimable Small Testable
The Kaizen Project Whereas the traditional "waterfall" approach has one discipline contribute to the project, then "throw it over the wall" to the next contributor, agile calls for collaborative cross-functional teams. Open communication, collaboration, adaptation, and trust amongst team members are at the heart of agile. Although the project lead or product owner typically prioritizes the work to be delivered, the team takes the lead on deciding how the work will get done, self-organizing around granular tasks and assignments. Agile isn't defined by a set of ceremonies or specific development techniques. Rather, agile is a group of methodologies that demonstrate a commitment to tight feedback cycles and continuous improvement. The original Agile Manifesto didn't prescribe two-week iterations or an ideal team size. Teams choose agile so they can respond to changes in the marketplace or feedback from customers quickly without derailing a year's worth of plans.
Planning poker Planning poker, also called Scrum poker, is a consensus-based technique for estimating, mostly used to estimate effort or relative size of development goals in software development. In planning poker, members of the group make estimates by playing numbered cards face-down to the table, instead of speaking them aloud. The cards are revealed, and the estimates are then discussed. By hiding the figures in this way, the group can avoid the cognitive bias of anchoring, where the first number spoken aloud sets a precedent for subsequent estimates. The method was first defined and named by James Grenning in 2002 and later popularized by Mike Cohn in the book Agile Estimating and Planning, whose company trade marked the term. Process The reason The reason to use Planning poker is to avoid the influence of the other participants. Equipment Planning poker is based on a list of features to be delivered and several copies of a deck of numbered cards. Planning Poker card deck
Lean Startup Early business development tool Lean startup is a methodology for developing businesses and products that aims to shorten product development cycles and rapidly discover if a proposed business model is viable; this is achieved by adopting a combination of business-hypothesis-driven experimentation, iterative product releases, and validated learning. Lean startup emphasizes customer feedback over intuition and flexibility over planning. This methodology enables recovery from failures more often than traditional ways of product development.  Central to the lean startup methodology is the assumption that when startup companies invest their time into iteratively building products or services to meet the needs of early customers, the company can reduce market risks and sidestep the need for large amounts of initial project funding and expensive product launches and financial failures. Overview Precursors Lean manufacturing Customer development Principles
Scrum 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.
Here's What The Average Tech Startup Looks Like Between reading GeekWire every day, watching the Tech Stars Seattle Demo Day pitches, seeing the latest infographic from Gist, talking to Angels and VCs, and discussions with fellow venture backed entrepeneurs, I have lately been wondering what the “average” tech startup looks like today. It is a lot smaller than I had thought. To help answer this question, I turned to the detailed information published on the Tech Stars web site. This is a treasure trove of statistics, listing 104 graduate startups, from the initial 2007 class in Boulder to the Spring 2011 classes in Boulder, Boston, and New York (including 2010 Seattle, but not the Fall 2011 Seattle graduates). Unfortunately, YCombinator and 500 Startups do not post equivalent data on their 350+ similar graduates, but 104 is quite a good sample size. First to note, is that although Tech Stars is five years old, 84 of the 104 companies listed are less than three years old. Who knew?
Agile management Agile management or agile project management is an iterative and incremental method of managing the design and build activities for engineering, information technology, and new product or service development projects in a highly flexible and interactive manner, for example agile software development. It requires capable individuals from the relevant business, with supplier and customer input. There are also links to lean techniques, Kanban (かんばん(看板)?) and Six Sigma. Agile techniques are best used in small-scale projects or on elements of a wider program of work, or on projects that are too complex for the customer to understand and specify before testing prototypes. Agile techniques may also be called extreme project management. It is a variant of iterative life cycle where deliverables are submitted in stages. Agile Methods are mentioned in the Guide to the Project Management Body of Knowledge (PMBOK® Guide) under the Project Lifecycle definition:
Viral marketing is not a marketing strategy Many times, viral marketing is seen as a “marketing strategy” that is interchangeable with other methods of acquiring users. That is, you go through three steps: Develop your productThink through a plan on how to make people use itDeclare viral marketing is one of N approaches (along with SEO, SEM, PR, etc.) Or perhaps you already have an existing product, and you have gotten interested in using a Facebook widget or something like that to make it “viral.” If you are in this boat and think of viral marketing as a compelling marketing strategy, you’re in trouble. Successful viral products don’t have viral marketing bolted on once the product has been developed. Roelof Botha, the venture capitalist that backed YouTube, says: Forget about adding “viral” to your marketing to-do list after your product is already on the market. Viral marketing is not a product feature Similarly, no single product feature determines the viral success of a business. We have product X, how do we virally spread it?
IBM Rational Unified Process The Rational Unified Process (RUP) is an iterative software development process framework created by the Rational Software Corporation, a division of IBM since 2003. RUP is not a single concrete prescriptive process, but rather an adaptable process framework, intended to be tailored by the development organizations and software project teams that will select the elements of the process that are appropriate for their needs. RUP is a specific implementation of the Unified Process. History Combining the experience base of companies led to the articulation of six best practices for modern software engineering: Develop iteratively, with risk as the primary iteration driverManage requirementsEmploy a component-based architectureModel software visuallyContinuously verify qualityControl changes a tailorable process that guided developmenttools that automated the application of that processservices that accelerated adoption of both the process and the tools. RUP building blocks
How to Get Startup Ideas November 2012 The way to get startup ideas is not to try to think of startup ideas. It's to look for problems, preferably problems you have yourself. The very best startup ideas tend to have three things in common: they're something the founders themselves want, that they themselves can build, and that few others realize are worth doing. Microsoft, Apple, Yahoo, Google, and Facebook all began this way. Problems Why is it so important to work on a problem you have? I made it myself. Why do so many founders build things no one wants? At YC we call these "made-up" or "sitcom" startup ideas. For example, a social network for pet owners. The danger of an idea like this is that when you run it by your friends with pets, they don't say "I would never use this." Well When a startup launches, there have to be at least some users who really need what they're making—not just people who could see themselves using it one day, but who want it urgently. You don't need the narrowness of the well per se.