background preloader

Software Development

Facebook Twitter

Estimation and Trust - Industrial Logic. A friend of mine worked at a large company in their IT department.

Estimation and Trust - Industrial Logic

Agile Performance Reviews. What Are We Doing Wrong By and large, the annual performance review process at most companies is broken.

Agile Performance Reviews

The very idea of having a meaningful conversation about performance once per year is laughable. Unfortunately, this mentality persists in many of today’s corporations. Most people simply don’t know a better way, and despite constant grumbling and cynicism from the staff about the process, few companies are willing to change. Unfortunately, the prevailing advice right now is to simply eliminate performance reviews altogether. Certainly Adding Objectivity Couldn’t Be Bad. Tech Lead Skills for Developers. Agile Otter Blog: A Quick Rundown on Performance Appraisals and Reviews. The topic of annual reviews comes up pretty often.

Agile Otter Blog: A Quick Rundown on Performance Appraisals and Reviews.

There has been a gathering tide of organizations moving away from traditional performance management techniques because they are perceived as an expensive process that does not actually improve performance, and because they seem to actually do damage to a company's talent pool, culture, and thereby to its reputation in the job market. Deming was the first voice I heard talking about performance reviews. He said of the review “It nourishes short-term performance, annihilates long-term planning, builds fear, demolishes teamwork, nourishes rivalry and politics.” How Good an Estimator Are You? Programming Is Mostly Thinking. Pretend you have a really great programming day.

Programming Is Mostly Thinking

You only have to attend a few meetings, have only a few off-topic conversations, don't get distracted or interrupted much, don't have to do a bunch of status or time reporting, and you put in a good six hours of serious programming [note: this RARELY happens in an 8-10 hour day]. I want to review your work in the morning, so I print out a diff of your day's work before going home.

Sadly, overnight the version control system crashes and they have to recover from the previous day's backup. Healthy Codebase and Preparatory Refactoring. In a recent episode of the RubyRogues podcast, Martin Fowler and Jessica Kerr literally spoke my mind.

Healthy Codebase and Preparatory Refactoring

The Humble Programmer (EWD 340) The Humble Programmer by Edsger W.

The Humble Programmer (EWD 340)

Dijkstra As a result of a long sequence of coincidences I entered the programming profession officially on the first spring morning of 1952 and as far as I have been able to trace, I was the first Dutchman to do so in my country. You won’t believe how old TDD is. Kent Beck is credited as the the TDD inventor.

You won’t believe how old TDD is

Yet, he claims he just re-discovered it.When asked why does he refer to the rediscovery (not the invention) of test-driven development he explained: The original description of TDD was in an ancient book about programming. It said you take the input tape, manually type in the output tape you expect, then program until the actual output tape matches the expected output. Www.coachyourselftowin.com/gutt/uploads/1/doc/Create A High Performance Team.pdf. Create a High-Performance Team. Executive Edge July 01, 2011 Published Version Building a Team.

Create a High-Performance Team

Write Code Every Day. Last fall, work on my coding side projects came to a head: I wasn’t making adequate progress and I couldn’t find a way to get more done without sacrificing my ability to do effective work at Khan Academy.

Write Code Every Day

There were a few major problems with how I was working on my side projects. Jennifer Dewalt. 10 Best Practices for Better RESTful API. Web APIs has become an very important topic in the last year.

10 Best Practices for Better RESTful API

We at M-Way Solutions are working every day with different backend systems and therefore we know about the importance of a clean API design. Typically we use a RESTful design for our web APIs. The concept of REST is to separate the API structure into logical resources. There are used the HTTP methods GET, DELETE, POST and PUT to operate with the resources. The Joel Test: 12 Steps to Better Code.

By Joel Spolsky Wednesday, August 09, 2000 Have you ever heard of SEMA? It's a fairly esoteric system for measuring how good a software team is. No, wait! Don't follow that link! The neat thing about The Joel Test is that it's easy to get a quick yes or no to each question. A score of 12 is perfect, 11 is tolerable, but 10 or lower and you've got serious problems. The Inconvenient Truths of Software Development. Lean and Agile, Software Software development has often been managed using a predictive planning model based on the following principles. The Comforting Illusions Software development is best managed as a set of projects, with each project starting and ending at specific points in time. There exists a finite set of requirements for any software development project. That finite set of requirements is discoverable within some reasonable period of time.

These principles sound reasonable. Unfortunately, the general consensus of actual software developers with real-world experience is that all of the above principles are wrong. Speed in Software Development. Michael Dubakov, Targetprocess Founder June 5, 2014 Every single CEO of any IT company wants to build software faster. Time is the most expensive and valuable resource. You can't waste it on re-work, refactoring, meetings, physical activities. Velocity is Killing Agility! As I talk with companies around the world it’s clear that a significant number of them are still mired in the productivity, efficiency, and optimization mud. It’s easy to spot them because they are often maniacal about measuring velocity—team velocity, velocity across teams, rolling up velocity to an organizational level or even velocity per developer (yuck).

Velocity is thereby killing agility. It’s the ultimate in applying a reasonable tool for the wrong reasons: Over emphasis on velocity causes problems because of its wide used as a productivity measure. Why Scrum Should Basically Just Die In A Fire. Conversations with Panda Strike CEO Dan Yoder inspired this blog post. Consider story points. If you're not familiar with Scrum, here's how they work: you play a game called "Planning Poker," where somebody calls out a task, and then counts down from three to one.

On one, the engineers hold up a card with the number of "story points" which represents the relative cost they estimate for performing the task. So, for example, a project manager might say "integrating our login system with OpenAuth and Bitcoin," and you might put up the number 20, because it's the maximum allowable value. Wikipedia describes the goal of this game: Agile Otter Blog: Asking the Wrong Questions. Bridging two worlds is not easy. 5 Steps to Mistake Proof Software Design. Images from Impossible Objects Catalog, based on Impossible Objects by Jacques Carelman My previous blog posts have shown how to create better software design and defined the idea of Usable Software Design. Usable Software Design comes from the simple observation that the developer is the user of a software design.

Robert C. Martin's Clean Code Tip #12: Eliminate Boolean Arguments. Yagni. Process theory · project planning · evolutionary design · clean code tags: I'm a phony. Are you? The reactive manifesto. Agile Q&A – GreenHopper Time Estimates with Sub-Tasks. How Google performance reviews work - Business Insider.

It’s a trap! Systems traps in software development. It’s a trap! Systems traps in software development. Escape the trap! Avoiding traps in software development with systems thinking. Take Control of Your Career And Create Your Own Learning Curriculum. The Twelve-Factor App. Cost Effective Approaches to Iteration in Agile UX. By Jared M. Spool Originally published: Mar 21, 2012. Scrumban. Why your teams should move away from Scrum, and how to do it. What is Scrum? Scrum is an iterative and prescriptive process for building software in the Agile methodology. So Long Scrum, Hello Kanban. Hackathon. 7 Agile Best Practices that You Don’t Need to Follow. Scaled Agile Framework – Hardening Iteration? Scaled Agile Framework. Why we carry watermelons? Is TDD Dead. 3 Psychological Theories To Help You Communicate Better With Anyone.

Technical debt 101. Minimal Viable Programs.