Death by Dogma versus Agile Assembly

On November 3, 2011 I presented the keynote of the Agile Open Holland Conference in Dieren. During this challenging talk I discussed the current state of affairs in agile organizations and projects and the effects of the recent strong rise in popularity of agile approaches. Let’s put it mildly: there’s a lot of work to be done.

Death by dogma

Almost all organizations, large and small, are turning towards agile to escape failing traditional software development projects. Due to this strong increase in popularity of agile approaches and techniques, many newcomers will enter the field of agile coaching. Of course without the very necessary real-life experience but proudly waving their Certified Professional Scrum Master Sensei Trainer Certificate proving they at least had two days of training.


Going through the hardship of two whole intense days of training becoming a Certified Agile Jedi Knight is worthwhile!

In my opinion, as a result many organizations and projects in the next couple of years will be coached why well-willing consultants who have barely made it through boot camp, and in the famous Shu-Ha-Ri learning model haven’t yet made it beyond copying their teacher. This will lead to very dogmatic applications of the more popular agile approaches, mostly Scrum, especially when the so-called leaders in the field themselves turn to dogma. This dogmatic thinking will block the use of more mature techniques and technology in agile projects, even when these would really improve projects, or would prevent agile projects from failing. “No, you can not do modeling in Scrum” and “Burn-down charts are mandatory” are two such simple real-life example statements that I’ve witnessed some certified agile Jedi Knight make. Due to this lack of experience and the growing dogmatism in the agile beliefs, more and more agile projects will fail. Death by dogma.

During my keynote I discussed many examples of dogmatic Scrum implementations and the drawbacks from being dogmagile, building the story up from my previous posts Scrumdamentalists and Crusaders and Flower-Power Agile Fluffiness.

But maybe even more important during the keynote I also show that there is no such thing as one-size-fits-all agile. Different organizations and different projects require different agile approaches. Sometimes lightweight agile, for instance implemented using Scrum, user stories, simple planning, simple estimation, and one co-located team using post-its on a wall is just fine. But in many projects the way of working used should rather be built up from slightly more enterprise ready approaches, for example using Smart, smart use cases, standardized estimation, multiple distributed teams and on-line dashboards.

What is agile anyway?

Implementing agile in your projects starts with establishing what it means to be in an agile project. As I demonstrate in the keynote, I consider short iterations, collaborative teams, a small unit of work, continuous planning, delivering early and often, and simplifying communication to be crucial to considering a project working in an agile way.

From there you can pick and choose from a wide variety of approaches, techniques and technology. Most of them stemming from the agile era, but some of them can also be related to older (or more mature) era’s. Concluding you might say that to be successful in implementing agile in your organization, you will need to assemble your agile approach from everything that will help you implement these six agile bare necessities. Anyway, enjoy!

March 30, 201 – Capgemini KM Webinar. Smart use cases. Achieving reuse in requirements

[Presentation for Capgemini Knowledge Management Worldwide, via LiveMeeting]

A while ago I received a very kind invitation to address the Capgemini Global Knowledge Community on a subject of my choice concerning reuse.

It said: “On behalf of FS GBU KM, I would like to invite you to deliver a brief talk on a topic of your choice in Knowledge Management. To my knowledge, you’re THE EXPERT on reuse and programmer productivity. It would be interesting to listen to you on the topic of current state of reuse from your experience, insights and recent trends in development tools, methods and technologies. Of course, you are free to  choose any topic from broad spectrum of KM.

I chosen the following subject.

Smart use cases. Achieving reuse in requirements

Use cases are a well-known and wide-spread technique for managing functional requirements. Smart use cases are a really well extension to the traditional use case technique, that makes much explicit use of the UML modeling technique.

IMAG0505

Applying smart use cases allows projects not only to drill down from the scope and the business processes of a project to the actual requirements, but also allows for reliable and repeatable estimates, and even reuse of requirements! During this talk expert Sander Hoogendoorn will demonstrate this approach, including estimation and show examples of smart use case diagrams from real-life projects that achieved functional reuse.

March 8, 2011–Model driven development using smart use cases and domain driven design

