DZone
Thanks for visiting DZone today,
Edit Profile
  • Manage Email Subscriptions
  • How to Post to DZone
  • Article Submission Guidelines
Sign Out View Profile
  • Post an Article
  • Manage My Drafts
Over 2 million developers have joined DZone.
Log In / Join
Refcards Trend Reports Events Over 2 million developers have joined DZone. Join Today! Thanks for visiting DZone today,
Edit Profile Manage Email Subscriptions Moderation Admin Console How to Post to DZone Article Submission Guidelines
View Profile
Sign Out
Refcards
Trend Reports
Events
Zones
Culture and Methodologies Agile Career Development Methodologies Team Management
Data Engineering AI/ML Big Data Data Databases IoT
Software Design and Architecture Cloud Architecture Containers Integration Microservices Performance Security
Coding Frameworks Java JavaScript Languages Tools
Testing, Deployment, and Maintenance Deployment DevOps and CI/CD Maintenance Monitoring and Observability Testing, Tools, and Frameworks
Partner Zones AWS Cloud
by AWS Developer Relations
Culture and Methodologies
Agile Career Development Methodologies Team Management
Data Engineering
AI/ML Big Data Data Databases IoT
Software Design and Architecture
Cloud Architecture Containers Integration Microservices Performance Security
Coding
Frameworks Java JavaScript Languages Tools
Testing, Deployment, and Maintenance
Deployment DevOps and CI/CD Maintenance Monitoring and Observability Testing, Tools, and Frameworks
Partner Zones
AWS Cloud
by AWS Developer Relations
  1. DZone
  2. Culture and Methodologies
  3. Agile
  4. Anecdote Driven Development & Science in Software Development

Anecdote Driven Development & Science in Software Development

Wille Faler user avatar by
Wille Faler
·
Nov. 01, 12 · Interview
Like (0)
Save
Tweet
Share
3.14K Views

Join the DZone community and get the full member experience.

Join For Free

Throughout my work with clients, I have taken on different roles from project to project - I've sat on both sides of the table: I have been in the "ivory towers" of considering how business strategy affects technology strategy. I've been down in the trenches writing software. I've been part of bid teams trying to sell solutions and I've helped evaluate options for purchasing services and solutions.
I believe this has given me an interesting perspective on both how "pointy haired bosses" and developers think.

What is interesting is that both sides tend to lament the lack of being "scientific" in the approach to creating solutions, however what they mean by it varies markedly depending on perspective and the power balance of the culture: developer centric organizations tend to believe that Agile is the one true way to produce solutions, whereas management centric organizations tend to believe in Big Up Front Planning (AKA some variety of "Waterfall").

What Science Is Not: Religion, Beliefs & Dogma

I have already implied where I think both of these predominant perspectives have gone wrong: they are management or developer centric, hence they miss out a large part of the picture.
Let's start with the management centric perspective and "Waterfall": this mode of solution building is built largely on management beliefs around what constitutes "scientific" when it comes to software development without actually having any practical knowledge of how the work works or what its nature is. For a person with little or no software experience, or limited variety of experience (not knowing any other way), it makes perfect rational sense given the missing knowledge and experience to believe that a software can be created sequentially by planning, designing, writing the code then testing a solution.

However, the problem with this is that what may be a rational belief is in fact only beliefs, and massively deficient at that, based on lacking information and experience. To paraphrase the words of John Seddon, it doesn't work, because the people who design the work don't know how the work works.

Agile Anecdote Driven Development

Culturally more developer centric organizations tend to be more likely to adopt some shape or form of Agile. However what Agile "is" tends to vary markedly from organization to organization (I have never seen any two alike). While I believe Agile has a lot to offer, in particular if the mindsets and values can be fully adopted above all, I do believe the practical implementation quite often fails in a variety of ways:

  • Practices become unquestionable dogmas, religious beliefs rather than continuously improved engineering practices.
  • Attempts to codify and make checklists out of what should fundamentally be mindsets and cultural values.
  • People miss out on the greater purpose and goal as they get lost in User Stories.
  • Self-organized teams become uncoordinated, isolated island, sometimes even fiefdoms run by the individual(s) most adept at playing politics.
Call these Agile anti-patterns if you like, but I have never seen an Agile project that didn't suffer from a combination of at least a few of the points above. The end result, in particular with the two last points is software that may work, but ends up being a plethora of Stovepipe systems, each slightly disjointed from the other and not effectively contributing to the greater business goals.

To sum up the Agile dilemma, it really is one of autonomy vs. coordination towards the bigger goals - what is the right mix of direction while allowing people to design their own work?

Being Scientific: Knowledge of the Details, Understanding of the Big Picture, Questioning Everything

I'm going to disappoint you by not giving a prescription of what "being scientific" entails, I'm simply going to conclude that the existing predominant perspectives are severely lacking in a number of ways. Most specifically, they lack to take into account the whole, the totality of what creating and running a solution entails. And to add to that, both of the perspectives we have looked at often miss out one major component: operations. The capital expenditure of creating solution will end up creating operational expenditure that will go on long beyond the initial creation, yet this is one part of the puzzle that is rarely even considered.

The answers are not more top-down, nor more bottom-up. It's a greater understanding of the big picture AND the details: the small parts of how work works affect the shape of the bigger picture, but the hard thing is to understand where and why.
For instance, advances in programming languages and technology may radically alter the shape of both how you automate testing and architect solutions, which in turn could affect the bigger principles on which an organization relies to make their solutions and systems work together towards the greater organizational goals.
As a corollary, the greater goals and ultimately purpose of an organization existing, the deeper "why's" of the work existing in the first place affect everything in a top-down manner - it needs to be translated into a set of principles for how solutions fit together towards organizational goals, which in turn need to be understood to make technical decisions that fit with the principles. Furthermore, without understanding the bigger picture "Why's", it is easy to get side-tracked and distracted with work that is irrelevant scope-creep.

The big picture feeds into the detail, the detail feeds into the big picture. You cannot optimise parts without sub-optimising the whole. There are no answers other than trying to build an adaptive organizational system with a clear sense of purpose that is neither top-down, nor bottom-up, but questions everything and is prepared to change at a moments notice.
Question everything, learn at every opportunity, uncover implicit assumptions and make them explicit so that they may be questioned as well, rinse and repeat. Yesterdays science is todays pseudo-science.

Software development agile

Published at DZone with permission of Wille Faler, DZone MVB. See the original article here.

Opinions expressed by DZone contributors are their own.

Popular on DZone

  • Is DevOps Dead?
  • Real-Time Analytics for IoT
  • Key Elements of Site Reliability Engineering (SRE)
  • gRPC on the Client Side

Comments

Partner Resources

X

ABOUT US

  • About DZone
  • Send feedback
  • Careers
  • Sitemap

ADVERTISE

  • Advertise with DZone

CONTRIBUTE ON DZONE

  • Article Submission Guidelines
  • Become a Contributor
  • Visit the Writers' Zone

LEGAL

  • Terms of Service
  • Privacy Policy

CONTACT US

  • 600 Park Offices Drive
  • Suite 300
  • Durham, NC 27709
  • support@dzone.com
  • +1 (919) 678-0300

Let's be friends: