background preloader

Development Methodologies

Facebook Twitter

Literate programming. Back in the 1970s Donald Knuth, yes THE Donald Knuth, came up with the idea of literate programming.

literate programming

The simple idea was that research, or exploratory research really, should not be bound by the sequential nature required by compilers. Plainly put researchers should write their explorations, insights and code in a way that make it easy for other people to read and follow. Sounds OK, maybe a bit strange but why isn't it common for people to structure their work this way? When you are doing reasonably well as a programmer a lot of times you try to get into "the zone", this "I know what I am doing, don't try to stand between me and the keyboard" attitude to problem solving. This is not the best state to be in when you are trying to explain what, how and why you are doing things. The scary thing is the more of my code I treat this way the more I see that when I am in the zone I am not that good.

LP definitively changed my view on that. So why keep using LP? Literate Programming? Oh, what a tangled web we weave...

Literate Programming?

Many moons ago (The year 1984 if you want to get specific), Donald Knuth documented the idea of Literate Programming. Well, he did more than document it. He concocted software to support it, and applied the technique to his development of TeX. While researching this topic, I found a page that offers some insight that rings true with me: Literate programming, however, is not a mainstream technique. So, with some spare time on my hands, my mind has once again turned to trying to reach a level of comfort where I feel I've mastered Python. The Universal Troubleshooting Process. Troubleshooters.Com® Presents: The Universal Troubleshooting Process (UTP) Systematic Troubleshooting and Debugging Copyright © 1996-2014 by Steve Litt Important Note: In 2005, the term General Maintenance was replaced with Corrective Maintenance, which better describes the purpose of the maintenance.

The Universal Troubleshooting Process

Money, influence and reputation. These are the benefits accruing to the expert Troubleshooter, or the manager whose people troubleshoot quickly and accurately. Money. Programmer Interrupted. I’m writing this post in an apt state: low-sleep, busy, disorientated, and interrupted.

Programmer Interrupted

I try all the remedies: Pomodoro, working in coffee shops, headphones, and avoiding work until being distraction free in the late night. But it is only so long before interruption finds a way to pierce my protective bubble. Like you, I am programmer, interrupted. Unfortunately, our understanding of interruption and remedies for them are not too far from homeopathic cures and bloodletting leeches. But what is the evidence and what can we do about it? The costs of interruptions have been studied in office environments. For programmers, there is less evidence of the effects and prevalence of interruptions. Interruptions of Programmers Based on a analysis of 10,000 programming sessions recorded from 86 programmers using Eclipse and Visual Studio and a survey of 414 programmers (Parnin:10), we found: A programmer takes between 10-15 minutes to start editing code after resuming work from an interruption.

Analysis & Design Methodologies. Resilience Engineering: Learning to Embrace Failure. Case Studies Multicore Performance File Systems and Storage RIA Development Making the Move to AJAX What a software-as-a-service provider learned from using an AJAX framework for RIA development Queue on Reddit GameDay Exercises Case Study It's very nearly the holiday shopping season and something is very wrong at a data center handling transactions for one of the largest online retail operations in the country.

Resilience Engineering: Learning to Embrace Failure

The good news is that it's not a real disaster—though it could have been. Many operations are turning to resilience engineering not in hopes of becoming impervious to failure, but rather to become better able to adapt to it when it occurs. In the early 2000s, Amazon created GameDay, a program designed to increase resilience by purposely injecting major failures into critical systems semi-regularly to discover flaws and subtle dependencies. Participants include Jesse Robbins, the architect of GameDay at Amazon, where he was officially called the Master of Disaster. How are Lean, Agile, and Devops related to each other?

You hear a lot about various agile approaches.

How are Lean, Agile, and Devops related to each other?

Things like Lean, Scrum, Kanban, and Devops seem to be important but it’s hard to sort them out. How do they relate to each other and where to start? Let me try to structure these ideas for you. Lean is the basis of Agile Lean tells you to optimize the end-to-end process which creates value for your customer – from the initial idea to collecting cash. Build product development flow on top of Lean Creating value for your customers is all about finding and verifying product ideas, implementing these ideas, and running them to benefit your users. The three aspects of product development flow Lean Startup or Running Lean: here Eric Ries and Ash Maurya talk about how to create a learning cycle during feature discovery. A word of warning: individually, none of these agile processes is able to optimize the entire flow. Lean principles are the basis of your entire product development flow.

What are your thoughts on the interplay of these ideas?

DevOps

Code Reviews. Agile. Scrum. Coding.