Posts in category 'professional'

« Older Posts   

Order Takers versus Advisers

In consulting and outsourcing should we act as order takers or as advisers to our clients? Advisers make observations, provide analysis results, and offer recommendations to the client, which are sometimes not what the client wants to hear. Order takers only provide specifically what the client asks for. As an example, consider a financial planner […]

Slow is Smooth and Smooth is Fast

I recently saw an email from a colleague who mentioned that they did not have time to properly resolve a technical issue because they needed to hurry to get their code ready for testing. At the time, I was reading Stephen Hunter’s novel The 47th Samurai about an U.S. sniper. One of the themes within […]

Software Developer’s Creed

I am a Software Developer. I am a coder and a member of a team. I serve the customers and end users of the software. I will always place the project first. I will never accept defeat. I will never quit. I will never ignore a team member needing help. I am disciplined, mentally tough, […]

The Two Domain Problem

Most professions and trades only need to know their own domain of practice, not the customers. When you see a dentist or a plumber they do not need to understand what you do in order to work on your teeth or your plumbing. Software development is different: its essence is the automation of work. So […]

Bad News Early

For a software development project, when is the best time to communicate to stakeholders bad news like having insufficient budget or schedule? From the behaviors I have observed of some managers and leads, their answer would seem to be “never” – upon learning bad news they hope things will turn out in the end and […]

Hierarchy of Advice

As an architect over the years I have given a lot of advice, some of it even asked for :) Over time, my choice of words when providing advice has evolved into a very precise hierarchy. Random Thought At this lowest level this is not advice but merely thoughts that are thrown out with very […]

Deficient Outage Communication by the Alberta Government

Citizens of the province of Alberta, Canada experienced a rare event this summer when a major data center in the City of Calgary experienced a multi-day outage due to a fire. Many I.T. services provided by the Government of Alberta and taxpayer-funded organizations such as Alberta Health Services were hosted in this data center and […]

Avoiding Outrage Over Outages

When outages – also known as service disruptions – happen to I.T. services, the response from the organization providing the service is the most important factor in determining the level of outrage felt by consumers of the service. Responses can be grouped into three main categories inspired by ITIL: Incident Communication: The information provided to […]

The Difficulty of Making Good Recommendations

Recently I have been doing an architectural assessment of an application for an organization I have not worked with before. As I have been writing up my findings, I have noticed that the portion of my analysis causing the most difficulty for me is in coming up with recommendations. Why is this? In this context […]

Most Disturbing Code

One question I often ask when giving job interviews is “What do you find most disturbing when reviewing code?” The answers I receive are especially interesting when compared to the interviewee’s results doing an actual code review: it is rare for them to identify the problems they consider the most disturbing. This lack of congruence […]

How Should You Feel About Defects

I have recently observed myself and others having a variety of reactions when defects are found ranging between the extremes of elation and despair. How should we feel when defects are discovered? Should this vary by role? Role-Based Attitudes I will first answer this question on a role by role basis, starting with the role […]

Contribution as a Function of Difficulty

In my prior article on capability for software developers I identified four measures for assessing a developer’s capability. Three of these measures are closely related: the ability to work independent, the amount of assistance provided to team members, and the level of difficulty of tasks that can be handled independently. In this article I examine […]

Capability for Software Developers

I have recently been wrestling with the problem of clarifying the concept of capability levels for software developers. What does it mean to call a developer junior versus intermediate? How can a developer at one level progress to the next? How do you evaluate the capability of a developer? These questions and more formed the […]

Would You Trust Your Life To Your Code?

Would you trust your life to your code? It is a simple question that you might find extreme. But is it really? You might argue that the answer to this question depends on the criticality of the software you are producing. Software like the control software for the space shuttle or software to control medical […]

Evolving my Vision and Mission

If you are a regular reader you may have noticed that I use guiding statements like a vision or mission to motivate and inspire myself and clarify my future direction. The following articles contain some of my past efforts: My Vision for IT Our Mission as Software Developers Becoming a Champion of Continuous Improvement I […]

100 Interview Questions to Ask Employers

The interview process should ideally be an equal, two-way conversation between the interviewers for an employer and a potential employee. However, speaking as someone who has sat on both sides of the table, it has always seemed to me to be imbalanced towards the interviewers. They control the process and ask far more questions than […]

Our Mission as Software Developers

What is your mission as a software developer? What motivates you? I recently reflected on my values and goals as a software developer and ended up creating my own personal mission statement. I feel that one of the clauses in my mission is broadly applicable – certainly to my team and department at work, and […]

Achieving Excellence in Software Development

What is excellence in software development and how can you achieve it? This is a question of interest not only to software developers, but also to managers of software teams. I recent read the book First, Break All The Rules: What The Worlds Greatest Managers Do Differently which provides some great insights into this question. […]

To Code or Not To Code

To code or not to code, that is the question for senior software developers when they are presented with the opportunity to move into an architect, project manager or team lead position. Rob Walling recently wrote an excellent article titled Why Good Developers Are Promoted Into Unhappiness describing his unsatisfying experiences as a manager and […]

Top Five Essential Practices for Developing Software

As a software developer what practices do you consider essential? Which practices are must-haves that you would refuse to build software without? I believe that producing good software is hard, and that we software developers need all the help we can get in developing software. I have put together a list of the top five […]

« Older Posts