Learn how to be a wildly successful small business programmer

Tag: Software Engineering (Page 1 of 2)

How to get hired as a team lead

I see people make three huge mistakes when trying to transition from a developer position to a leadership position.

1 – being a “good” developer with lots of experience makes you qualified to run a project or a team. It’s just not true. Being a “good” developer with lots of experience is necessary, but not sufficient, to successfully make this transition.

2 – the idea that you actually know what a well-run, effective project actually looks like. Most people have never even seen a well-run, effective project. They have little idea of the results regularly achieved by the best teams.

3 – not adjusting your interview answers to reflect the kind of thinking and strategizing effective leader engage in to be successful.

In this post I’ll show you things from the employer’s perspective and help you get on the right track to get hired as a team lead.

Continue reading

The Business Case for Better Software Practices

Steve McConnell hosted a webinar that I think more people need to see.

We actually know a fair bit about how to create high-functioning, effective software development organizations. The knowledge exists but not enough teams are applying it.

So, if your team is struggling in any way or if you are trying to convince your manager to invest in better practices, this talk is well worth watching.

Continue reading

Steve McConnell’s Classic Software Mistakes Revisited

In chapter 3 of Rapid Development, Steve McConnell identified 36 “classic software mistakes.” That book was published in 1996 and a lot has changed since then. So I was happy to learn that he released a white paper that expanded and updated the list.

The new list was validated with a survey of about 500 software professionals. The data gathered from the survey allowed McConnell and rank the list, which makes it much more valuable.

Read on to find out which software development practices are actually the worst “classic software mistakes.”

Continue reading

How to be more successful at software maintenance

In this post I want to explore the kind of software maintenance that happens after active maintenance ends. This is the stage of the software life cycle where the software has been in production for some time and the initial wave of bug fixes and enhancement requests ends. It’s also at this point that managers may cut the number of developers assigned to the project and turn their attention elsewhere.

Keeping this kind of project running safely, securely, and profitability as the years tick by–even if you’re not adding or changing functionality–is especially challenging.

I’ve spent more than a decade in this situation. And I’d like share some of my observations and advice about maintaining this kind of software with you.

Continue reading

Safety-Critical Software: 15 things every developer should know

Despite being all around us, safety-critical software isn’t on the average developer’s radar. But recent failures of safety-critical software systems have brought one of these companies and their software development practices to the attention of the public. I am, of course, referring to Boeing’s two 737 Max crashes, the subsequent grounding of all 737 Max aircraft, and its failed Starliner test flight.

How could such a distinguished company get it so wrong? Weren’t the safety standards and certification process for safety-critical systems supposed to prevent this kind of thing from happening? Where was the FAA when the Max was being certified? These questions raised my curiosity to the point that I decided to discover what this specialized field of software development is all about.

In this post I’m going to share what I learned about safety-critical software development and how a little knowledge of it might be useful to “normal” programmers like you and me.

Continue reading

The ONE chart every developer MUST understand

Our industry is famous for delivering projects late and over budget. Many projects are cancelled outright and many others never deliver anything near the value we promised our customers. And yet, there is a subset of software development organizations that consistently deliver excellent results. And they’ve known how to do it since the 1970s. In this post I’ll tell you their secret.

Continue reading

Want to write defect-free software? Learn the Personal Software Process

I’m on a journey to become a better software developer by reducing the number of defects in my code. The Personal Software Process (PSP) is one of the few proven ways to achieve ultra-low defect rates. I did a deep dive on it over the last few months. And in this post I’m going to tell you everything you need to know about PSP.

Continue reading

Why I can’t recommend Clean Architecture by Robert C. Martin

Clean Architecture failed to meet my expectations on a number of fronts. Despite Mr. Martin’s obvious passion for the topic, Clean Architecture is poorly organized, lacks examples, and is silent on working with existing systems. The author missed a major opportunity to teach us when and how to apply these lessons to our own systems. Let me explain.

Continue reading

How I intend to become a better software developer

My survey of the computer science literature suggests there are only two economical ways to achieve extremely low defect rates (< 1 defect per KLOC). The first way is to follow the Personal Software Process (PSP), which was created by Watts S. Humphrey at CMU. The second way is to use languages and tools that make it difficult to introduce errors into your code in the first place and easier to detect errors if you do manage to get some into your code. In this post I’m going to briefly discuss these two options and how I plan to explore them to become a better software developer.

Continue reading

« Older posts