[Talk at Capgemini Microsoft TechEd, at Papendorp, Utrecht]

Again due to illness of one of the speakers, I got to do an additional session at Capgemini Microsoft TechEd, after doing a keynote and a talk the week before.

This time I demonstrated our approach to model driven development using smart use cases, domain driven design and Tobago MDA. Here’s the slide deck.

March 1, 2011 – Capgemini TechEd. How frameworks can kill your projects.

[Talk at Capgemini TechEd, March 1 at Capgemini, Papendorp, Utrecht]

Due to illness of one of the speakers I did an additional talk at the Capgemini TechEd. I presented my successful talk on software architecture and frameworks, please check the video below, which was shot during the Microsoft TechEd Europe conference in Berlin in November 2010.

When it comes to Microsoft .NET-connected development, more and more frameworks are entering the market, both from Microsoft and from open source. Think of ASP.NET MVC, Castle, Windows Workflow Foundation (WF), Entity Framework, Unity, Linq2SQL, ADO.NET Data Services, Windows Communication Foundation (WCF), nHibernate, Spring.NET, CSLA, NUnit, Enterprise Library, MEF and ADF.

Once you apply one or more frameworks to a project, the trouble begins. What if you require features that aren’t implemented in the framework? What if you decide that another framework would have been better and want to switch halfway through your project? What if the author of your favorite open source framework suddenly stops developing? What if the framework contains bugs or omissions? And what if a new version of the framework is released that is implemented differently? These and many more everyday problems can bring your project a halt, or at least require serious refactoring.

Get Microsoft Silverlight

During this highly interactive talk, Sander Hoogendoorn, chief architect of Capgemini’s agile Accelerated Delivery Platform and member of Microsoft’s Partner Advisory Council .NET, demonstrates pragmatic architectures and patterns that will help your projects avoid framework issues and keep code independent of framework choices. Sander presents models of layered architectures and looks at applying bridge patterns, managers-providers, dependency injection, descriptors and layer super-types, accompanied by lots of demos and (bad) code examples using blocks from Microsoft’s Enterprise Library, NHibernate, Log4Net, and the Entity Framework. Learn how to improve the structure and quality of your software architecture and code and how to avoid the pitfalls of applying frameworks to .NET software development.

March 18, 2011 – SDN Event. Sander of software architecture, patterns and frameworks. One man, a whiteboard and three markers

At conferences, many keynotes and talks using beautiful slide decks cover advanced topics in software architecture, working with specific frameworks or design patterns. This talk will be different. I will not advertise nor bash certain frameworks, nor will I do a lot of name and acronym dropping. This talk brings the attendees back to the raw basics. Just me in front of a whiteboard with a set of markers. No agenda, no slides.

vrijdag, maart 18, 2011
All Day
SDN Event, March 2011
Het SDN Event van vrijdag 18 maart is het eerste SDN Event van 2011. Dit event staat weer bol van de content. Sessies over AppFabric, ALM voor Azure projecten, SharePoint Document management, Blend fo…
Achmea Eureko Conference Center

Zeist,

Often, talks at conferences discuss the more advanced topics and just glance over the underlying principles, techniques and architectures leaving most attendees dazzled. During this highly interactive session I will try to bring software development back to these raw basics, presenting my personal experiences in software architecture, framework development and applying design patterns.

DSC_0055

So there will be no fixed agenda, but likely topics will be:

  • Setting up your software architecture, layers and layer elements
  • Software architecture versus frameworks
  • Patterns in implementing frameworks
  • MVWTF. Patterns in user interfaces
  • Domain driven design.
  • Design patterns explained.
  • The sense and nonsense of dependency injection
  • Persistence in this era of diversity

March 16, 2011 – Centric Event. What does agile mean for me as a project manager?

Will present keynote and some sessions at Centric internal event on agile software development, targeted at project managers, information and business analysts. This talk specifically targets at the role of project management, planning and estimation in agile projects.

Topics will include:

  • What is the role of the project manager in agile projects? Does it still exist?
  • Project manager or agile coach?
  • Estimation in agile projects
  • Planning in agile projects
  • Stand up meetings and retrospectives
  • Deliverables and deadlines.
  • Agile dashboarding and burn down charts.
  • Keeping your agile projects on track.

