If ENIAC Engineers Could Pair Program, So Can You

By now, I have heard several excuses from developers and managers who had their reasons not to pair program. As far as I’ve seen, the doubts and inhibitions arise from experiences involving bad practices.

Two of the earliest ENIAC engineers, Jean Bartik and Betty Snyder were a pair in the 1940s when they worked on the first ENIAC machines. “I believe that the best programs and designs are done by pairs, because you can criticise each other, and find each other’s errors, and use the best ideas,” Bartik said.

If two of the early programmers in the history of computer science could pair, so can you.

Once you master the skill, pair programming can be rewarding and starts to become more fun. Trust me when I say that pair programming works for everyone. You just have to find the style that works for you and your partner.

So, if you are new to this and find pairing intimidating, start small. Start with a small bug or a task that is simple to achieve. The next step would be to pick a personable developer you know to pair with. When you start out, it helps to pair with nicer, communicative people. Lastly, remember that people aren’t mind readers, so be communicative yourself and think out loud as much as possible.

In this article, I’ve listed some basic requirements to have a successful pair programming session.

#programming #computer-science #pair-programming #coding #data-science

What is GEEK

Buddha Community

If ENIAC Engineers Could Pair Program, So Can You

If ENIAC Engineers Could Pair Program, So Can You

By now, I have heard several excuses from developers and managers who had their reasons not to pair program. As far as I’ve seen, the doubts and inhibitions arise from experiences involving bad practices.

Two of the earliest ENIAC engineers, Jean Bartik and Betty Snyder were a pair in the 1940s when they worked on the first ENIAC machines. “I believe that the best programs and designs are done by pairs, because you can criticise each other, and find each other’s errors, and use the best ideas,” Bartik said.

If two of the early programmers in the history of computer science could pair, so can you.

Once you master the skill, pair programming can be rewarding and starts to become more fun. Trust me when I say that pair programming works for everyone. You just have to find the style that works for you and your partner.

So, if you are new to this and find pairing intimidating, start small. Start with a small bug or a task that is simple to achieve. The next step would be to pick a personable developer you know to pair with. When you start out, it helps to pair with nicer, communicative people. Lastly, remember that people aren’t mind readers, so be communicative yourself and think out loud as much as possible.

In this article, I’ve listed some basic requirements to have a successful pair programming session.

#programming #computer-science #pair-programming #coding #data-science

Tyrique  Littel

Tyrique Littel

1603558800

6 Driver-Navigator Patterns That Make Pair Programming More Productive

Why Pair

On teams, developers want to get more done. Less experienced developers need to learn from the more experienced developers. The organization needs to be structured to avoid needing n squared communication channels.

“Pair programmers: Keep each other on task. Brainstorm refinements to the system. Clarify ideas. Take initiative when their partner is stuck, thus lowering frustration. Hold each other accountable to the team’s practices. Pairing” - Kent Beck

Pairing allows developers to …

  • Produce better solutions
  • Share knowledge and context on the fly
  • Mutual learning and skill development

Definitions

Pair programming is the practice of pairing up to work on development tasks. Most people think of two developers sitting at the same machine, sharing a keyboard. With the increasing popularity of remote work, it is now possible to pair program while thousands of miles apart.

Driver

Fingers on keys; typing code.

Navigator

The developer that indicates what should be typed; decides the direction to go.

Most forms of pairing involve taking turns typing. One person types (the driver) while the other person thinks through what is being done, and what needs to be done next (the navigator). These roles are frequently swapped.

Both members must verbalize their thought processes when pairing to be effective. Successful pair programming relies on successful communication as much as programming skills. The premise of pair programming is that when working on a complex task, “two heads are better than one.”

Patterns

Strong Technique

The Strong Technique is an approach where the driver does nothing that the navigator did not direct.

For the driver to provide an idea, they must handover the system to the partner and then carry out the control from the navigator position. This approach completely engages the observer.

Traditional Technique

Traditionally, pair programming has been popularized through the driver-navigator technique. Ideally both the team members should switch roles at times for better results.

With this style of pair programming, the navigator often loses interest. Possibly because the person in charge of typing is not communicating well, or perhaps the navigator does not want to bother him. Many times the driver puts forth, “just a minute, I’ve got an idea …” and continues working; the navigator is left behind.

#pair-programming #patterns #web-development #programming #software-development #team-productivity #driver-navigator-pair-program #productivity

Houston  Sipes

