This is Marco Tedone's TypePad Profile.
Join TypePad and start following Marco Tedone's activity
Join Now!
Already a member? Sign In
Marco Tedone
London
Recent Activity
Image
In my opening article I introduced the <ALT+F> framework as a tool to help IT leaders to streamline IT Operations. I discussed how the framework moves withing the MAPE (Measure, Adapt, Plan and Execute) lifecycle. In this article I'll describe ALTPD (Average Lead Time of a Production Delivery). This is one of the most important measurements in the Measure phase of the MAPE lifecycle. In a nutshell, ALTPD defines the average number of days that it takes a requirement to be delivered to production from the day it was requested by the business. Why is important? In order to answer... Continue reading
Posted May 14, 2013 at Marco Tedone's blog
In my previous article I described the most common problems affecting IT performance. In this article I'll describe ScruXBan, a methodology that I defined while writing my book on <ALT+F>. I'll start looking at the most common Agile methodologies currently in use today, identifying pros and cons. I'll then describe ScruXBan as a possible alternative to those methodologies; an alternative that can help us improve the value we deliver the business with. When faced with the problems I described in my previous article, the IT community moved from pre-emptive methodologies such as Waterfall to Agile first and, most recently, Lean.... Continue reading
Posted May 13, 2013 at Marco Tedone's blog
In my previous post I introduced the <ALT+F> framework. I mentioned how the framework moves withint the MAPE (Measure, Adapt, Plan and Execute) lifecycle. If, during the Measure phase, the <ALT+F> templates show poor IT Operations performance, the next steps in the Adapt and Plan phases are to identify optimal targets to achieve operational excellence and best-in-class status and then to set the stage for an Agile and Lean transformation strategy that should be executed on two levels: On the organisation level, the transformation strategy should educate people on both sides of the fence (i.e. business and IT) to what... Continue reading
Posted May 12, 2013 at Marco Tedone's blog
Image
After nearly 11 months, I finally published my book on <ALT+F>. The book kept me away from blogging for quite some time, but now that it's finished I've got a bit more time to blog. I'd like to restart my blogging by introducing <ALT+F>. This is a framework that provides Agile and Lean leaders with a tool to help the organisations they work for streamline their IT Operations. How does it do that? The framework follows the MAPE lifecycle, i.e. a cycle composed of the following phases: Measure Adapt Plan Execute In the Measure phase, the framework implementors use the... Continue reading
Posted May 10, 2013 at Marco Tedone's blog
Hi James, Apologies if I didn't make it clear enough, but I thought I represented in more than one passage the point of view of the "technologist", as I am one of them. What I was trying to say is that I'd consider legacy code even beautiful code, which you, me or any other technologist may be able to understand easily, if it didn't deliver business value. Regards, Marco
Hi Benedikt, I understand where you are coming from but if you are using an editor with support for AOP annotations, then it could highlight whether what you included as part of the annotation can be applied to any code. Regards, Marco
I just learned Scrum by myself "on the field" few years back and practised it ever since.
Hi Ilias, thank you for your comments. My email address is marco.tedone at gmail.com
Hi George, Thank you for your comments. I enclosed the source files as part of this article. You can run the benchmarks with any numbers of elements you like.
I've been working in Agile environments for almost 6 years now and I still manage to learn everyday! Recently, for instance, I came across one reason why story points are a good measure for planning. We had a list of stories whose complexity the team had estimated in story points; however because we were at the beginning of our release, there was a high number of unknowns (which we addressed by creating spikes). We use to divide a story in tasks and to estimate tasks in Ideal Engineering Hours (IEH); however due to the number of unknowns, we didn't know... Continue reading
Posted Jan 15, 2012 at Marco Tedone's blog
Today I learnt something incredibly useful while reading Becoming a Technical Leader, by Gerald Weinberg. As Technical Leaders we are graded by multiplication rather than addition.Typically there are various dimensions to our grading, technical skills and the so called soft skills being two of them. Let's imagine that one is very good technically but occasionally has a bad temper. In grading terms, we could say that technical skills are graded at 80 and soft skills at 40. Firstly, the grade of this person is not 80 + 40 but rather 80 x 40 giving a 0.32 instead of 1.2.This becomes... Continue reading
Posted Oct 24, 2011 at Marco Tedone's blog
Hi, I don't know why the above comment was made...Would it be possible for you to explain? Regards, Marco
Toggle Commented Oct 22, 2011 on JMX and Spring - Part 1 at Marco Tedone's blog
Hi Charif, The project is in production and stable. You can find more at http://www.jemos.co.uk/projects/podam. Regards, Marco
Hi Art, Thank you for pointing this out. Unfortunately Typepad loses the "class" part of Spring configuration when copying from my PC. Most of the time I remember to add it to the bean declaration but in this instance I didn't pay enough attention.
Toggle Commented Aug 17, 2011 on JMX and Spring - Part 1 at Marco Tedone's blog
In this last article of the series I'll show how to use the native JMX support within the JDK to implement a notification mechanism which alerts a listener when the HEAP memory is above a certain threshold. As discussed in my previous article this approach is ideal because is push instead of pull, is not intrusive and places minimal computing demand on your application. These are the key components to the solution illustrated in this article: MemoryWarningService: This component acts as a listener and registers itself with the Memory MBean to receive notifications. It is configurable with a threshold in... Continue reading
Posted Aug 15, 2011 at Marco Tedone's blog
Image
Hi, in my previous article I explained how to setup a JMX server through Spring and how to protect access to it through authentication and authorisation. In this article I will show how to implement a simple MBean which allows users to change the level of a Log4j logger at runtime without the need to restart the application. The Spring configuration has changed only slightly from my previous article to facilitate testing; the substance remains the same though. The Spring configuration <?xml version="1.0" encoding="UTF-8"?> <beans xmlns="http://www.springframework.org/schema/beans" xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance" xmlns:context="http://www.springframework.org/schema/context" xmlns:util="http://www.springframework.org/schema/util" xsi:schemaLocation="http://www.springframework.org/schema/beans http://www.springframework.org/schema/beans/spring-beans-3.0.xsd http://www.springframework.org/schema/context http://www.springframework.org/schema/context/spring-context-3.0.xsd http://www.springframework.org/schema/util http://www.springframework.org/schema/util/spring-util-3.0.xsd"> <bean id="propertyConfigurer" class="org.springframework.beans.factory.config.PropertyPlaceholderConfigurer"> <property name="locations">... Continue reading
Posted Aug 11, 2011 at Marco Tedone's blog
Thank you, happy to see my articles are useful :-)
Toggle Commented Aug 11, 2011 on JMX and Spring - Part 1 at Marco Tedone's blog
Image
This is the first of three articles which will show how to empower your Spring applications with JMX support. Maven Configuration This is the Maven pom.xml to setup the code for this example: <project xmlns="http://maven.apache.org/POM/4.0.0" xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance" xsi:schemaLocation="http://maven.apache.org/POM/4.0.0 http://maven.apache.org/xsd/maven-4.0.0.xsd"> <modelVersion>4.0.0</modelVersion> <groupId>uk.co.jemos.experiments.jmx</groupId> <artifactId>jemos-jmx-experiments</artifactId> <version>0.0.1-SNAPSHOT</version> <name>jemos-jmx-experiments</name> <description>Jemos JMX Experiments</description> <build> <plugins> <plugin> <groupId>org.apache.maven.plugins</groupId> <artifactId>maven-compiler-plugin</artifactId> <version>2.3.2</version> <configuration> <source>1.6</source> <target>1.6</target> </configuration> </plugin> </plugins> </build> <dependencies> <dependency> <groupId>junit</groupId> <artifactId>junit</artifactId> <version>4.8.2</version> <scope>test</scope> </dependency> <dependency> <groupId>log4j</groupId> <artifactId>log4j</artifactId> <version>1.2.16</version> <scope>compile</scope> </dependency> <dependency> <groupId>org.springframework</groupId> <artifactId>spring-context</artifactId> <version>3.0.5.RELEASE</version> <scope>compile</scope> </dependency> <dependency> <groupId>org.springframework</groupId> <artifactId>spring-core</artifactId> <version>3.0.5.RELEASE</version> <scope>compile</scope> </dependency> <dependency> <groupId>org.springframework</groupId> <artifactId>spring-jmx</artifactId> <version>2.0.8</version> <scope>compile</scope> </dependency> <dependency> <groupId>org.springframework</groupId> <artifactId>spring-test</artifactId> <version>3.0.5.RELEASE</version> <type>jar</type> <scope>test</scope> </dependency> </dependencies> </project> Spring... Continue reading
Posted Aug 7, 2011 at Marco Tedone's blog
This article shows *one* way to mock the JMS infrastructure in a Spring JMS application. This allows us to test our JMS infrastructure without actually having to depend on a physical connection being available. If you are reading this article, chances are that you are also frustrated with failing tests in your continuous integration environment due to a JMS server being (temporarily) unavailable. By mocking the JMS provider, developers are left free to test not only the functionality of their API (unit tests) but also the plumbing of the different components, e.g. in a Spring container. In this article I... Continue reading
Posted Jul 31, 2011 at Marco Tedone's blog
Happy to help Roger, hope your classes will go well.
Stephan thanks for the excellent post! I have updated this article including your thread dumper (slightly modified to accomodate my environment). The combination of the two offers a powerful tool to be proactive about Java heap usage and investigate memory issues.
Hi, thank you for your kind words...It's an honour to be able to inspire someone with what I write which is, I suppose, the main reason behind my blog. I hope I can keep writing interesting things for you and my other followers. Regards, Marco
Hi, Everyone of us who has developed Java applications more involving that the HelloWorld example knows of the OOME. This happens when the Tenured Generation (old space) is filled up and there is no more available memory on the HEAP. Heinz Kabutz, the world famous Java Champion and low-level, performant Java educator explains this approach in his newsletter 92. This article builds on his newsletter and demonstrates how to introduce, very simply, an OutOfMemoryError warning system in your applications with the help of Spring. The beauty of this solution is that it uses features natively available in the JDK by... Continue reading
Posted Jul 17, 2011 at Marco Tedone's blog
AspectJ is the most powerful AOP framework in the Java space; Spring is the most powerful enterprise development framework in the Java space. It's not surprise that combining the two should lead to wonderful things...In this article I'm going to show a very simple, yet complete, example where I have injected an AspectJ aspect with a Spring bean. Setting the Maven project First, let's have a look at the Maven pom.xml showing all required dependencies and plugins: <project xmlns="http://maven.apache.org/POM/4.0.0" xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance" xsi:schemaLocation="http://maven.apache.org/POM/4.0.0 http://maven.apache.org/xsd/maven-4.0.0.xsd"> <modelVersion>4.0.0</modelVersion> <groupId>uk.co.jemos.experiments</groupId> <artifactId>aspectj-test</artifactId> <version>1.0.0-SNAPSHOT</version> <packaging>jar</packaging> <name>aspectj-test</name> <url>http://maven.apache.org</url> <properties> <project.build.sourceEncoding>UTF-8</project.build.sourceEncoding> <spring.version>3.0.5.RELEASE</spring.version> </properties> <build> <plugins> <plugin> <groupId>org.apache.maven.plugins</groupId> <artifactId>maven-compiler-plugin</artifactId> <version>2.3.2</version> <configuration>... Continue reading
Posted Jul 16, 2011 at Marco Tedone's blog
Image
Introduction Towards the end of last week I started thinking how to deal with large amounts of XML data in a resource-friendly way.The main problem that I wanted to solve was how to process large XML files in chunks while at the same time providing upstream/downstream systems with some data to process. Of course I've been using JAXB technology for few years now; the main advantage of using JAXB is the quick time-to-market; if one possesses an XML schema, there are tools out there to auto-generate the corresponding Java domain model classes automatically (Eclipse Indigo, Maven jaxb plugins in various... Continue reading
Posted Jun 26, 2011 at Marco Tedone's blog