Skip to content

Software Development Blogs: Programming, Software Testing, Agile Project Management

Methods & Tools

Subscribe to Methods & Tools
if you are not afraid to read more than one page to be a smarter software developer, software tester or project manager!

Feed aggregator

The No Estimates principle: The importance of knowing when you are wrong

Software Development Today - Vasco Duarte - Tue, 09/23/2014 - 04:00

You started the project. You spent hours, no: days! estimating the project. The project starts and your confidence in its success is high.

Everything goes well at the start, but at some point you find the project is late. What happened? How can you be wrong about estimates?

This story very common in software projects. So common, that I bet you have lived through it many times in your life. I know I have!

Let’s get over it. We’re always wrong about estimation. Sometimes more, sometimes less and very, very rarely we are wrong in a way that makes us happy: we overestimated something and can deliver the project ahead of (the inflated?) schedule.

We’re always wrong about estimation.

Being wrong about estimates is the status quo. Get over it. Now let’s take advantage of being wrong! You can save the project by being wrong. Here’s why...

The art of being wrong about software estimates

Knowing you are wrong about your estimates is not difficult after the fact, when you compare estimates to actuals. The difficult part is to make a prediction in a way that can tested regularly, and very early on - when you still have time to change the project.

Software project estimates as they are usually done, delay the feedback for the “on time” performance to a point in time when there’s very little we can do about it. Goldratt grasped this problem and made a radical suggestion: cut all estimates in half, and use the rest of the time as a project buffer. Pretty crazy hein? Well, it worked because it forced projects to face their failures much earlier than they would otherwise. Failing to meet a deadline early on in the life-cycle of the project gave them a very powerful tool in project management: time to react!

The #NoEstimates approach to being wrong...and learning from it

In this video I explain shortly how I make predictions about a possible release date for the project based on available data. Once I make a release date prediction, I validate it as soon as possible, and typically every week. This approach allows me to learn early enough when I’m wrong and then adjust the project as needed.

We’re always wrong, the important thing is to find out how wrong, as early as possible

After each delivery (whether it is a feature or a timebox like a sprint), I update my prediction for the release date of the project based on the lead time or throughput rate so far. After updating the release date projection, I can see whether it has changed enough to require a reaction by the project team. I can make this update to the project schedule without gathering the whole team (or "the chosen ones") into a room for an ungodly long estimation meeting.

If the date has not changed outside the originally interval, or if the delivery rate is stable (see the video), then I don’t need to react.

When the release date projection changes to a time outside the original interval, or the throughput rate has become unstable (did you see the video?), then you need to react. At first to investigate the situation, and later to adjust the parameters in your project if needed.

Conclusion

The #NoEstimates approach I advocate will allow you to know when the project has changed enough to warrant a reaction. I make a prediction, and (at least) every week I review that prediction and take action.

Estimates, done the traditional way, also give you this information, but too late. This happens because of the big-batch thinking the reliance on estimations enables (larger work items are ok if you estimate), and because of the delayed dependency integration it enables (estimated projects typically allow for teams that are dependent to work separately because of the agreed plan).

The #NoEstimates approach I advocate has one goal: reduce feedback cycle. These short feedback cycles will allow you to recognise early enough how wrong you were about your predictions, and then you can make the necessary adjustments!

Picture credit: John Hammink, follow him on twitter

The Cost of Value in the Future

Herding Cats - Glen Alleman - Tue, 09/23/2014 - 01:02

CIBCOn my way to a client in Toronto, the logo advertisment for CIBC said...

The future emerges

And since that future is rarely known in advance, the notion of Value in the future and the cost of producing that value came to me.

Value is what happnes to something when it it useful. Anything material or immaterial is of value only because it is useful for or to somebody. 

Thr cost of this value is used to assess its usefulness. This is the affordability of value principle of Microeconomics. As well the affordability of the Better Buying Power initiatives in our domain. The Microeconomics principles askswhat is the lost opportunity cost of any decision made by spending - or not spending - a scarce resource  to acquire something of value?

If this value and its cost are in the future, then there is uncertainty (reducible and irreducible) in both the Value and the Cost of that value. In the absence of estimates of the Value and the Cost, decisions about choices between alternatives can not be informed.

The notion of making decisions about future outcomes, based onValue and the Cost of that value without estimating the cost, risk, and produced value violates the principle of decision making in the presence of scarce resources - time, money, talent.

So when we hear there are...

  • Decision making framework for project that do not require estimates
  • Investment models for software projects that do not require estimates
  • Project management approaches using risk management, scope management, and progress reporting that do not require estimates
  • Ways toProve that estimates are not needed

Then ask some hard questions of how the principles of microeconomics of software development can be set aside, and demand tangible evidence showing these conjectures are actually possible in any development domain where the future emerges while spending other peoples money.

 

Related articles Why Is It Hard To Manage Projects? What Do We Mean When We Say "Agile Community?" Incremental Commitment Spiral Model Principles Trump Practices and Processes Focus on Value is Only ½ The Equation How Not To Make Decisions Using Bad Estimates The Value of Information Microeconomics
Categories: Project Management

Kanban: The Difference Between Constraints and Bottlenecks

IMG_3635The work performed to develop, test and implement any software package is a process flow. Not every team or organization will follow the same flow. Many factors can influence the flow of the work in order to deliver maximum value. Kanban is a popular technique to help a team or organization visualize, control and improve the flow of work so that more value is delivered. Kanban is especially valuable because the visualization exposes bottlenecks and constraints. When applying Kanban, one of the values implicit is adopting wait and see approach to making process changes.  In Kanban, you only make changes when data exposes a constraint or bottleneck. The determination of whether any flow problem is a constraint or bottleneck will affect how they are solved. While similar, bottlenecks and constraints are different and these differences drive how we address them.

A bottleneck is a resource that has a capacity that is less to demand placed on that resource while a constraint is a physical factor that limits performance. Applied to the typical software development or enhancement project, resources typically reflect the amount of effort people can apply. A tester with a backlog of 100 hours of testing to perform would be a bottleneck.  In the same development environment, an example of a constraint would be if the organization had one system testing environment and two teams wanted to use that at the same time and could not due to systemic conflicts. The limitations in the environment would be a constraint. Bottlenecks can be solved by changing or adding resources while constraints require changing the environment as part of changing resources.