Houston Sipes

1604116800

6 Lessons from Failed Implementation of Pair Programming

Five years in software development has taught me one thing: the word “Software Development” is nowhere close to explaining the complexity behind the term.

Over the years, different methodologies and techniques carried out to make the process easier. In my last project, we were following the agile methodology for software development. We encountered many production issues after our first release. We thought we had a rock-solid approach to filter out as many defects in earlier stages.

So-called Rock Solid Approach

We had four major environments — Dev, QA, Staging, and Prod. The purpose of these environments is mentioned below:

  1. **Dev **— Used by programmers for development activity. They push their code in this environment for unit testing of their changes before moving it to the QA environment.
  2. **QA **— As the name suggests, this environment is used by the testing team for verifying the changes made by developers. This environment is primarily used for testing dev stories in each sprint and demoing the same to product owners.
  3. **Staging **— Once code is ready to go in the next release, then it needs to be placed in the staging environment. The staging environment is a mirror image of the production environment with all similar configurations. This gives the fair idea to test the code before actually putting up into production.
  4. **Prod **— The production environment is the live environment where the application is hosted for all the clients. If any issue comes into this environment, then it is of high severity.

#coding #pair-programming #software-development #programming #software-engineering

How to Choose a Programming Language to Learn

We are surrounded by hundreds of programming languages, but you can’t learn all of them. In this article, I am going to explain a few simple points to consider while choosing your next programming language to learn.

If you are wondering what programming languages I know, well I wouldn’t exactly say I am good at them but I can write programs in JavaScriptTypeScriptPythonGoDartBashas well as a little of Java and C/C++. I know TypeScript isn’t exactly a language but after Deno, you can say so. I wouldn’t brag about it but I used to work on PHP in the early days.

So does having the baggage of these many languages worth it? Well, it depends who you ask but my answer is always, Yes. Actually, I am planning to learn Rust next, so enough is never enough for me. However, I don’t encourage this practice in certain contexts. Let me elaborate.

Let’s first understand what a programming language is. A programming language is a way to write instruction to process input data and produce some output data or an effect on a computer. For example, you can write a program to calculate the sum of two numbers. Similarly, you can write a program to display a picture on your screen or play a sound.

But there isn’t a universal programming language just as there is no universal spoken language. You can pretty much write a program to calculate the sum of two numbers in any programming language including Bash. But it’s not the programming language itself which is the deciding factor but how it works plays a more important role.

#programming-tips #programming #software-engineering #software-development #programming-languages

Fannie  Zemlak

Fannie Zemlak

1594667280

Why Pair Programming Is Fantastic

If you work in an engineering field, you must have heard this term tossed around quite a bit. Especially, among programmers. If you are a programmer and have never heard this term before, nothing to worry about. But the sooner you become acquainted with the concept, the better. In this article, I will be answering the question, “what is pair programming?”, the common steps involved, and the roles of the pairs.
Let’s first understand what the term “pair programming” means.
What is Pair Programming?
Simply put, pair programming is an agile technique where two programmers work on a problem at a single workstation.
Workstation requirements:
Image for post
One computer
Two keyboards
Two mice
One monitor or two mirrored monitors
Writing code is not everything, but understanding the problem is.
Image for post
The art of problem-solving
As Richard Feynman’s technique points out, thinking out loud and explaining the problem or a solution to someone is the simplest way to tackle a problem. The simpler the explanation, the better the understanding.
Solving tiny problems at a time and, in turn, achieving smaller milestones, is crucial in problem-solving. Therefore, the problem is first broken down into tiny achievable tasks.
In general, the software engineering process encourages programmers to ask as many questions as possible regarding the problem. When, why, how, where, etc. Some things can be assumed — like that limits that need to be set, and ultimately the solution needs to be full-proof that passes most edge cases. The solution should assure easy understandability, extensibility, and long term maintainability. To write tests for success, failures, and important edge cases one should know what those cases are which can be found out by asking good questions.
The most common mistake programmers make is to jump into solutions. The creative process needs time and iterations. Try to avoid this mistake by taking enough time to understand the problem at hand so you don’t end up solving the wrong problem or rather in a wrong manner.
The pair programming technique involves two people working on a single block of code, one driving the process and providing a high-level bird’s eye view of the steps called the Navigator. With the counterpart typing out the code and taking take care of the semantics called the Driver.

#programming #code #agile #pair-programming #beginners-guide #visual studio code