https://www.mountaingoatsoftware.com/
Related: Agile software development • cdeeganMike Cohn Mike Cohn, 2013 He has served as Vice President of Development at four different companies that successfully employed agile concepts and strategies and been a technology executive in companies of various sizes, from start-up to Fortune 40. Cohn is the author of Agile Estimating and Planning, User Stories Applied for Agile Software Development and Succeeding with Agile: Software Development using Scrum, as well as books on Java and C++ programming[4] and articles for Better Software, IEEE Computer, Software Test and Quality Engineering, Agile Times, Cutter IT Journal, and the C++ Users' Journal. He is also the editor of the Addison-Wesley Mike Cohn Signature Series of books. Cohn was a Keynote Speaker on ADAPTing to Agile for Continued Success at the Agile 2010 Presented by the Agile Alliance.[5] In 2012, Cohn was named #1 in The Top 20 Most Influential Agile People.[6]
Architecture Envisioning: An Agile Best Practice A common agile practice is to perform some high-level architectural modeling early in the project to help foster agreement regarding your technical strategy within the team and with critical stakeholders. The goal at this point is to identify an architectural strategy, not write mounds of documentation, enabling you to do this swiftly. You will work through the design details later during development cycles in model storming sessions and via TDD. This article addresses several critical questions: 1.
Disciplined Agile Delivery: A Practitioner’s Guide to Agile Software Delivery in the Enterprise The Disciplined Agile Delivery (DAD) process framework, as described in this book, is a hybrid approach which extends Scrum with proven strategies from Agile Modeling (AM), Extreme Programming (XP), and Unified Process (UP), amongst other methods. DAD extends the construction-focused lifecycle of Scrum to address the full, end-to-end delivery lifecycle from project initiation all the way to delivering the solution to its end users. The DAD process framework includes advice about the technical practices purposely missing from Scrum as well as the modeling, documentation, and governance strategies missing from both Scrum and XP. More importantly, in many cases DAD provides advice regarding viable alternatives and their trade-offs, enabling you to tailor DAD to effectively address the situation in which you find yourself.
Agile Community Content on InfoQ Research on Agile What are the most widely used .NET practices and tools? This InfoQ Research item examines the adoption level of a range of practices and tools that aim to assist .NET developers in these practices. Note that we have focussed only on these practices - there are other tools such as reflectors, productivity tools, frameworks etc. which we are not covering in this research.
Principles behind the Agile Manifesto We follow these principles: Our highest priority is to satisfy the customer through early and continuous delivery of valuable software. Welcome changing requirements, even late in development. Agile processes harness change for the customer's competitive advantage. Deliver working software frequently, from a couple of weeks to a couple of months, with a preference to the shorter timescale.
UML 2 Activity Diagrams: An Agile Introduction UML 2 activity diagrams are typically used for business process modeling, for modeling the logic captured by a single use case or usage scenario, or for modeling the detailed logic of a business rule. Although UML activity diagrams could potentially model the internal logic of a complex operation it would be far better to simply rewrite the operation so that it is simple enough that you don't require an activity diagram. In many ways UML activity diagrams are the object-oriented equivalent of flow charts and data flow diagrams (DFDs) from structured development.
Data Modeling 101 The goals of this article are to overview fundamental data modeling skills that all developers should have, skills that can be applied on both traditional projects that take a serial approach to agile projects that take an evolutionary approach. My personal philosophy is that every IT professional should have a basic understanding of data modeling. They don’t need to be experts at data modeling, but they should be prepared to be involved in the creation of such a model, be able to read an existing data model, understand when and when not to create a data model, and appreciate fundamental data design techniques. This article is a brief introduction to these skills. The primary audience for this article is application developers who need to gain an understanding of some of the critical activities performed by an Agile DBA.
How To Implement Scrum in 10 Easy Steps When I first encountered agile development, I found it hard to understand. Okay, I might not be the brightest person you’ve ever met! But I’m not stupid either, I think :-) There’s a myriad of different approaches, principles, methods and terms, all of which are characterised as ‘Agile’. 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.
Class Responsibility Collaborator (CRC) Models: An Agile Introduction A Class Responsibility Collaborator (CRC) model (Beck & Cunningham 1989; Wilkinson 1995; Ambler 1995) is a collection of standard index cards that have been divided into three sections, as depicted in Figure 1. A class represents a collection of similar objects, a responsibility is something that a class knows or does, and a collaborator is another class that a class interacts with to fulfill its responsibilities. Figure 2 presents an example of two hand-drawn CRC cards. Figure 1. CRC Cards for ATM Example CRC Cards for ATM Example Using CRC cards to assign responsibiities to various classes for the tasks required by the various use cases leads to the creation of the following cards. The following links can be used to go directly to the CRC cards for the various classes:
Visualizing Agile Projects using Kanban Boards In Agile projects, it's a common practice to visualize and share project status in “big visible charts” on a wall of the project room. Lean systems also use such devices. "Kanban," in Japanese means, loosely translated, 'card or sign'. In a Lean production system, Kanban is a method which uses standard units or lot sizes with a single card attached to each. A new card is "pulled" into the system only when the work represented by an "in progress" card is completed..