Models can help you explore existing code and discuss new designs; clarify users’ needs and define tests; and be used to generate some of the code. This article shows how working with models will help you in an agile project.
Process maturity is a beautiful concept made popular by the Capability Maturity Model Integration (CMMI) Institute. It assesses the maturity of an organization's processes to improve the development of software. The levels of process maturity help with benchmarking an organization's processes and providing a road map for process improvement.
One counterproductive practice in agile software development has persisted since the original publication of the Agile Manifesto: agile planning gives little regard to user experience strategy or information architecture—two pillars of sound requirements gathering. Instead, backlogs of requirements fill up with a never-ending stream of ill-informed requests that provide the basis for user stories. To accommodate the barrage of irrational objectives, information architects and other UX professionals who find themselves working in such an environment must resign themselves to becoming flexible—which means giving up any hope for coherent guidance in exchange for pure bedlam. Teams that are plagued by such strategic malpractice must develop a high threshold for pain and ambiguity.
To successfully create the significant breakthroughs in your development effectiveness that are possible with agile, it has to be aligned with why you want to do it in the first place and what you need to achieve from it. The authors of A Practical Approach to Large-Scale Agile Development explain how to tune agile to your business objectives.
The DoD is facing challenges to rapidly deploy operational capabilities in complex environments where bridging legacy and new technologies are key to success. The challenges arise as a result of diminishing budgets and the need for new capabilities to operate in war environments, including the global war on terrorism. To balance this imperative need with rapid response, we found that our developed Agile life-cycle paradigm was a viable solution to meet challenges brought about by changes in the environment. This article demonstrates how a DoD program used an Agile approach, throughout every phase of the program’s life cycle, to rapidly field capabilities.
In an Agile world, when should performance testing be conducted? Every sprint or only at the end of the product development, as it used to be conducted in the Waterfall model? How do we test for performance within sprint after sprint? How efficient is it to conduct performance testing at the end of the product development?
The main question asked at the beginning of a project is often ” How much is it going to cost?” Usually people start estimating the effort and then translate the result in a budget. Some people advocate doing the opposite. If I can spend X dollars for this project to improve my supply chain, what will be the results. Most of the advantages of taking this approach are listed above. For me, the main benefit of taking a budget-first approach is that it should force the people to prioritize all the features and adopt a value-based selection process for each amount of money that you are going to spend. It naturally requires a high level of trust as the stakeholders recognize that they can not define the exact scope of a project before it begins and accept that each participants will do his best to produce the higher value solution under the constraint of the initial budget.
No one person can know everything and needs to rely on the talents of others to be successful in a role, on a project, or in the marketplace. With the increasing pace of change, trusting each other - and unleashing talent - is critical.