I run introductory training in test-driven development quite frequently these days. And each time I do, I find the same basic mistakes cropping up every time, even among teams who already claim to practice TDD. Here are the three mistakes I see most often.
Heartbleed is a bit over one month old now. Today, we’re going to look into how wrong we have been in assuming that Open Source software is more secure than commercial software, because of our thinking that source code is open and that many developers are looking into it.
I've tried CI systems ranging from Bamboo to Jenkins, and I always feel like I'm either pushing against the limits of the tech or tiptoeing through a mine field of possible misconfigurations. I don't feel that way with Drone. The "disposable" Docker environment is an absolutely perfect way to test code.
I was asked to talk about the problems of using TDD – being me I’ve decided to do the exact opposite, this session was names “what is wrong with TDD”. I felt that one of the major issues is that TDD looks weird, it’s counter-intuitive, and convincing developers to actually try it hard and requires a mental leap of faith.
One of my favourite features of Clojure is that it allows you to destructure a data structure into values that are a bit easier to work with.
I don’t understand why I have to choose between doing the right things, over doing the things right.
Make sure you didn't miss anything with this list of the Best of the Week in the DevOps Zone (May 23 to May 29). This week's topics include DevOps best practices and principles, enabling OpenID auth in Spring, handling the privacy of instance variables, developer delayed development, and on-demand DevOps PaaS.
The producer / consumer design pattern is a pre-designed solution to separate the two main components by placing a queue in the middle, letting the producers and the consumers execute in different threads. This way the production of tasks to be consumed is absolutely independent from its consumption.
With Nginx-Clojure we can make some looking difficult tasks become very simple.This article will give an example about using Clojure code to build a simple balancer with a role based dynamic bandwidth limiter on Nginx.
In VietnamWorks.com we managed to implement Continuous Delivery (CD), and we used following image as our reference. But why did we decide to use CD? We wanted to build the right features for our products, avoid as many risks (fail fast, succeed faster), increase our release cycle, and continue a stable product.
I teach git and often have issues with bad projectors where you can't see the colours. There's lots of documentation on how to turn on colours in git but not so much about how to turn them off. Try putting the following into .git/config:
Deprecated methods have to be treated different. At least in my opinion.
Yes, Test Driven Development (TDD) is a good practice, but it is NOT necessarily superior to: integration testing, penetration testing, operational readiness testing, disaster recovery testing, and any of a large number of other validation activities that should be a part of a software delivery practice.
Last week was DevOps Days here in Austin and I conducted a bunch of interviews. On Friday I shared an interview with Andrew Clay Shafer who gave the first-day keynote. The next three interviews I’ll be posting deal with configuration management tools.
You may face the following error while you running your Build-Deploy-Test workflow. Exception Message: There are no test cases matching the criteria specified. Use Microsoft Test Manager to view the test cases. This could happen for many reasons.
Developers, when they are staffed on a project, quickly become the largest and therefore most expensive group. At that moment, everything has to be optimized for their greatest throughput. If we could delay that moment, then we could delay the coupled increasing of costs.
Adopting agile devops requires a structural mind shift, and successful IT teams follow manifesto guidance to change delivery dynamics, take small steps to build one team, focus on real deliverables, accelerate reactive adaptation, and guide continuous loop activity.
Recently, there is a heaty debate regarding TDD which started by DHH when he claimed that TDD is dead.
This ongoing debate managed to capture the attention of developers world, including us. Some mini debates have happened in our office regarding the right practices to do testing. I will present my own view.
Oracle says, "The hierarchical naming structure for packages is intended to be convenient for organizing related packages in a conventional manner, but has no significance in itself." It is precisely this significance that some principles attempt to capture.
A while ago I was asked to talk about the problems of using TDD – being me I’ve decided to do the exact opposite, this session was names “what is wrong with TDD”.
Unfortunately, most IT teams do not have an environment fostering the rapid iteration, streamlined workflow, and effective collaboration required to operate at the speed of now and capture business opportunity.
Since Grails 2.3 we can define exception methods in our controllers to handle exceptions raised by code invoked in the action methods of the controllers.
Debuggers have become powerful tools, but like a drug have we become too dependent on them? A persistent fact in software is that between pre-test, QA, and deployment the cost of finding bugs is 1:10:100. Have we become so dependent on debuggers that we accept a process that is 10 times more expensive than other alternatives?
Successful movements have a clear manifesto outlining goals and principles. Many DevOps adopters may not be aware of the DevOps Manifesto (created by Jez Humble @jezhumble) nor how successful DevOps requires keeping a clear focus on principles, practices, and value (instead of infrastructure tooling.
In this article, you will find the steps to enable OpenID authentication in Spring-Security applications. Sections covered include the changes in spring-Security.xml, a sample implementation of beans defined in the config file, JSP changes, and how to test the application.