woensdag, maart 16, 2011
All Day
Centric Event
This is not a public event….

March 16, 2011 – Centric Event. Requirements in agile projects

Will present keynote and some sessions at Centric internal event on agile software development, targeted at project managers, information and business analysts. This talk specifically targets at the role of information analysis and requirements in agile projects.

Topics will include:

  • Does business and information analysis still exist in agile projects?
  • Agile requirements
  • Where does the backlog come from?
  • An agile approach to requirements
  • Epics, user stories, huge cases and smart use cases
  • The smart use case lifecycle

woensdag, maart 16, 2011
All Day
Centric
This is not a public event…

March 16, 2011 – Centric Event. From lightweight agile to enterprise agile.

Will present keynote and some sessions at Centric internal event on agile software development, targeted at project managers, information and business analysts.

Topics will include:

  • Why doesn’t waterfall work – and did it ever?
  • What makes agile different?
  • The Agile methodology that doesn’t exist.
  • An overview of agile processes that do exist.
  • Agile key characteristics
  • Agile best practices
  • Agile beyond the basics, how does agile work in enterprise and distributed projects.
woensdag, maart 16, 2011
All Day
Centric
Not a public event…

March 10 and 11, 2011–Array Seminars. Workshop pragmatic modeling using UML and beyond

On March 10 and 11 I will present an intense two-day workshop on the pragmatic use of UML modeling techniques (and beyond) with lots of hands-on exercises. Of course this workshop will cover smart use cases, domain driven design, service orientation and many other modeling techniques.

donderdag, maart 10, 2011
All Day
Workshop pragmatic modeling using UML and beyond
Two day highly interactive workshop on modeling in software development projects using the techniques of UML and beyond…….
Array Seminars
Hotel Lapershoek

Hilversum,

IMAGE_073
Participants modeling activity diagrams with smart use cases

During this workshop we will go through the following subjects in depth and cover a lot of hands-on modeling:

  • A brief introduction of UML and its modeling techniques
  • A pragmatic YAGNI approach to modeling business processes and requirements.
  • Modeling hierarchical and chronological business processes.
  • Modeling traditional and smart use cases.
  • Modeling activity diagrams (for use cases).
  • Identifying test scenario’s for (smart) use cases using activity diagrams.
  • Modeling the user interface.
  • Modeling class diagrams.
  • Domain driven design.
  • Interaction modeling. Bringing together an applications structure and behavior, based on a pragmatic use case driven software architecture.
  • Modeling service oriented projects using smart use cases.
  • Modeling in agile projects.
  • A brief introduction to model driven software development.

March 3 & 4, 2011 – IT Works. Workshop Pragmatic modeling using UML and beyond

On March 3 and 4 I will present the 33th (!) edition of an intense two-day workshop on the pragmatic use of UML modeling techniques (and beyond) with lots of hands-on exercises. Of course this workshop will cover smart use cases, domain driven design, service orientation and many other modeling techniques.

IMAGE_073
Participants modeling activity diagrams with smart use cases

donderdag, maart 3, 2011
All Day
Workshop Pragmatic modeling using UML and beyond
Two day highly interactive workshop on modeling in software development projects using the techniques of UML and beyond….
IT Works
Crowne Plaza

Antwerp,   Belgium

During this workshop we will go through the following subjects in depth and cover a lot of hands-on modeling:

  • A brief introduction of UML and its modeling techniques
  • A pragmatic YAGNI approach to modeling business processes and requirements.
  • Modeling hierarchical and chronological business processes.
  • Modeling traditional and smart use cases.
  • Modeling activity diagrams (for use cases).
  • Identifying test scenario’s for (smart) use cases using activity diagrams.
  • Modeling the user interface.
  • Modeling class diagrams.
  • Domain driven design.
  • Interaction modeling. Bringing together an applications structure and behavior, based on a pragmatic use case driven software architecture.
  • Modeling service oriented projects using smart use cases.
  • Modeling in agile projects.
  • A brief introduction to model driven software development.