Our poor tester is saddled with a backlog of 100 hours of testing.  The backlog reflects a work in progress that is sitting, waiting to be tested to determine whether the code works and meets business requirements. Defects in that code can potentially impact other work that is currently waiting to be tested, currently being coded or work that has previously tested, therefore waiting to test delays feedback.  Two simple changes can be made to improve flow.  The first is slow the amount of work coming to the tester so that work gets to the tester just when it can be tested (reduce the amount of code being written or changed) or increase the number of testers (real or virtual). To remove the bottleneck the organization could reduce the amount of work that needs to be tested or increase the capacity of testing by adding tester. Bottlenecks can be solved by adding, rearranging or reducing resources used in the overall process without changing the environment..

In the article Kanban: Process Improvement and Bottlenecks we used the metaphor of water pouring from a bottle to visualize bottlenecks.  The neck of the bottle is a constraint. If the goal was to improve flow would need limit the amount of water entering the neck of the bottle or remove the constriction.  Adding more neck to the bottle would not affect the flow positively.  In our testing environment example, in order to improve the flow and reduce waiting we would either have to plan project work better so that only one group wanted to use the environment at a time or make a physical change to the test architecture by adding a second (or perhaps more) system test environment.  In order to solve constraints the environment must be changed to solve the flow issue (other resources may also be changed in addition).

Note – Either case requires an overall systems view of the development and enhancement process used by the organization or team. This ensures that removing one constraint or bottleneck just doesn’t create another!

The difference between bottlenecks and constraints may seem to be overly nuanced however understanding that a constraint can be addressed by adjusting resources whereas a bottleneck will require physical changes to the environment is critical to ensuring effective change.

 


Categories: Process Management

New D-Series of Azure VMs with 60% Faster CPUs, More Memory and Local SSD Disks

ScottGu's Blog - Scott Guthrie - Mon, 09/22/2014 - 19:19

Today I’m excited to announce that we just released a new set of VM sizes for Microsoft Azure. These VM sizes are now available to be used immediately by every Azure customer.

The new D-Series of VMs can be used with both Azure Virtual Machines and Azure Cloud Services.  In addition to offering faster vCPUs (approximately 60% faster than our A series) and more memory (up to 112 GB), the new VM sizes also all have a local SSD disk (up to 800 GB) to enable much faster IO reads and writes.

The new VM sizes available today include the following:

General Purpose D-Series VMs

Name vCores Memory (GB) Local SSD Disk (GB) Standard_D1 1 3.5 50 Standard_D2 2 7 100 Standard_D3 4 14 200 Standard_D4 8 28 400

 

High Memory D-Series VMs

Name vCores Memory (GB) Local SSD Disk (GB) Standard_D11 2 14 100 Standard_D12 4 28 200 Standard_D13 8 56 400 Standard_D14 16 112 800

For pricing information, please see Virtual Machine Pricing Details.

Local SSD Disk and SQL Server Buffer Pool Extensions

A temporary drive on the VMs (D:\ on Windows, /mnt or /mnt/resource on Linux) is mapped to the local SSDs exposed on the D-Service VMs, and provides a really good option for replicated storage workloads, like MongoDB, or for significantly increasing the performance of SQL Server 2014 by enabling its unique Buffer Pool Extensions (BPE) feature.

SQL Server 2014’s Buffer Pool Extensions allows you to extend the SQL Engine Buffer Pool with the memory of local SSD disks to significantly improve the performance of SQL workloads. The Buffer Pool is a global memory resource used to cache data pages for much faster read operations.  Without any code changes in your application, you can enable the buffer pool support with the SSDs of the D-Series VMs using a simple T-SQL query with just four lines:

ALTER SERVER CONFIGURATION
SET BUFFER POOL EXTENSION ON
SIZE = <size> [ KB | MB | GB ]
FILENAME = 'D:\SSDCACHE\EXAMPLE.BPE'

No code changes are required in your application, and all write operations will continue to be durably persisted in VM drives persisted in Azure Storage. More details on configuring and using BPE can be found here.

Start Using the D-Series VMs Today

You can start using the new D-Series VM sizes immediately.  They can be easily created and used via both the current Azure Management Portal as well as Preview Portal, as well as from the Azure management command-line/scripts/APIs.

To learn more about the D-Series please read this post which has even more details about them, as well as check out the Azure documentation center.

Hope this helps,

Scott

omni
Categories: Architecture, Programming

How Facebook Makes Mobile Work at Scale for All Phones, on All Screens, on All Networks

Update: Instagram Improved Their App's Performance. Here's How.

When you find your mobile application that ran fine in the US is slow in other countries, how do you fix it? That’s a problem Facebook talks about in a couple of enlightening videos from the @scale conference. Since mobile is eating the world, this is the sort of thing you need to consider with your own apps.

In the US we may complain about our mobile networks, but that’s more #firstworldproblems talk than reality. Mobile networks in other countries can be much slower and cost a lot more. This is the conclusion from Chris Marra, Project Manager at Facebook, in a really interesting talk titled Developing Android Apps for Emerging Market.

Facebook found in the US there’s 70.6% 3G penetration with 280ms average latency. In India there’s 6.9% 3G penetration with 500ms latency. In Brazil there’s 38.6% 3G penetration with more than 850ms average latency.

Chris also talked about Facebook’s comprehensive research on who uses Facebook and what kind of phones they use. In summary they found not everyone is on a fast phone, not everyone has a large screen, and not everyone is on a fast network.

It turns out the typical phone used by Facebook users is from circa 2011, dual core, with less than 1GB of RAM. By designing for a high end phone Facebook found all their low end users, which is the typical user, had poor user experiences.

For the slow phone problem Facebook created a separate application that used lighter weight animations and other strategies to work on lower end phones. For the small screen problem Facebook designers made sure applications were functional at different screen sizes.

Facebook has moved to a product organization. A single vertical group is responsible for producing a particular product rather than having, for example, an Android team try to create all Android products. There’s also a horizontally focussed Android team trying to figure out best practices for Android, delving deep into the details of what makes a platform tick.

Each team is responsible for the end-to-end performance and reliability for their product. There are also core teams looking at and analyzing general performance problems and helping where needed to improve performance.

Both core teams and product teams are needed. The core team is really good at instrumentation and identifying problems and working with product teams to fix them. For mobile it’s important that each team owns their full product end-to-end. Owning core engagement metrics, core reliability, and core performance metrics including daily usage, cold start times, and reliability, while also knowing how to fix problems. 

