June 12, 2009 3:06 PM
Posted by: Jan Stafford
, code review 101
, Pete Moore
In an interview this week, Atlassian engineer/Nerd Herder, Pete Moore, told me that he got good news and bad news from software developers and engineers at JavaOne 2009 this year. The good news was that developers had moved beyond Code Review 101, but the down side was a lack of adoption of cloud and some backwards thinking about tool purchasing.
A good number of software engineers at JavaOne 2009 told Moore, that they still have to fight with management for approval to buy lightweight development tools. Wait, there’s a punchline: The big surprise is that the managers aren’t approving these requests due to lack of money, but rather because the managers “still believe in top-down purchasing of suites and one-size-fits-all,” Moore said. He couldn’t believe that the people holding development purse-strings had such an antiquated approach to buying software. Well, actually, he called them “ignorant managers.”
Fortunately, Moore said, Atlassian’s products are priced low enough that “most teams can sidestep the management silliness, because it fits in their discretionary budgets.”
I met Moore at JavaOne, where he showed me an animated 3D tee shirt logo. We talked about Atlassian’s comprehensive Java-based plugin architecture, a subject that drew a lot of interest from attendees in the booth. Here’s an excerpt from our conversation in this video.
Moore spent a lot of time at JavaOne talking about the nuts and bolts of integrating plugins into real life environments. “I think this underlines that engineers still want pragmatic point solutions,” he said when we talked this week. “Best of breed [software] was the catch cry a few years ago, and it’s still what the front lines want, they now just want them to work together!”
This was Moore’s fifth JavaOne, and “it was sensational that I didn’t have anyone who didn’t know what code coverage or peer code review was,” he said. That hasn’t been the case in the past, when he’s had to explain what per-test coverage was, “or worse, the merits of unit testing.”
Two years ago when Atlassian introduced its Crucible code review tool “the majority of
young developers had never done formal code review, and everyone was talking about pair programming,” he said. “This year, whilst there were still heaps of people who weren’t doing reviews, it seemed that every second person specifically wanted a demo of Crucible.”
Developers haven’t stepped up in another area, though. “I was disappointed not to see more development in the cloud in real life,” Moore said. Engineers like Atlassian’s Bamboo tool, with which one could start agents and do builds in the cloud. “But almost to a person they
said, ‘There’s no way we’d be allowed to use that.’ Here’s hoping that next year the story will be different.”
June 11, 2009 5:25 PM
Posted by: MichaelDKelly
Association for Software Testing
, Rob Sabourin
, Software testing
, Tim Coulter
Next month, the Association for Software Testing (AST) will hold the fourth annual Conference of the Association for Software Testing (CAST) in Colorado Springs, Colorado. This will be the first year I won’t be attending, so I wanted to take a chance to catch up with some of the speakers to talk to them about their papers and presentations. The first pair of speakers I was able to catch up with were giving the closing keynote for the conference: Rob Sabourin and Tim Coulter.
Rob Sabourin is presently the President of AmiBug.Com Inc, a frequent guest lecturer at McGill University, the author of a short book illustrated by his daughter Catherine entitled “I Am a Bug,” a regular author of articles of software engineering topics, and he’s a regular speaker at just about every software testing conference you’ve heard of.
Tim Coulter is a software developer for The Open Planning Project, has participated in over ten software testing peer workshops, and he brings a fresh perspective to the practice of software testing which you can read on his blog at OneOfTheWolves.com.
Both Sabourin and Coulter are regulars at CAST, and this year they are taking on a rather interesting challenge with their closing keynote. Their talk, “Tim Bits: What I Learned About Software Testing at CAST 2009″ will be an attempt to summarize lessons learned from the 2009 talks and will use a mix of improv and group participation to make the lessons specific and relevant.
“We came up with the idea of ‘Tim Bits’ at a peer conference,” said Sabourin. “I think it was at a Workshop on Performance and Reliability in New York city in which I asked Tim to give us some quick lightening encapsulations of lessons he learned – as a novice – from presentations made by experienced professionals. Tim Bits is also the name of a popular doughnut hole treat at the famous Canadian chain Tim Horton’s and thus the pun began.”
Sabourin, a speaking veteran, has a history of taking on challenging keynote presentations. He’s done light but lesson-filled talks about software testing based on lessons-learned from the Simpsons, Dr. Seuss, and the Looney Tunes Gang. Two of the best talks I’ve seen him give include “A Whodunit? Testing Lessons from the Great Detectives” and “Peanuts and Crackerjacks: What Baseball Taught Me about Metrics.” But given that this talk depends on material presented by others in the two or three days before the closing keynote, I asked Sabourin how they plan to prepare.
“I’ve prepared a number of closing keynote-style presentations at STAR conferences in which I focus on pain points of delegates and how lessons learned from specific conference or tutorial sessions can be applied. So when Tim and I were asked to combine Tim Bits with the ‘Closing Lessons Learned’ to create our closing keynote at Cast, we of course said yes.” Sabourin went on to outline their planning. “Tim and I plan to spend several evenings together in New Jersey the week before CAST preparing our Framework. But the actual content will be captured on-the-fly during CAST.”
When I asked if the on-the-fly preparation was at all intimidating, Sabourin responded: “Not at all! We will be well prepared in advance, and spending time dialoguing with delegates to capture real learnings and applications on the fly during the conference will be fun. I feel that our talk at CAST can be a solid practical constructive step to not only making CAST more useful, but also in demonstrating the power of actively participating in the AST community.”
I also asked Coulter how he felt about the talk, and he said: “I’m extremely excited for this talk. This is going to be up there as one of the coolest things I’ve done so far, in testing or otherwise. The AST community has done so much for me since I started college that I’m happy to do anything I can to give back.”
When asked what they would be working on for next year, the two of them listed off several topics.
“I have been working hard on task analysis of session based exploratory testing implemented in real projects and especially in frameworks like SCRUM,” said Sabourin. “In 2010 I hope to share these experiences. I’m also dedicating a lot of time to visual modeling in test design and testing in turbulent contexts.”
Coulter has been thinking about how to put theory into practice. “I’ve thought testing history would be an exciting thing to research, and if I can get a speech or paper to come out of that I would be more than happy. In total though, I don’t know what’s to come. I envision a talk titled ‘Trying to make it in testing while discovering the (software) world around me,’ but when that’ll come I don’t know.”
For more on the upcoming show, check out the CAST conference website. Another great resource is this site’s info on Rob Sabourin, his book, or his classes. And here’s how to learn more about Tim Coulter, the man behind ‘Tim Bits,’ and his current projects.
June 11, 2009 2:06 PM
Posted by: Jan Stafford
JavaFX, a development platform for creating rich Internet applications, was in the spotlight at the recent JavaOne Conference, and the timing was great for Gail and Paul Anderson. The first copies of their book, Essential JavaFX, had just arrived at the conference.
I talked to the Andersons shortly after Oracle CEO Larry Ellison had plugged JavaFX in the JavaOne opening keynote and they’d attended a packed-room JavaFX introductory session.
“We finished this book in record time, which is good considering the high level of interest in JavaFX we see here,” said Gail Anderson. “It was great to hear Larry Ellison praising it and see so many people in the session asking questions and showing so much enthusiasm.” Paul Anderson added: “There are six million Java developers, most of whom can benefit from using JavaFX to create RIAs.” In particular, he said, anyone – not just Java programmers – creating RIAs that are rich in graphics and multimedia content could simplify their projects by using JavaFX.
JavaFX is needed, they said, because other programming languages – such as AJAX – are code-based and not standardized. JavaFX, on the other hand, is a graphical tool that focuses more on visualization and a graphical approach to programming than on code. JavaFX is basically a scripting language built upon and fully integrated with the Java Runtime Environment (JRE). JavaFX applications will run on any desktop and browser that runs the JRE and on top of mobile phones running JavaME.
Let’s hear more about JavaFX from the Andersons themselves in this video excerpt from our interview.
June 10, 2009 4:30 PM
Posted by: MichaelDKelly
Everyone wants to finish the application development project he or she is working on. It’s a big deal to complete something. It makes you feel good. You get to cross something off a list or feel the satisfaction of seeing software you worked on make someone’s life better.
Sometimes there’s confusion about what it means to be “done.” Does being “done” mean I’m done? Or that the team’s done? Or that the date we said we’d be done has arrived? Or that the software is finally out the door? Confusion on what it means to be done is a dangerous thing.
Nothing is worse than someone saying they finished something — and sincerely believing they had — to later find out that you both had a different impression of what it meant to be finished. When it happens, you have to deal with both the work, and rework, required to get the item completed and the potential lost of trust on future work.
On my current team, we talk a lot about being done. It’s a big deal. We’ve even developed some bullets around what it means to be done with critical tasks.
During a sprint, a story is “done” when it has been:
- unit tested;
- peer reviewed;
- all alerts have been logged;
- feature tested;
- any defects have been fixed;
- and the product owner accepts the story at sprint review.
A sprint is “done” when:
- all the sprint goals are met;
- all the stories have been accepted by the product owners;
- the team has performed their retrospective;
- and all the work for that sprint has been scheduled and moved to the appropriate release.
Outside of a sprint, a release is “done” when:
- all stories have been merged in;
- all defect fixes have been merged in;
- the merge has been peer reviewed;
- all outstanding test charters for the release have been executed;
- all final regression testing is completed;
- any user acceptance testing is completed;
- all the configuration management work is completed;
- all the configuration management work has been peer reviewed;
- and the release is deployed to production.
So how did our definitions for the word “done” become lists? Each bullet tells a small story about our team and the way we work. Many of the bullet points imply development practices (like peer reviews, unit testing, and exploratory testing) while others are milestones or events (like product owner acceptance or deployment). You get a feel for both our process, and our history when you look at what it means for us to be done.
Think about your own team. What does done mean for you? Is that a shared meaning? Ask around. If done means something different for you or your team, consider posting your meaning in a comment below.
June 5, 2009 5:07 PM
Posted by: Jan Stafford
, Java One
, Peter Moore
Get ready to see the absolute best demo of this year’s JavaOne. No, it’s not a demo of a product that’s for sale. It’s just for fun.
Roaming the exhibit hall at JavaOne here in San Francisco, I met Pete Moore, Nerd Herder at Atlassian. Yes, Nerd Herder is his title. First off, we spent some time talking about Atlassian’s Java powered products. Next, we talked about living in Sydney — a dream of mine. Then, Pete gave me a tee shirt and showed me that tee shirt in action.
What you’ll see is my video of the large screen on which the demo takes place. Remember the camera isn’t pointed at Pete. Believe me, in person, it’s even better.
After this, I’ll look at tee shirt designs in a completely different way.
June 3, 2009 3:49 AM
Posted by: Jan Stafford
On the first day of JavaOne, Appistry showcased its customer Clearent LLC’s successful private-cloud implementation of a merchant payment processing application with Appistry’s CloudIQ platform. My ears perk up when I hear the words “cloud” and “user” because I’ve heard so much about cloud computing and so little about deployments of it. So, I grabbed the chance to interview Sam Charrington, vice president of product management for St. Louis-based Appistry.
In our interview, Charrington talked about private clouds versus public clouds, advised software testers and developers about what to look for in a cloud platform, compared the features of Appistry’s cloud platform to those of VMware and Microsoft and commented on Appistry’s user stories and role in cloud computing at the enterprise application level.
I asked Charrington what software testers or development teams be looking for in a cloud platform. He responded:
“We’ve found that when these kinds of teams are looking at a cloud environment to enhance the way they deliver product, the focus needs to be on three things: abstraction, automation and unification. Abstraction and automation are key because they differentiate true cloud solutions from garden variety virtualization and ensure that the teams will see the maximum acceleration possible from the cloud deployment. Unification is important because when you peel back the layers on any large-scale private cloud initiative, what you see are a number of distinct application environments working in harmony with one another: a true flow of applications and infrastructure across the cloud. Being able to manage all this in a unified way ensures that costs remain low as the environment scales.”
Responding to my questions about cloud adoption, Charrington noted that private clouds have become especially popular for enterprises seeking to enhance development/test environments.
“One of our favorite case studies is the work being done by a Fortune 500 transportation services company, a user of the Appistry CloudIQ Platform,” said Charrington. “In addition to running their production environment, this customer’s CloudIQ Platform-powered private cloud has allowed them to significantly enhance dev/test operations. The ability to effortlessly reconfigure development and test environments on the fly has allowed them to achieve a number of very specific outcomes, including the ability to create new application environments in minutes, down from weeks, and an increase in the server-to-operator ratio by a factor of 10 — as compared to traditional virtualization — resulting in a reduction of operational labor costs.”
Next I asked Charrington to offer examples of when a company should use a private clouds instead of hosted clouds, and vice versa. He replied:
“Private clouds allow enterprises to reap many of the advantages of cloud computing, without the limitations of public clouds in areas such as security, control, visibility and governance. Many enterprises see their private cloud as a starting place, and the centerpiece of an over-arching enterprise cloud strategy that also includes the use of public clouds where appropriate.”
Charrington provides more private versus public cloud comparisons in this video clip, filmed at JavaOne.
Charrington also gave me a rundown of Appristry’s flagship products, CloudIQ Manager and CloudIQ Engine. CloudIQ Manager software facilitates the creation of a private cloud and provides tools for migration to that cloud and management of the applications that live in it. CloudIQ Engine is cloud middleware that provides services and APIs for developers of new “cloud native” applications, offering management components for scaling, optimizing performance and maintaining reliability.
So, I asked, what are the key differences between a private-cloud platform VMware’s or Microsoft’s cloud platform?
“VMware is an infrastructure-focused offering; meaning, in the end, they provide the enterprise with a way to manage virtual machines. VMware and other infrastructure and virtualization technologies are complementary to CloudIQ Platform. When virtualization is present we can ride on top of it, providing abstraction, automation and the unification of disparate cloud environments, as well as much needed application-level services.
“Microsoft Azure, on the other hand, is a platform-as-a-service offering. One key difference between CloudIQ Platform and Azure is the fact that with Azure you are locked in to Microsoft’s infrastructure, while with our platform you can self-host or run on any public cloud infrastructure like Amazon EC2 or GoGrid.”
Appistry’s products support the Microsoft .NET technology stack, said Charrington. Indeed, he said, “some enterprises are starting to look to us as a private cloud version of Azure.”
We circled back to how cloud computing, whether in the private or public form, can benefit software development and testing teams. The real case for the cloud, said Charrington, is availability of resources. Software developers and tester need access to highly dynamic environments in order to be most effective. Yet, getting those resources is usually difficult.
“Anyone who has ever needed to wait days, weeks or even months before new hardware or environments were provisioned knows this problem painfully well,” said Charrington.
Making the creation and dissolution of these application environments fast and painless is a key focus area for our cloud platform.”
Here’s a quick description of Appistry’s project with Clearent LLC.
June 2, 2009 8:06 PM
Posted by: Jan Stafford
Sun CEO Jonathan Schwartz was the first onstage, and Sun co-founder Scott McNealy got a standing ovation; but Oracle CEO was the the true star of this morning’s opening keynote at JavaOne.
Ellison reassured attendees that he and Oracle are behind Java 100%, stating that all of Oracle’s product — except its SQL database — are based on Java. “We are going to continue to invest and accelerate our investment” in Java, Ellison declared.
For on-the-spot commentary, I turned to TheServerSide.com’s top editor, Peter Varhol. In this video, he discusses the keynote’s highlights, including announcements of new products like JavaFX 1.2, Java SE 1.6_14, and Ellison’s big pitch for JavaFX.
May 26, 2009 7:38 PM
Posted by: Rick Vanover
, Rick Vanover
There is no doubt that test environments are the lifeblood of high-quality technology solutions. In a recent discussion with another IT professional, the issue of test environment licensing came up and clearly became a grey area that is applied differently between organizations. In the case of Microsoft licensing, larger enterprises have a distinct advantage to licensing test environments when engaged in Microsoft Software Assurance (SA). While there may be slight differences of what differentiates a test and QA environment, generally a QA system has a longer lifespan. Further, QA systems usually are fully licensed in all regards like their production counterparts.
Fine print and vague or missing clauses are common in software licensing, and test environment licenses share those same ills. For organizations that do not maintain Microsoft SA, the base operating system licensing can be very expensive to maintain for Windows Server, SQL Server database and other systems. For the operating system, evaluation licenses can usually accommodate temporary use. For ongoing use, the practice and options become unclear. The Microsoft SQL Server product continues to offer a free edition, Microsoft SQL Server 2008 Express. The issue from a test/QA standpoint becomes if using the Express edition is representative of the end configuration or product being tested.
This is not an issue for the most part for organizations utilizing free products end-to-end, such as Linux for an operating system and open databases such as MySQL. There may be licensing considerations if any commercial tools or other licensed software titles are used or tested, however.
How are you approaching this topic? Ideally all systems are licensed the same way, but the informal tiers of testing may be omitted from an organization’s larger licensing initiative. Share your comments below on test environment licensing.
May 21, 2009 1:53 PM
Posted by: Jan Stafford
Agile software development
Jon Kern, co-author of the Agile Manifesto, told me recently that many companies won’t adopt the agile development methodology soon. Why? Some companies are doing just fine with waterfall, he said, because it has worked in the past and is still working. Also, they see little chance that their business analysts and leaders will agree to get involved in the development process.
Intrigued by Kern’s assessment, I asked some software development and testing veterans for their views. I asked about their work with and opinions on why companies stick with waterfall development.
It’s true that waterfall methodologies can work quite well, said Mike Kelly, a software testing and development consultant and a fan of the agile methodology.
“I know this will surprise some people, but I’ve worked on several successful waterfall projects,” Kelly said. “It’s crazy, I know. Seriously, I’ve been a member of teams that do roughly the same thing, with minor variation, again and again. The business context is well understood, the requirements are mostly right upfront, and the team kind knows what needs to be done to be successful. If it’s working, it might not make sense to change it.”
Bernard Golden — CEO of IT infrastructure consulting firm, HyperStratus – has worked with development teams that don’t think the agile methodology can be effective in large-scale, enterprise projects. They think that agile is a good micro practice that should live within a good macro project management/planning process. To an extent, he agrees, and thinks agile is “best suited for scoped projects that have small user populations — built on top of robust system infrastructures built as traditional projects.”
Golden is also doubtful that having a “business person be part of the development process ensures that systems will achieve user satisfaction.” Thinking that “one guy can subsume all end user viewpoints and prevent end user political unhappiness strikes me as quite naive about the way organizations works.”
In this short video clip, Golden explains more about why agile may not stack up.
Kelly has also worked on projects where business managers just didn’t want to do more than turn in a list of requirements. “The business [people] didn’t get into business to talk about development methodologies, and to them, it’s often a distraction,” he said.
Requirements analysis expert Robin Goldsmith believes business managers don’t believe that doing systems work is their job.
“Agile is very much driven from a programmer’s perspective, and business folks don’t identify, understand, or agree with it,” said Goldsmith, president of the consultancy, Go Pro Management Inc. “ As an analogy, I have many years of experience working in the most technical of programming roles within IT; but these days I have no interest in fooling around with software internals—I just want stuff to work, and that’s not unreasonable.”
Goldsmith sees the agile-versus-waterfall debate as the subtext behind a larger business-versus-IT cultural issue that causes continual problems for software projects.
Do you agree? I’ll be continuing this discussion with software testing and development experts, and your input would be very valuable. You can share your experiences and views by commenting below or writing to me at firstname.lastname@example.org.