People in the software industry are constantly talking about productivity. We use languages that will make our developers more productive. We use techniques, such as agile, which are supposed to deliver more value in less time. Some companies rank and pay developers based on their productivity — or outsource overseas because those developers are seen as more productive. But just what does “productive” mean, and how do we measure it? In this Webinar (without video, but with slides), Steve McConnell discusses this issue, and what it means for the software industry.
As you might have heard, Volkswagen was recently caught in quite a scandal: Its diesel-powered cars would report one (legal, standard) pollution number when the car was being inspected, but quite another number (illegal and nonstandard) when it was actually being driven and on the road. This scandal, sometimes called “Dieselgate,” has had many implications for VW as a company, and for the car industry in general, But how did VW manage to fool so many people for so long? What did the car’s software and hardware do (and not do) in order to trick emissions inspectors? In this talk, Felix Domke and Daniel Lange report what they have each found, providing us with a fascinating introduction into the intersection of cars, computers, regulations, and scandals.
We often talk about “software engineering,” rather than just “programming” — but that implies that we are acting and working as engineers. The thing is, what does it mean to be an engineer, and to have that kind of discipline? And do we, in the software world, really use engineering in our work? In this talk, Mary Shaw describes what it means to be an engineer, comparing software with such disciplines as civil engineering. She then raises many questions about what we’re doing, and how we’re doing it — and how we can do it even better in the future.
Containers are a big thing in IT and devops — the idea that you can have lightweight virtual machines that can be launched, duplicated, copied, and scaled up is very attractive, and for good reason. But what happens when you have a very large number of containers? Have you simply exchanged one problem for another? Or are there methods and systems you can use to manage your containers? In this talk, Mandy Waite describes what she and others at Google are doing to make it easier to work with containers, and how you should start to look at containers if you’re to use them most effectively.
Has your boss ever come to you with an impossible task? Well, just be thankful that your boss isn’t the President, and your task doesn’t involve going to the moon. In this talk, Russ Olsen describes the many seemingly-impossible tasks that engineers were handed when John F. Kennedy decided that the United States should put an astronaut on the moon. Not only does this project make for an exciting and interesting story, but it also provides us with a terrific tale of how to break a seemingly impossible project into smaller parts, iterating closer and closer to success.
Certain things — objects, printed pages, and Web sites — are clearly designed well. And others…. well, not so much. What’s the difference between good and bad design? What leads an organization to create products that are beautiful, functional, and demonstrate an understanding of the people who will be using it? In this talk, Robert Brunner describes what goes into good design. In particular, he points to the fact that a good design rarely (if ever) emerges ready for prime time. Rather, it takes time, discussion, considerations, and testing to ensure that a design is appropriate. Given that our lives depend on the designs of other people, and that we as software developers are responsible for designing products (even if virtual) that others will consume, it’s important for us to think about design and consider how we can improve our approach to it.
For years, we have been hearing that “agile development” will save the software industry. And now, you can’t get away from it; every company claims to be agile, with Post-It notes, stand-ups, and tons of training for Scrum masters and the like. But the term “agile” has become a meaningless buzzword, used by companies to describe whatever management wants to do, with a few notes stuck on walls. So says Dave Thomas, one of the original authors of the Agile Manifesto. If that’s the case, then what’s next, and how should we develop software? In this talk, Dave describes what he means, and how developers should think about projects, communication, and scheduling over the next few decades.
Projects don’t always go right; that’s the nature of the world. But sometimes, projects go wrong for reasons that you could have predicted from the start. Which means that if you see these problems taking place, you should tell the people who are running the project, so as to avoid problems later on. What problems and issues are worth fighting about? In this talk, Heidi Waterhouse tells us what she thinks. If you’re on a software project, or (even better) you’re managing one, think about these things before you start … or, as she says, you’ll be doing the equivalent of trying to push chocolate chips into an already-baked cookie.
Developers often talk about the people using our code… but it’s not always in the most positive way. Successful teams think about their users, and the ways in which our users (and customers) will use the products we’re creating. . In this talk, Louisa Barrett talks about how we can and should think creatively, like a designer — not necessarily thinking as an artist, but as someone who wants to help our customers to achieve their needs, and use our products in the most effective ways.
What do you need to know in order to run a PostgreSQL system? This talk, by Simon Riggs, attempts to summarize many of the ideas, tasks, and tools that PostgreSQL administrators need to know in order to do their jobs effectively. How should you think about your job as a PostgreSQL DBA? What sorts of monitors should you put on your system? What settings should you avoid to reduce the chance of disaster? If you’re running one or most PostgreSQL systems, then this talk will give you some ideas for how to ensure they run smoothly — and continue to do so.