To solve the slow network problem there’s a whole other talk. This time the talk is given by Andrew Rogers, Engineering Manager at Facebook, and it’s titled Tuning Facebook for Constrained Networks. Andrew talks about three methods to help deal with network problems: Image Download Sizes, Network Quality Detection, Prefetching Content.

Overall, please note the immense effort that is required to operate at Facebook scale. Not only do you have different phones like Android and iOS, you have different segments within each type of phone you must code and design for. This is crazy hard to do.

Reducing Image Sizes -  WebP saved over 30% JPEG, 80% over PNG
Categories: Architecture

Xebia KnowledgeCast Episode 4: Scrum Day Europe 2013, OpenSpace Knowledge Exchange, and Fun With Stickies!

Xebia Blog - Mon, 09/22/2014 - 16:44

xebia_xkc_podcast
The Xebia KnowledgeCast is a bi-weekly podcast about software architecture, software development, lean/agile, continuous delivery, and big data. Also, we'll have some fun with stickies!

In this fourth episode, we share some impressions of Scrum Day Europe 2013 and Xebia's OpenSpace Knowledge Exchange. And of course, Serge Beaumont will have Fun With Stickies! First, we interview Frank Bakker and Evelien Roos at Scrum Day Europe 2013. Then, Adriaan de Jonge and Jeroen Leenarts talk about continuous delivery and iOS development at the OpenSpace XKE. And in between, Serge Beaumont has Fun With Stickies!

Frank Bakker and Evelien Roos give their first impressions of the Keynotes at Scrum Day Europe 2013. Yes, that was last year, I know. New, more current interviews are coming soon. In fact, this is the last episode in which I use interviews that were recorded last year.

In this episode's Fun With Stickies Serge Beaumont talks about hypothesis stories. Using those, ensures you keep your Agile really agile. A very relevant topic, in my opinion, and it jells nicely with my missing line of the Agile Manifesto: Experimentation over implementation!

Adriaan de Jonge explains how automation in general, and test automation in particular, is useful for continuous delivery. He warns we should focus on the process and customer interaction, not the tool(s). That's right before I can't help myself and ask him which tool to use.

Jeroen Leenarts talks about iOS development. Listening to the interview, which was recorded a year ago, it's amazing to realize that, with the exception of iOS8 having come out in the mean time, all of Jeroen's comments are as relevant today as they were last year. How's that for a world class developer!

Want to subscribe to the Xebia KnowledgeCast? Subscribe via iTunes, or use our direct rss feed.

Your feedback is appreciated. Please leave your comments in the shownotes. Better yet, use the Auphonic recording app to send in a voicemessage as an AIFF, WAV, or FLAC file so we can put you ON the show!

Credits

Project Driven Organizations

Herding Cats - Glen Alleman - Mon, 09/22/2014 - 16:18

The notion that projects are somehow no longer needed fails to address how to replace the processes, governance, and stewardship of a business's assets while producing the needed value from those expenditures.  Here's a framework for management a firms funds in producing value in exchange of those funds.

Lifecycle from Glen Alleman   This governance process can be guided by Project governance from Glen Alleman Related articles Agile as a Systems Engineering Paradigm Performance-Based Project Management(sm) Released Capabilities Based Planning and Development Why Is It Hard To Manage Projects?
Categories: Project Management

The Caffeinated Coder: Is Caffeine Good or Bad?

Making the Complex Simple - John Sonmez - Mon, 09/22/2014 - 15:00

For a long time I’ve wondered about the benefits or detriments of caffeine. I’ve always been one of those coffee drinkers who didn’t have to have coffee, but drank it when it was available. I’ve never really noticed how caffeine affected me, because I never really paid that much attention. But, I’ve always been curious, […]

The post The Caffeinated Coder: Is Caffeine Good or Bad? appeared first on Simple Programmer.

Categories: Programming

F#unctional Londoners 2014

Phil Trelford's Array - Sun, 09/21/2014 - 22:40

2014 has been another crazy year for the F#unctional Londoners meetup with over 20 sessions already. Thanks to our hosts Skills Matter we’ve been able to hold a meetup roughly once every 2 weeks.

Here’s a run down of the year so far and what’s coming up.

January

Ross kicked off the year with a deep dive to his LINQ enabled erasing SQL Type Provider.

Following on, in May, Ross left the sunny shores of Southend to tour the east coast with the talk covering NYC, Washington DC and Nashville along the way.

sql-provider

First seen at DunDDD in Dundee, Anthony’s excellent talk went on to be featured at CodeMesh London too.

With F# built-in to Xamarin Studio you can easily target iOS, Android and Mac.

February

Tomas returned to London to talk about his work on Deedle while at Blue Mountain Capital in New York.

As a follow on from the talk Tomas ran a hands on session using Deedle to explore world climate, the titanic, stock market trends and finally US debt.

March

There was a huge turnout for Scott’s hugely informative and at times somewhat amusing talk first seen at NDC London.

set phasers to null

Eirik Tsarpalis and Jan Dzik, from Nessos, presented their work on MBrace a programming model and cluster infrastructure for effectively defining and executing large scale computation in the cloud.

In this hands on treasure hunt session, Tomas presented a series of data extraction tasks using type providers to find words to build a sentence.

April

Rob Lyndon introduced Deep Belief Networks and his GPU based implementation in Vulpes. This talk was repeated last week at the prestigious Strangeloop conference in St Louis!

May

Michael travelled up from Brighton for a hands on session on building type providers. Type Providers are a hot topic in the London group with a number of popular type providers produced by members including FSharp.Data, SQLProvider and Azure Storage.

Mixing biology and physics to understand stem cells and cancer (video)

Ben Hall from Microsoft Research Cambridge gave a fascinating talk about his work with a hybrid simulator in F# to explore how stem cells grow (and some worms!).

Stephen Channell gave a repeat of his excellent talk featured at FP Days and the F# in Finance conference on liquidity risk.

Ian was in town to run a session at the Progressive .Net Tutorials and gave a repeat of his excellent talk from DDD North.

June

F#unctional Londoners regular Isaac, aka the Cockney Coder, talked about his professional work with Azure including his Azure Storage type provider.

