loader from loading.io
Lowering Developer Onboarding Costs- Episode 34 show art Lowering Developer Onboarding Costs- Episode 34

Programming with Palermo

You can find the code used in this video at  In this episode, Jeffrey shares how to lower developer onboarding costs Situation Custom software is inherently expensive but there are plenty of easy things that your team can do to reduce those costs. I'm going to talk about one of them that aids tremendously when it comes to adding or replacing a developer on your software team. That is the one click build. Mission Anyone overseeing a software team cares about quality, efficiency and productivity. These are important because they translate directly to labor costs. Software teams are already...

info_outline
How to Measure a Software Team- Episode 33 show art How to Measure a Software Team- Episode 33

Programming with Palermo

In this episode, Jeffrey shares how to measure a software team. Situation  Many software team lead architects don't implement management practices that are standard in other parts of the business. Whether it be OKRs (Objective, Key Results), EOS, Scaling Up's Scoreboard, or Kaplan's Balanced Scorecard, business measurement has long been a staple of ensuring that a part of a business was functioning well. But executives overseeing software teams often don't have a tool for measuring the effectiveness of a team or an entire software department. Mission Anyone overseeing a software group of...

info_outline
How an Executive Oversees a Software Team- Episode 32 show art How an Executive Oversees a Software Team- Episode 32

Programming with Palermo

In this episode, Jeffrey shared how an executive oversees a software team Situation Our industry struggles mightily with failed software projects. On average half of the projects still fail. Failure is defined as the executive who authorized the budget wishing he hadn't. The project is so over budget and so over schedule, that the company would be better off having never started it. Even in the middle of these projects, executives can feel powerless to abort it for fear of sunk costs. And without knowing the right questions to ask or the right reports to demand, the executive in charge doesn't...

info_outline
The Architecture of GPT-3 and How to Think About it in 2023- Episode 31 show art The Architecture of GPT-3 and How to Think About it in 2023- Episode 31

Programming with Palermo

In this episode, Jeffrey discusses the architecture of GPT-3, the technology behind ChatGPT, and how you should think about this technology in 2023. Situation- ChatGPT is getting a lot of press because it's the first freely available implementation of GPT-3 that has captured the imagination of the masses. Many are pointing out the awesome and surprising capabilities it has while others are quick to point out when it provides answers that are flat-out wrong, backward, or immoral. Mission- Today I want to raise up the conversation a bit. I want to go beyond the chatbot that has received so...

info_outline
Why is my software team moving so slow?- Episode 30 show art Why is my software team moving so slow?- Episode 30

Programming with Palermo

In this episode, Jeffrey discusses why so many teams are not happy with the pace of software delivery. Situation Most software teams we see are not moving at the pace their companies would like. One of the Clear Measure Way tools is a self-assessment. It's easy to find on the Clear Measure website. One of the subjective questions included is "are you happy with the pace of delivery of your software team?". Most respondents are not able to answer YES. We're going to talk about that. Mission- Many businesses have decided to have internal software development teams. Companies that are tech...

info_outline
Aligning a Software Team For High Performance- Episode 29 show art Aligning a Software Team For High Performance- Episode 29

Programming with Palermo

In this episode, Jeffrey discusses how to align a software team for high performance. Recognizing that the team's architect is the leader and has a big job to do, a tool called the Team Alignment Template facilitates the documenting and teaching of the team's purpose, values, and other strategic decisions so that all engineers can work and pull in the same direction. Situation At the beginning of a project, when a new team is formed, or when the staffing of an existing software team changes, all team members need to align and get going in the same direction. Without intentionally achieving...

info_outline
Designing New Applications for Automated DevOps- Episode 28 show art Designing New Applications for Automated DevOps- Episode 28

Programming with Palermo

In this episode, Jeffrey discusses how to design new applications for automated DevOps. Automating the DevOps process from Day 1 is part of the "Achieving Stability" pillar of the Clear Measure Way. Situation Once a software project or new application gets going, the focus tends to be on features. And once code is being written but not being deployed frequently, the team starts to slow down right from the get-go. It might be tempting to think that you don't need devops automation just yet. But choosing not to put in a particular process is implicitly deciding to put in a manual process. The...

info_outline
Empowering Software Teams Using the Clear Measure Way- Episode 27 show art Empowering Software Teams Using the Clear Measure Way- Episode 27

Programming with Palermo

In this episode, Jeffrey discusses how to empower software teams using the Clear Measure Way. Context For engineering teams serious about delivering software Achieving rare success Resolve to be in the rare 17% of projects that succeed The team rises and falls on leadership Work for clear understanding & wisdom Measure actuals & progress Establish quality Prioritize quality over speed Prevent defects (escaped defects -> process failure) Always working (first do no harm) Achieve stability Minimize undeployed software Prevent production issues Correct production issues quickly ...

info_outline
Engineering Practices for Achieving Stability- Episode 26 show art Engineering Practices for Achieving Stability- Episode 26

Programming with Palermo

In this episode, Jeffrey discusses the suggested engineering practices for achieving stability. After establishing quality, achieving stability is the next pillar in the Clear Measure Way along the path to increasing speed. Without stability, the software team will always be devoting some portion of its capacity to diagnosing and fixing stability issues with the software in production. Priorities Prevent production issues Correct production issues quickly Stability practices Automated deployments formal release candidates low-maintenance environments Runtime automated health checks...

info_outline
Design Patterns Help to Increase Speed- Episode 25 show art Design Patterns Help to Increase Speed- Episode 25

Programming with Palermo

In this episode, Jeffrey discusses using design patterns to increase speed. Speed is a pillar of the Clear Measure Way, just like establishing quality and achieving stability. Elements of a design pattern Problem: a tension or issue in the software. Some trait or condition that is desired to be improved Solution: the way of organizing some code elements to resolve the Problem Benefit: the concrete advantage that code applying the pattern demonstrates Language: higher-level name for code that creates a higher-order concept A design pattern is an idea. Code implementing it is merely an...

info_outline
 
More Episodes

Code Sample 

In this episode, you’re going to take a dive into using selenium for full system testing or acceptance testing, sometimes those two words get interchanged.  This is an important type of test for pretty much any application. In test-driven development, you have different layers of testing, just like an onion architecture you have different layers of code. You have the inner code and then you layer on additional code to the outside as you get closer to interfaces.  The same thing in testing, you have unit tests, which test your core and every method of every class.   You should have a unit test that doesn't depend on interfaces, doesn't depend on external dependencies. You have integration tests that make sure that every one of these interfaces does work with the outside world, whether it be a database or a web service, you want to make sure that your application knows how to call those interfaces. Those are integration tests.

Unit tests don't call outside of their own memory spaces or their own process. Integration tests do call from your application process to some other process. The simplest form is just your code calling a database.    

Full system tests take all the pieces of the application and the dependencies that you interface with.  It runs the complete application and executes a particular feature or function. In this episode, you’re going to take that style and add on to the example we’ve been using in previous episodes and add a selenium test.  We will talk about the ins and outs of full system acceptance testing using selenium. Selenium is just a tool.  What's important is that you know how to create these full system tests that run an application just like they're intended to be run in production.  Whatever the method of using the application is, you need full system tests that cover everything that is to be supported. If it is a screen used by users, you must pop open the screens and touch them. If data comes from place A to place B in your system, you will design a full system test that runs that to make sure that it works.   This is going to be super quick, drinking from the fire hose, but after this, you are going to be able to add Selenium to your application and start creating full system tests- technical type tests or acceptance tests that are more user scenario based.

 

Thanks to Clear Measure for sponsoring this sample and episode of Programming with Palermo.

 

This program is syndicated on many channels. To send a question or comment to the show, email [email protected]. We’d love to hear from you.

 

To use the private and confidential Chaplain service, use the following

Gentleman: 512-619-6950
Lady: 512-923-8178