Lean-Agile Thinking

Thoughts and comments

More efficient software development

How do you more efficiently improve your software development?

There are many different silver bullet methodologies about the "right" way to make software development (XP, Scrum, Crystal Clear, DSDM, Prince2, RUP, MSF, CMMI, IPMA, Lean etc.), often categorized as either waterfall, or agile.

But basically it is not about using the hottest, newest or most used methodology or framework. It is about making more efficient software development.

Don't go for the silver bullet framework, but build your own recipe and look at some of the different candidates to do more efficient software development. . Based on my experience, I see a pattern to look at:1) Development craftsmanship, 2) Processes and 3) Requirements Management. Also the A) Management System and the B) Culture in the company is important to focus on, if you want to have more efficient (continuously improving) software development. Of course there is an interrelation between the different areas, which is not that easy to work with.

I have tried to visualize it in the following diagram:

  1. Processes - "How do we work together?"
    In a team, between specialists, department, with the rest of the organization and with external partners and customers. How do we make sure that we work on the most important tasks at the right time? What makes most business value?
  2. Craftsmanship - "How do we make the software?"
    Good development practices supported by an efficient development infrastructure to establish different feedback loops with builds and automated testing. Using patterns, emergent design, TDD, CI, Refactoring, done-done etc.
  3. Requirements - "What business needs do we solve?"
    Managing of business requirements and to make sure the solution is created to solve the right business needs. Including planning, goals, business value, acceptance criteria etc. What is enough? When is it done?

A. The Lean-Agile Management System
Between and around the three areas, there is the Management System in the organization and with a Lean-Agile mindset, it support and improve the flow of value and establish more focus and rhythm for all people. Establishing focus on the key value streams and moving more responsibility to the people performing the actually work makes much more productivity and improved quality. It is hard, a mindset change of old management practices, but it is so great to see more engaged people working on creating more optimal business value.

B. The Culture in the Organization
What is the culture? It is the combination of many things and hard to define. It is for example how we trust each other, collaborate, and use feedback on tasks and behaviors. Why are people motivated (or not)? Is it just a job or a passion, do we make a difference on our job? Do we respect each other? Are we pushing or pulling work between each other? Do we let people be innovative in their work?

When changing to new ways of performing our work, this strange thing called culture has an impact on the change. Can the culture be changed? I think it can, but it often takes a lot of time, because people like to do what they are used to do.

I will write much more on this topic in the future, because there are so much more for me to say :-).

Comments

Hans Haller Baggesen said:

I agree that there properly no Silver bullet methodology out of the box that fits my hand - Not many methodologies of any kind does that. It seems like I always need to grab the essence of the methodology (ies) or framework(s) and build my custom fitted version. I even believe that MSF 4.0 (for agile) back in 05 was build with that idea.  Taking whatever agile compound, that made the process of building software efficient at Microsoft. Does that make MSF useful out of the box? Properly not! but is it great input to your own custom fitted silver bullet of the day – could be!

So Mads, isn’t your model just that –your own custom fitted silver bullet of the day?

BTW: This is not at any point a revenge comment, for all the time you have tricked me in coming up with a silver bullet for other people’s problems and watch me fail miserable ;).

# November 25, 2008 2:56 PM

Mads said:

Well, my point is not to define just another model, but more to look at some of the common and interrelated areas when making good and efficient software development.

Often the focus is locked on a specific methodology or framework and not on how software development fits into the whole system with different areas. The culture and management system does also play a role in the total picture.

I think it is more about identifying potential candidates when building or improving your own recipe to more efficiently software development. Based on my current experience and knowledge, I currently see a pattern where the areas I mention are relevant to look into. 

# November 25, 2008 11:00 PM

Shibli Mohammad Arafat said:

I completely agree that there is no methodology that 100% fits with your organization's need. If you have the goal to improve continuously and start with a process you will obviously find that something is not working well with your organization's need. Then you can identify that, and work on it to overcome that problem, and obviously you will find a good solution of the problem. Then you can incorporate that solution in your process. Here the point is, the solution that you chose for the problem may not be suitable for other organization if they have the same problem.

# July 1, 2009 9:40 PM
Leave a Comment

(required) 

(required) 

(optional)

(required)