In this hands on session we used the material from Mathias Brandewinder’s session in San Francisco to have some fun drawing fractal trees.

In this session Gabriele Cocco talked about his work on FSCL, an F# to OpenCL compiler.

July

Borrowing material from Mathias again, we built a 2048 bot using the open source web testing library Canopy.



Grant popped down from Leeds to run a fun code golf session where the aim was to complete a task with the least number of characters.

August

Phil Nash talked about how he was using F# scripting at work along side his some of his C++ projects.

In this hands on session we looked at the popular parser combinator library FParsec, building a mini-Logo parser and interpreter.

September

James popped down from Edinburgh to talk about his work with Philip Wadler on the open source project FSharp.Linq.ComposableQuery.

Goswin Rothenthal talked about his work using FSharp scripting in the design of the Abu Dhabi Louvre building:

Coming up this Wednesday we have Evelina talking about some of her data science work at Cambridge.

November

On November 6-7th the Progressive F# Tutorials make a return with expert speakers including Don Syme, Tomas Petricek, Mark Seemann, Andrea Magnorsky, Michael Newton, Jérémie Chassaing, Mathias Brandewinder, Scott Wlaschin and Robert Pickering.

ProgFSharp2014Don’t miss the special offer that runs up to the end of Evelina’s talk giving a 20% discount to members, brining the price down to a barmy 200GBP, use code F#UNCTIONAL-20.

Categories: Programming

SPaMCAST 308 – Michael West, Return on Process

www.spamcast.net

http://www.spamcast.net

Listen to Software Process and Measurement Cast 308 here!

Software Process and Measurement Cast number 308 features our interview with Michael West discussing his book Return on Process.  Process improvement can have a dramatic impact to an organization’s bottom line BUT ONLY with careful thought and planning.  Michael West explains that process improvements with real impact are rarely an accident.

Michael’s bio . . .

Michael West is a life-long practitioner and student of process improvement. He is the co-founder of Natural Systems Process Improvement (Natural SPI), a consultancy specializing in designing, developing, and deploying process systems that enable measurable business performance improvement gains. Mr. West’s process insights and innovations have helped many organizations in various sectors of the economy achieve real process and performance improvement. His process consulting clients include ATK, Autodesk, AVL, BAE, BB&T, Crane Aerospace, DCS, Deloitte, Sandia National Labs, Reliability First, and the US Navy. Mr. West frequently presents and speaks at industry conferences, and is the author of Real Process Improvement Using the CMMI (CRC Press, 2004) and Return On Process (ROP): Getting Real Performance Results from Process Improvement (CRC Press, 2013).

Contact Michael at:
Web: http://www.naturalspi.com/
Email: michael@naturalspi.com
Twitter: @ItsTheProcess

Did you like the interview?  Buy Michael’s books
Return On Process (ROP): Getting Real Performance Results from Process Improvement
Real Process Improvement Using the CMMI

Next

SPaMCAST 309 features our essay on Agile user acceptance testing. Agile user acceptance testing (AUAT) confirms that the output of a project meets the business’ needs and requirements. The concept of acceptance testing early and often is almost inarguable, whether you are using Agile or any other method. AUAT generates early customer feedback, which increases customer satisfaction and reduces the potential for delivering defects. The problem is that implementing an effective and efficient AUAT isn’t always easy.

 

Upcoming Events

DCG Webinars:

Agile Risk Management – It Is Still Important! October 24, 2014 11:230 EDT Has the adoption of Agile techniques magically erased risk from software projects? Or, have we just changed how we recognize and manage risk?  Or, more frighteningly, by changing the project environment through adopting Agile techniques, have we tricked ourselves into thinking that risk has been abolished?

 

Upcoming Conferences:

I will be presenting at the International Conference on Software Quality and Test Management in San Diego, CA on October 1.  I have a great discount code!!!! Contact me if you are interested.

I will be presenting at the North East Quality Council 60th Conference October 21st and 22nd in Springfield, MA.

More on all of these great events in the near future! I look forward to seeing all SPaMCAST readers and listeners that attend these great events!

The Software Process and Measurement Cast has a sponsor.

As many you know I do at least one webinar for the IT Metrics and Productivity Institute (ITMPI) every year. The ITMPI provides a great service to the IT profession. ITMPI’s mission is to pull together the expertise and educational efforts of the world’s leading IT thought leaders and to create a single online destination where IT practitioners and executives can meet all of their educational and professional development needs. The ITMPI offers a premium membership that gives members unlimited free access to 400 PDU accredited webinar recordings, and waives the PDU processing fees on all live and recorded webinars. The Software Process and Measurement Cast some support if you sign up here. All the revenue our sponsorship generates goes for bandwidth, hosting and new cool equipment to create more and better content for you. Support the SPaMCAST and learn from the ITMPI.

Shameless Ad for my book!

Mastering Software Project Management: Best Practices, Tools and Techniques co-authored by Murali Chematuri and myself and published by J. Ross Publishing. We have received unsolicited reviews like the following: “This book will prove that software projects should not be a tedious process, neither for you or your team.” Support SPaMCAST by buying the book here.

Available in English and Chinese.


Categories: Process Management

SPaMCAST 308 – Michael West, Return on Process

Software Process and Measurement Cast - Sun, 09/21/2014 - 22:00

Software Process and Measurement Cast number 308 features our interview with Michael West discussing his book Return on Process.  Process improvement can have a dramatic impact to an organization's bottom line BUT ONLY with careful thought and planning.  Michael West explains that process improvements with real impact are rarely an accident.

Michael’s bio . . .

Michael West is a life-long practitioner and student of process improvement. He is the co-founder of Natural Systems Process Improvement (Natural SPI), a consultancy specializing in designing, developing, and deploying process systems that enable measurable business performance improvement gains. Mr. West’s process insights and innovations have helped many organizations in various sectors of the economy achieve real process and performance improvement. His process consulting clients include ATK, Autodesk, AVL, BAE, BB&T, Crane Aerospace, DCS, Deloitte, Sandia National Labs, Reliability First, and the US Navy. Mr. West frequently presents and speaks at industry conferences, and is the author of Real Process Improvement Using the CMMI (CRC Press, 2004) and Return On Process (ROP): Getting Real Performance Results from Process Improvement (CRC Press, 2013).

Contact Michael at:
Web: http://www.naturalspi.com/
Email: michael@naturalspi.com
Twitter: @ItsTheProcess

Did you like the interview?  Buy Michael's books
Return On Process (ROP): Getting Real Performance Results from Process Improvement
Real Process Improvement Using the CMMI

Next

SPaMCAST 309 features our essay on Agile user acceptance testing. Agile user acceptance testing (AUAT) confirms that the output of a project meets the business’ needs and requirements. The concept of acceptance testing early and often is almost inarguable, whether you are using Agile or any other method. AUAT generates early customer feedback, which increases customer satisfaction and reduces the potential for delivering defects. The problem is that implementing an effective and efficient AUAT isn’t always easy.

 

Upcoming Events

DCG Webinars:

Agile Risk Management – It Is Still Important! October 24, 2014 11:230 EDT Has the adoption of Agile techniques magically erased risk from software projects? Or, have we just changed how we recognize and manage risk?  Or, more frighteningly, by changing the project environment through adopting Agile techniques, have we tricked ourselves into thinking that risk has been abolished?

 

Upcoming Conferences:

I will be presenting at the International Conference on Software Quality and Test Management in San Diego, CA on October 1.  I have a great discount code!!!! Contact me if you are interested.

I will be presenting at the North East Quality Council 60th Conference October 21st and 22nd in Springfield, MA.

More on all of these great events in the near future! I look forward to seeing all SPaMCAST readers and listeners that attend these great events!

The Software Process and Measurement Cast has a sponsor.

As many you know I do at least one webinar for the IT Metrics and Productivity Institute (ITMPI) every year. The ITMPI provides a great service to the IT profession. ITMPI’s mission is to pull together the expertise and educational efforts of the world’s leading IT thought leaders and to create a single online destination where IT practitioners and executives can meet all of their educational and professional development needs. The ITMPI offers a premium membership that gives members unlimited free access to 400 PDU accredited webinar recordings, and waives the PDU processing fees on all live and recorded webinars. The Software Process and Measurement Cast some support if you sign up here. All the revenue our sponsorship generates goes for bandwidth, hosting and new cool equipment to create more and better content for you. Support the SPaMCAST and learn from the ITMPI.

Shameless Ad for my book!

Mastering Software Project Management: Best Practices, Tools and Techniques co-authored by Murali Chematuri and myself and published by J. Ross Publishing. We have received unsolicited reviews like the following: “This book will prove that software projects should not be a tedious process, neither for you or your team.” Support SPaMCAST by buying the book here.

Available in English and Chinese.

Categories: Process Management

McKinsey on Unleashing the Value of Big Data Analytics

Big Data Analytics and Insights are changing the game, as more businesses introduce automated systems to support human judgment.

Add to this, advanced visualizations of Big Data, and throw in some power tools for motivated users and you have a powerful way to empower the front-line to better analyze, predict, and serve their customers.

McKinsey shares a framework and their insights on how advanced analytics can create and unleash new business value from Big Data, in their article:
Unleashing the value of advanced analytics in insurance

Creating World-Class Capabilities

The exciting part is how you can create a new world-class capability, as you bake Big Data Analytics and Insights into your business.

Via Unleashing the value of advanced analytics in insurance:

“Weaving analytics into the fabric of an organization is a journey. Every organization will progress at its own pace, from fragmented beginnings to emerging influence to world-class corporate capability.”

5-Part Framework for Unleashing the Value of Big Data Analytics

McKinsey's transformation involves five components.  The five components include the source of business value, the data ecosystem, modeling the insights, workflow integration, and adoption.

Via Unleashing the value of advanced analytics in insurance:

1. The source of business value Every analytics project should start by identifying the business value that can lead to revenue growth and increased profitability (for example, selecting customers, controlling operating expenses, lowering risk, or improving pricing). 2. The data ecosystem It is not enough for analytics teams to be “builders” of models. These advanced-analytics experts also need to be “architects” and “general contractors” who can quickly assess what resources are available inside and outside the company. 3. Modeling insights Building a robust predictive model has many layers: identifying and clarifying the business problem and source of value, creatively incorporating the business insights of everyone with an informed opinion about the problem and the outcome, reducing the complexity of the solution path, and validating the model with data. 4. Transformation: Work-flow integration The goal is always to design the integration of new decision-support tools to be as simple and user friendly as possible. The way analytics are deployed depends on how the work is done. A key issue is to determine the appropriate level of automation. A high-volume, low-value decision process lends itself to automation. 5. Transformation: Adoption Successful adoption requires employees to accept and trust the tools, understand how they work, and use them consistently. That is why managing the adoption phase well is critical to achieving optimal analytics impact. All the right steps can be made to this point, but if frontline decision makers do not use the analytics the way they are intended to be used, the value to the business evaporates.

Big Data Analytics and Insights is a hot trend for good reason.  If you saw the movie Moneyball you know why.

Businesses are using analytics to identify their most profitable customers and offer them the right price, accelerate product innovation, optimize supply chains, and identify the true drivers of financial performance.

In the book, Competing on Analytics: The New Science of Winning, Thomas H. Davenport and Jeanne G. Harris share examples of how organizations like Amazon, Barclay’s, Capital One, Harrah’s, Procter & Gamble, Wachovia, and the Boston Red Sox, are using the power of Big Data Analytics and Insights to achieve new levels of performance and compete in the digital economy.

You can read it pretty quickly to get a good sense of how analytics can be used to change the business and the more you expose yourself to the patterns, the more you can apply analytics to your work and life.

You Might Also Like

10 High-Value Activities in the Enterprise

Cloud Changes the Game from Deployment to Adoption

Management Innovation is at the Top of the Innovation Stack

Categories: Architecture, Programming

Hands-on Test Automation Tools session wrap up - Part1

Xebia Blog - Sun, 09/21/2014 - 15:57

Last week we had our first Hands-on Test Automation sessions.
Developers and Testers were challenged to show and tell their experiences in Test Automation.
That resulted in lots of in depth discussions and hands-on Test Automation Tool shoot-outs.

In this blogpost we'll share the outcome of the different sessions, like the famous Cucumber vs. FitNesse debat.

Stay tuned for upcoming updates!

Test Automation Frameworks

The following Test Automation Frameworks were demoed and discussed

1. FitNesse

FitNesse is a test management and execution tool.
You'll have to write/use fixture code if you want to use Selenium / WebDriver, webservices and databases in your tests.

Pros and Cons
You can have a good drill down in test results.
You can make use of scenario's and scenario libraries to make test automation steps reusable.
But refactoring is hard when scenario's are used extensively since there is no IDE support (yet)

2. Cucumber

Cucumber is a specification tool which describes how software should behave.
You'll have to write/use step definitions if you want to use Selenium / WebDriver, webservices and databases in your tests.

Pros and Cons
Cucumber forces you to write specifications / tests with scenarios (Behaviour in human readable language).
You can drill down into test results, but you'll need reporting libraries like Cucumber Reporting
We recommend using IntelliJ IDEA with the Cucumber plugin since it supports Cucumber seamlessly.
Refactoring becomes less problematic since you're using a IDE.

3. Selenium / WebDriver IDE

Selenium / WebDriver automates human interactions with web browser.
With the Selenium IDE you can record and play your tests in Firefox

Pros and Cons
It can get you started very quickly. You can record and play your tests scripts without writing any code.
Reusability of test automation code is not possible. You'll need to export it into an IDE to introduce reusability.

Must haves in Test Automation Tools

During the parallel sessions we've collected the following must haves in test automation tools.

Testers and Developers becoming best friends

When developers do not feel comfortable with the test automation tool, testers will try to fill the gap all by themselves. Most of the time these efforts result in hard to maintain test automation code. At some point in time test automation will become a bottleneck in Continuous Delivery. When picking a test automation tool consider each other's needs and pick a tool together. Feeling comfortable in writing and maintaining test automation code is really important to make test automation beneficial.

Separating What from How

Tools like FitNesse and Cucumber were designed to separate the What from the How in test automation. When combining both in those tools, you'll end up getting lost in details and you'll lose focus of what you are testing.
Use tools like FitNesse and Cucumber to describe What you are testing and put all details about How you are testing in test automation code (like fixture code and step definitions)

Other interesting tools
  • Thucydides: Reporting tests and results (including functional coverage)
  • Vagrant: Provisioning System Under Test instances
  • Liquibase: Treating database schema changes as 'code'

Stay tuned for upcoming updates!

 

Incremental Commitment Spiral Model

Herding Cats - Glen Alleman - Sun, 09/21/2014 - 15:00

Incremental CommitmentUnless you're building sofwtare as a hobby, someone is paying you to do that work. Those paying aren't likley doing it as a hobby either. They have some expectation of getting their money back sometime in the future. Somewhere in the discussion of writing software for money, the notion of writing software for money was lost. 

Those with money pay those with software writing capabilities to produce products that can be sold or put to use to create a value in return. Along the way was a disconnect that software is an end in itself. That the needs to developers trumps the needs of those providing the money for the developers. That those spending the money get to say what they'll do, how they'll do it, or what they won't do with that money.

Writing software for money as practiced in a sole contributor paradigm provides nearly infinite flexibility on requirements, cost and schedule forecasting, and the current notion of making business, programmatic, and technical decisions in the absence of estimating the cost and impact of those decisions.

When that paradigm leaks into a larger domain of producing a return on the investment from that cost, there are two varaibles that must enter every conversation. The Value generated by expending a Cost to produce an assessment of both those variables.

ROI = (Value - Cost) / Cost

A Value at Risk is one approach to assessing what processes should be in place when spending othe people money. The larger the Value at Risk requires a larger discipline of managing both the Cost and Value. There are many paradigms of Agile and the domain and context of software development, or any project for that matter, is important to assess before stating any method is applicable outside the ancedotal domain of the speaker.

The first assessment is always Value at Risk. That is, what is the cost of making a wrong decision? This is the basis of Microeconomics. This is the oppotunity cost assessment of decision making.

Microeconomics studies the behavior of individuals and small impacting organizations in making decisions on the allocation of limited resources. Cost, schedule, and technical capabilities are certainly a limited resource.

Those conjecturing decisions can be made in the absence of estimating the cost and impact have yet to show the viability of those ideas in practice, at least outside small projects with low Value at Risk.

The book The Incremental Commitment Spiral Model: Principles and Practices for Successful Systems and Software, Barry Boehm and Jo Ann Lane is a good bridge book between small low value at risk agile, Scaled Agile for Enterprise, and the full up formal DOD 5000.02 acquisition processes that are trying very hard to move into the agile domain.

The book starts with four principles:

  1. Stakeholder value-based guidance
  2. Incremental commitment and accountability
  3. Concurrent multi-discipline engineering
  4. Evidence and risk-based decisions

There are extensions to these principles:

  • Risk Meta-Principles of Balance - balancing the risk of doing to little and the risk of doing too much to find the middle course sweet spot.
  • Theory W (Win-Win) theorem - in which a system will succeed of and only of it makes winners of its success-critical stakeholders.
  • System Success Realization Theorem - in which making winners of success-critical stakeholders requires:
    • Identifying all of the success-critical stakeholders.
    • Understanding how each stakeholder wants to win.
    • Having the success-critical stakeholders negotiate among themselves a win-win set of product and process plans.
    • Controlling progress toward the negotiated win-won realization, including adapting it to change.
Related articles Agile Requires Discipline, In Fact Successful Projects Require Discipline Why Johnny Can't Estimate or the Dystopia of Poor Estimating Practices What Do We Mean When We Say "Agile Community?" Why Project Management is a Control System Critical Thinking Skills Needed for Any Change To Be Effective
Categories: Project Management

Project Success: It Is A Balancing Act

Any framework reflects a balance.

Any framework reflects a balance.

 

When I asked a sample of my blog readers and podcast listeners whether being on-scope, on-schedule or on-budget defined project success, it was an exercise designed to understand personal biases. Understanding individual and team tendencies is important. However as we have discussed, the choice of a single attribute without context is just an intellectual exercise. All projects work to find a balance between all three attributes based on their specific business needs and context.

In well-run projects, decisions are not made in a vacuum. The balancing act between the scope, budget and schedule is fraught with difficulties. For example, I recently talked to a friend who was working on a project that included a feature promised to a major customer for their holiday season. The team determined that they were not going to make the delivery date unless some of the scope was jettisoned (adding more team was not an option at that point). In this case decisions about scope, budget and schedule exceed the product owner’s decision-making authority, even though she was a senior leader. Any solution would affect marketing and sales plans, revenue projections and potentially earning reports. Many voices had to be heard before a path forward was found. All three attributes had to be manipulated to find a solution. In this case scope was deferred, release dates shifted and additional budget provided. It was not a perfect solution, but it was feasible and focusing on a single attribute would have resulted in more problems. The size and importance of any project will affect how large a circle needs to be involved in decisions if the balance of on-scope, on-schedule and on-budget get out of balance.

Some potential combinations of scope, budget and schedule are impossible. As Fred Brooks observed, adding people to a late project will just make it later. When impossible teams are asked to deliver a with impossible constraints they will invariably cut corners, make mistakes, incur technical debt or flat out ignore one of the levers (and then ask for forgiveness).

There is a classic project saying, “on-time, on-budget, or on-scope, pick one.” It has been said that good project managers can deliver two of the three and everyone struggles with delivering all three. Real life projects represent a compromise between all three components. When time is critical, the team might cut the scope or pursue additional resources. On-scope, on-budget and on-schedule can be thought of as three dials with customer and management satisfaction providing feedback based on how they perceive progress. [HUH?] Project teams constantly adjust each dial to elicit positive feedback and to deliver the maximum value possible.


Categories: Process Management

FsiBot: Assorted Tweets

Phil Trelford's Array - Sat, 09/20/2014 - 18:23

FsiBot is a cloud hosted bot that evaluates F# expressions in mentions, built by Mathias Brandewinder. Underneath it uses the Twitter API, F# Compiler Services all hosted on Azure.

In the beginning the F# community put a lot of effort into bringing it down testing it’s security. Nowadays it’s become more of a creative outlet for code golf enthusiasts showcasing all sorts from ASCII Art to math.

Christmas Tree

Tomas’s tree first appeared before @fsibot was cool or for that matter even existed:

@tomaspetricek " ++ ++++ ++++0+ +++0++++ ++0++++++0 +0++++++0+++ 0++++++0++++++ [...]

— fsibot (@fsibot) August 25, 2014

Circle

An early attempt at ASCII art, the trick in Twitter is to use characters that are roughly the same width:

@ptrelford " ────█──── ──█████── ─███████─ ─███████─ █████████ ─███████─ ─███████─ ──█████── ────█──── "

— fsibot (@fsibot) August 31, 2014

Invader

Along similar lines this expression uses a bitmap to produce an ASCII invader:

@brandewinder "─────── ─█████─ █──█──█ ─██─██─ ─█─█─█─"

— fsibot (@fsibot) September 1, 2014

FSharp Logo

Here Mathias uses the same technique to generate a logo:

@brandewinder "└┐ ██████└┐└┐██└┐██└┐ ██└┐└┐└┐██████████ ██████└┐└┐██└┐██└┐ ██└┐└┐└┐██████████ ██└┐└┐└┐└┐██└┐██└┐"

— fsibot (@fsibot) September 6, 2014

Bar chart

This expression charts Yes vs No in the recent vote on Scottish Independence:

.@ptrelford " NO ████████────────2001926 YES ███████─────────1617989"

— fsibot (@fsibot) September 19, 2014

Sequences

The hailstone sequence:

.@ptrelford [17; 52; 26; 13; 40; 20; 10; 5; 16; 8; 4; 2; 1]

— fsibot (@fsibot) September 19, 2014

Pi

Interesting Pi approximation using dates:

@ptrelford 3.141592654

— fsibot (@fsibot) September 8, 2014

Inception

Evaluating an F# expression inside an F# expression:

.@ptrelford 2

— fsibot (@fsibot) September 8, 2014

Rick Roll

The thing about a rick roll is that no-one should expect it:

@ptrelford "never gonna give you up"

— fsibot (@fsibot) August 30, 2014

Magic 8-Ball

Based on magic 8-ball here's a somewhat abridged version:

@ptrelford "Go for it!"

— fsibot (@fsibot) August 30, 2014

Have fun!

Categories: Programming

Technical Performance Measures

Herding Cats - Glen Alleman - Sat, 09/20/2014 - 16:59

We're preparing for a Webinar on 25 September 2014, now titled Using Techncial Performance to Inform Earned Value, which addresses the disconnect in EAI-748-C between two statement

  • Page 2, 5 bullet - Objectively assess accomplishments at the work performance level.  
  • §3.8 - Earned Value is a direct measurement of the quantity of work accomplished. The quality and technical content of the work performed is controlled by other processes.  

Two reconcile these two statement, we need to have a process of informing Earned Value (BCWP) with the Techncial Performance of the products being built. After the Webinar, we'll post the link. 

In the mean time here's a list of resources gathered to support this topic.

  • Technical Performance Measurement - A Program Manager's Barometer: DCMA Pilots a Modified Approach to TPMs, Mike Ferraro, Program Manager, November-December, 2002
  • Technical Performance Measures, Jim Oaks, Rock Botta and Terry Bahill, BAE Systems.
  • Technical Measurement: A collaborative Project of PSM, INCOSE, and Industry, Garry Roedker and Cheryl Jone, 27 December 2005, INCOSE-TP-2003-020-01.
  • Technical Performance Measurement Earned Value, and Risk Management: Integrated Diagnostic Tool for Program Management, Commander N. D. Pisano, SC, USN, PEO Air SW and Special Mission Programs.
  • CPM-500-C/D/E: Integrated Systems Engineering with Earned Value Management, Partick K. Barker, Paul Solomon, November 2009, Alexandria, VA
  • CPM-500: Principles of Technical Management, Lesson D: Implementing Technical Performance Measurement, Mike Ferraro, IPMC 2002.
  • Technical Performance Measures Module: Space Systems Engineering Version 1.0, NASA.
  • Technical Performance Measurement - Systematic Approach for Planning, Integration, and Assessment, Part 1, Kathyyn A. Kulick.
  • Technical Performance Measurement - Kinking Technical Performance to Cost and Schedule, Part 2 Kathyyn A. Kulick.
  • Technical Performance Measurement - Assessment Techniques and Earned Value Calculation, Part 3, Kathyyn A. Kulick.
  • Leading Indicators for Systems Engineering, Sixth Annual NASA Project Management Challange, Dr. Donna H. Rhodes, MIT, Feb 2009.
  • The Difficult Problems of Establishing Measures of Effectivenss for Command and Control: A Systems Engineering Perspective, Noel Sproles, Systems Journal, Volume 4, Number 2, 2001.
  • Coming to Grips with Measures of Effectiveness, Noel Sproles, Systems Journal, INCOSE 2000.
  • Formulating Measures of Effectiveness, Nole Sproles, Systems Engineering Volume 5, Number 4, 2002
  • Systems Engineering at NASA: Selected Topics, Jim Andary, NASA Goddard Space Flight Center, Nov 5, 2009.
  • Space and Missile Command, Systems Engineering Primer and Handbook
  • NASA Systems Engineering Handbook
  • Engineering Complex Systems with Models and Objects,David W. Oliver Timothy P. Kelliher James G. Keegan, Jr., McGraw Hill.
  • Engineering Complex Systems, Douglas O. Norman and Michael L. Kuras, The MITRE Corporation
  • National Aerospace System - Systems Engieering Manual, FAA
  • MITRE Systems Engineering Guide, Collected Wisdom from MITRE's Systems Engineers.
Related articles Is There Such a Thing As Making Decisions Without Knowing the Cost? More Uncertainty and Risk Agile as a Systems Engineering Paradigm
Categories: Project Management

Project Success: Context

Trying to read the context...

Trying to read the context…

Many people poke fun at consultants because they invariably use the phrase “it depends,” even when discussing lunch. “It depends” is code for the context of the situation matters to the answer. When I asked a sample of my readers and listeners to weigh in on whether being on-budget, on-scope or on-schedule was the most important attribute of project success, most answered without using the dreaded “it depends”. An excerpt for a recent Twitter conversation in response to the essay about being on-budget, emphasized that in real life the definition of success will be influenced context.

UntitledIn the sample I surveyed, being on-schedule was the most important attribute with on-scope a close second and on-budget a distant third. If I had added constraints to the mix the answer would probably have been different. One respondent, while explaining why they felt that scope was the key attribute of success, made a strong argument for context (without calling it out directly), “Budgets and schedules can be modified when justified, and functionality can be phased in over time.” The statement could easily be interpreted as as a statement that success criteria, at least in the short run, depends on the goals of the business and the context of the project.

We can all conceive of scenarios where a specific context lead one attribute to be viewed as the most important in project success ASSUMING the software does what it is supposed to do and in an adequate manner. As an example of context, one respondent noted that in his environment and for some projects, “regulatory requirements that say it MUST deploy on a specific date.” Failure to meet the date can result in fines or penalties. In a similar vein, another respondent stated, “Projects are often tied to an organization’s business milestones or regulatory requirements so missing the date is not acceptable.” In both cases the context of a project could lead a project team to focus on one attribute over another.

Why did I ask the question without context? As I have noted in earlier essays, we are all subject to cognitive biases. These bias act as filters and shortcuts that help us interpret data. The context of a project will provide information about the goals and constraints of the project. Our cognitive biases are usefully in helping us interpret project context. Which is why project teams with diverse perspectives tend to make better choices when sorting out which attribute is most important. Is one attribute truly more important than another? It depends!


Categories: Process Management

Project Driven Organizations

Herding Cats - Glen Alleman - Fri, 09/19/2014 - 21:09

There is a popular notion that Projects are some how not needed to develop software. Just fund the Team and the business outcomes needed to fulfill a strategy and deliver value to the balance sheet will appear. 

This may work in  domains where the project team, the business and its processes and the funding sources are in fact all the same - a small startup for example. When the business moves beyond this self-contained startup mode, other  processes become needed to Govern the use of funds - Stewardship of Funding. 

Here's how to approach the process, once the firm moves beyond a collection of individuals personally all interacting with their customer based. These processes, data, and outcomes belong to the realm of Governance. In IT, Governance †

  • Clarifies business strategies and the role of IT in achieving them.
  • Measures and manages the amount of funding spent on the value received from IT.
  • Assigns accountability for the organizational changes required to benefit from new IT capabilities.
  • Learns from each implementation and becoming more adept at sharing and reusing IT assets.

Lifecycle from Glen AllemanIT Governance: How Top Performers Manage IT Decision Rights for Superior Results, Peter Weill and Jenne W. Ross, Harvard Business School Press. Related articles Delivering Needed Capabilities Staying on Plan Means Closed Loop Control The Purpose Of Guiding Principles in Project Management Performance-Based Project Management(sm) Released What Do We Mean When We Say "Agile Community?"
Categories: Project Management

Get your app in the Google index - and be ready for the future of Search

Google Code Blog - Fri, 09/19/2014 - 19:15
Last October we worked with a small number of developers to launch App Indexing, the ability for Google to index apps just like websites. In June, we opened App Indexing to all Android developers, giving you the ability to add app deep links to search results, helping users find your content and re-engage with your app after they’ve installed it.

Today, we’d like to highlight two videos to help you set up App Indexing. Check them out below. You’re only a few steps away from driving re-engagement and unlocking new avenues of discovery for your app.

1998 all over again

In 1998, Google set out to index the web and make content easily accessible and discoverable.

Today mobile app adoption is growing rapidly. Similar to the early days of the internet, it can be frustrating for users to search through their device to find what they need, since the content within apps typically exists in silos. By implementing App Indexing, you can re-engage your users from search results.

Consider the scenario of users looking for details about a great place for some Spanish food. Users might already have a great mobile app for restaurant details installed, but they typically still rely on a search engine to pull up information about local places to eat. Wouldn’t it be great if they could jump straight into your app from those search results? App Indexing is all about connecting users with the best content, whether it’s in-app or on the web. You can add it to your app very quickly -- simply add deep linking to your app, and then verify your website with Google. To enable re-engagement with your users, you can generate query autocompletions in the Google app using the App Indexing API.

Learn More

To learn more about App Indexing, and how you can use the API for your apps, check out this DevByte from Lawrence Chang, Senior Product Manager for App Indexing at Google.
For an in-depth look at App Indexing, demonstrating the technology, and the opportunities available with it, watch this session from Google I/O 2014: “The Future of Apps and Search.”
We’re at the beginning of a new wave of how people find and interact with content, and it often starts with search. Is your app in the index? If not, follow the steps in this post, and get ready for the future of Apps and Search!

Posted by Laurence Moroney

Laurence is a Developer Advocate at Google, working on Google Play services for Android. When not having fun with this, he's also a best-selling author of several Young Adult novels and dozens of books on computer programming.
Categories: Programming