Agile Just Enough Architecture

January 21, 2013

Many people consider that software architecture is a burden for agile software development and that a “good” design will naturally emerge as code is produced during each Scrum sprint. This however rarely the case and as in many other activities, you have to find the right balance between doing enough but not too much software architecture. In the article, “A Risk-Driven Model for Agile Software Architecture“,  George Fairbanks, the author of the book “Just Enough Software Architecture – A Risk-Driven Approach“, explains how to achieve this balance.

The main rule is that the effort you spend on designing your software architecture should be commensurate with the risks faced by your software development project. The article examines how risk reduction is central to all engineering disciplines. It explains how to choose techniques to reduce risks and show how you can balance planned design with evolutionary design during agile software development projects.

Advertisements

Software Development Certifications

August 31, 2012

Certifications have become an important part of the life of software development professionals. If there is some aims by hiring organizations to try to assess the capacity of their future employees, certification is also a lucrative market for training companies and professional organizations that sell, sorry provide the certifications. The situation is very competitive in the project management market where besides the traditional PMP certification provided by the Project Management Institute, there has been the increased adoption of agile project management certification, mainly the ScrumMaster official titles provided by either the Scrum Alliance or Scrum.org. This is so true that the PMI has now developed its own Agile Project Management certification. Certifications are also present in another number of software development areas. According to the Software Testing Magazine, the International Software Testing Qualifications Board (ISTQB) is the clear leader in the field of software testing certifications, with only few competitors that act more locally. In the area of software requirements management and business analysis certification, the International Institute of Business Analysis (IIBA) is the main professional and certification organization. There are however alternative certification scheme provided by organizations like the International Requirements Engineering Board, the British Computer Society (BCS) or the Object Management Group (OMG) which specialize in UML-based analysis certifications.


Agile Requirements

October 3, 2011

The clarity of requirements is an issue for many  software development projects. Based on a course on Agile Requirements, this article at summarizes the levels of Agile (and frankly non Agile) requirements and how you can use a four step process for gathering them.


Agile, Project Management and Software Testing in Spring 2011 Issue of Methods & Tools

May 2, 2011

Methods & Tools – the free magazine for software developers, testers and project managers – has just published its Spring 2011 PDF issue with the following articles:
* Automated Acceptance Tests and Requirements Traceability
* Managing Schedule Flaws using Agile Methods
* User-Centric Design and the Power of Personas
* Complexity Theory for Software Developers
* Build Patterns to Boost your Continuous Integration
* GivWenZen – Behavior Driven Development for FitNesse
* Celoxis – Web Based Project Management
* Tellurium Automated Testing Framework
* Apache CXF
* RSpec Best Practices
* Maven Plugins

Download 80 pages of software development knowledge


Agile Software Process Improvement

April 21, 2011

This article by Ben Linders discuses how to use an agile approach for software process improvement in a CMMI context.

http://www.methodsandtools.com/archive/archive.php?id=115


Scrum Open Source Software Directory

February 26, 2010

OpenSourceScrum.com is an interesting directory of open source tools for Scrum containing also links to tools reviews.


CMMI: Less Hyped Than Agile but Equally Popular?

February 2, 2009

A recent Methods & Tools poll examined at what stage is the CMMI approach adoption in software development organizations.

Not aware 13%
Not using 29%
Investigating 8%
Analysed and rejected 4%
Trying to reach Level 2 12%
CMMI Level 2, 3 or 4 20%
CMMI Level 5 14%

Participants: 392

Ending date: January 2009

Many software development concept of the 80s and 90s have left the spotlights of the professional press and the blogging world, either because they are soooooo obvious, as in “of course everybody is doing object oriented programming today…”, or because they didn’t meet the expected success, as the object oriented database that were supposed to replace this old relational SQL technology of the 70s….

CMMI is the successor of the Capability Maturity Model (CMM) or Software CMM. The CMM was developed from November 1986 until 1997 as part of the software process maturity framework project. Then the CMMI, where “I” stands for Integration, replaced the CMM. This is certainly not currently a hyped concept. You will find no CMMI category on dzone.com or infoq.com and the CMMI channel on reddit.com has two subscribers. I was therefore surprised to see that the adoption, ignorance or rejection rates for the CMMI were very close to the results achieved by a similar survey on Agile approaches ended at the beginning of 2008.

I didn’t find any former statistics about the CMMI adoption, so it is difficult to compare the results of this survey with other numbers. These survey results are telling us that formal process adoption is growing in software development organization. The importance of CMMI numbers can be explained by the geographical diversity of Methods & Tools readership: an important percentage is coming from Asia where the CMMI label is important to sell outsourcing services.

Knowing that CMMI adoption rate is close to the Agile rates, I wonder also if there were some overlap, thinking that there are many companies without a formal process. I found a survey on Dr Dobb’s with some numbers on companies doing both CMMI and Agile. According to this survey, the rates of success of Agile and CMMI projects are very close, just above 50%. You could interpret the results as whatever the process, as long as you have one, you improve your success rate, which would mean that some discipline bring rewards. These numbers also tell that you have still close to 50% chances of failure, which could mean that discipline is not easy to achieve in the software development world. Please note that the Version One Agile survey seems to indicate a higher rate of success for projects, even if the type of questions makes direct comparison difficult.

Although there are some evidences that CMMI and Agile can coexist, the overall impression of people dealing with process improvement is that there are still important cultural differences between the two communities. Even if the non-prescriptive nature of the CMMI is recognized by agile developers, the overall impression is that this approach are still leaning heavily on plan-oriented and documentation processes, thus conflicting with the lightweight aspects of Agile. To contradict this culture incompatibility, there is the example Systematic, where a CMM level 5 company has added Scrum on top of their process, gaining a 50% cost reduction. This maybe not so astonishing if you realize that CMMI and Agile both try to achieve process improvement and both require discipline. Managing one week Scrum iteration with daily meetings should provide a strict control of project progress. Therefore organizations that followed the CMMI way for a good reason, that is not just for having a label to sell their services, should be naturally attracted by the process improvement tools contained in Agile. Other organizations than Systematic have also added agile practices above CMMI, but the opposite doesn’t seem obvious.

Maybe the software development world would be better if people could see approaches like the CMMI or Agile as toolboxes and not cult-like concepts that should be embraced with a blind faith… and a tendency to see other movements as “heresies” that can only be condemned. As Chris O’Brien (Software Capabilities Manager at Gen-i) says “So CMMI and Agile are complementary, but the use of either should to be based on business needs. I believe both have an immense amount to offer and co-existence will make sense for many organizations – particularly those that are capable of applying learnings from their industry with intelligence and care, to achieve results.”

References

CMMI Main page at SEI

Software and systems firms embrace CMMI – India Trends – Express Computer India

CMMI or Agile: Why Not Embrace Both!

Dr Dobb’s article: Agile CMMI?

Mature Agile with a twist of CMMI

Scrum and CMMI Level 5: The Magic Potion for Code Warriors

Systematic Gains Chart

Methods & Tools Agile Survey

CMMI articles list in SoftDevArticles.com

(r) Capability Maturity Model, CMM, and CMMI are registered in the U.S. Patent and Trademark Office by Carnegie Mellon University.
(sm) CMM Integration is a service mark of Carnegie Mellon University.


%d bloggers like this: