Agile Alliance Member
"Practicing SCRUM feels like practicing common sense, but practicing common sense will never feel like SCRUM"
Home Account Search
Is it Done yet?

One of our business analysts caught me being too serious today about the definition of "Done" and sent me this:

"The USDA highly recommends use of a meat thermometer to determine doneness…"

 thermometer.JPG

 

Just like a thermometer, we have to have some way of know when we're done. Chicken is done at 160 degrees... software is done when it has met the organizational standards for quality and readiness.

What are your organizational standards for "Done"?

 

 

Chris Sterling recounts discussions around Technical Debt

Chris Sterling goes over some of the things they discussed and shares his account of the workshop with us.

Technical debt is an interesting topic because we do not necissarily have a succinct measurement of it. Generally speaking things like mechanical engineering and electrical engineering have been blessed (or cursed) with standards that give them a common terminology or view of what 'good' engineering practices are.

In the world of software development we have a time-honored tradition to measure success on revenue and deadlines and sacrifice quality to get there.

Talk with your team about what technical debt is to them and come to a consensus and stick to your guns as technical people because non-technical people really need you to tell them when quality is being sacrificed and technical debt is being accrued.

Silverlight 2.0 goofin'

I was dreaming about using silverlight in a banking app and threw this 'real time updating' account information app together.

I used the data grid control by Component One

If a company had the right event structure and you used push services like wcf net.tcp or biztalk.net you could do something like this pretty easily ...

 

note: this is not ajax, this is real multi-threading.

 

Here's the relavent sample code:

 

       List<Account> accounts = new List<Account>();

        public Page()

        {

            InitializeComponent();

            this.Loaded += new RoutedEventHandler(Page_Loaded);

        }

 

        void Page_Loaded(object sender, RoutedEventArgs e)

        {

           

            Account account = new Account();

            account.Name="checking";

            account.AvailableBalance=238.87M;

            account.CurrentBalance=242.28M;

            account.AccountNumber="******823";

            accounts.Add(account);

            account = new Account();

            account.Name = "savings";

            account.AvailableBalance = 2000.00M;

            account.CurrentBalance = 2000.00M;

            account.AccountNumber = "******544";

            accounts.Add(account);

            this.AccountsGrid.DataSource = accounts;

           

            System.Threading.Thread myThread = new System.Threading.Thread(DoStuff);

 

            myThread.Start();

 

 

        }

        private void DoStuff()

        {

            while (accounts[1].AvailableBalance > 1)

            {

                System.Threading.Thread.Sleep(100);

                accounts[0].AvailableBalance += 1;

                accounts[1].AvailableBalance -= 1;

                //now dispatch to the original thread to update the UI.

                this.Dispatcher.BeginInvoke(new Action(this.AccountsGrid.EndUpdate));

            }

        }

Scrumworks pro webinar

As much as i believe that notecards and stickies are the best agile tool possible... the rest of the real world has to deal with things like non-collocated teams and audit captures (if we say we're maintaining a backlog of product features we have to keep it backed up and retrievable in case of an audit for example)

 

Anyhow, scrumworks is presenting a webinar on the scrumworks pro product.

I will be presenting scrumworks basic at AgileKC meeting on August 28th at the 95th street Pizza Shoppe

Update: it appears danube has some other free webinars, even some around scrum itself

"Clean code" reads like common sense!

I picked up robert martins "Clean Code". It reads beautifully as if it was all common sense. Basically if you had to put into words everything you ever saw as 'clean code' it would look alot like the first chapter of this book, but then Bob goes on to show you exactly what those words mean with code samples and in depth reasoning why code craftsmanship will make your daily programming life easier and more enjoyable.

Bob makes us remember some of the ordinary things like making sure to use short methods (and then make them shorter than that!) and take time to refactor bad code to some clean code instead of adding comments.

He talks about the reasons to use procedural code with data objects and then OO code but why to stay away from "Hybrids" of the two.

I read half the book in a single setting because it was just so amazing to read some of the practices I'd love to be able to replace our existing legacy code with.

Fowler tells us in 'refactoring' to be sure to have automated unit tests before we do any refactoring, so make sure you pick up Michael Feathers' book on Legacy Code to know just how to get your legacy code under test before taking on any 'clean code' practices with existing code.