발견법(heuristic)은 문제를 찾고 문제를 해결해 나가는 넓은 의미의 탐색 과정을 뜻한다. 어떻게 문제가 출현하고, 문제 해결에서 인지 능력이 어떤 과정을 거쳐 전략으로 구현되는지는 이 글의 주제가 아니다. 현재까지도 그 체계적인 면모를 갖추지 못한 발견법의 연구 역사가 이 작업에서 자세히 펼쳐질 이유도 없다. 중요한 것은 공학적 문제 또한 문제이기 때문에, 그것은 발견법과 무관할 수 없다는 정도의 동의만이 필요하다. 여기에 대한 상투적인 반박이 예상된다. 그 반박은 전형적인 발견과 발명의 구분에서 온다. 발견은 미리 주어진 것을 찾는 것이라면, 발명은 없던 것을 새롭게 탄생시킨다. 과학과 달리 공학은 발견이 아니라 발명에 국한되어 있기 때문에, 공학에다가 발견을 운운하는 것은 잘못이다. 이러한 반박은 아예 반박 자체의 자질을 지니지 못한다. 발명과 발견의 차이는 발견법의 결과론적 입장에서 나타날 뿐이다. 과학의 문제 풀이가 자연적 제약을 찾는 것을 추구한다면, 공학은 인공물을 디자인함으로써 문제를 풀어나간다. 서로 추구하는 바는 다르지만, 공학과 과학 둘 다 문제를 찾고 해결해 나간다는 점에서는 다르지 않다. 발견법의 광범위한 의미는 문제 풀기의 과정에서 이해되어야 한다. 상투적인 발명과 발견의 차이는 발견법의 결과적 차이로 인식되어야 한다. 용어 ‘발견’은 발견 맥락 혹은 발견법의 관점에서 이해되어야 한다. 공학자는 문제 풀기 과정에서 경우에 따라서는 과학자의 역할을 수행하기도 하며, 또 과학자가 공학자의 역할을 수행하는 경우도 많다. 공학과 과학을 상투적인 발명과 발견의 차이로 구분하는 것 자체가 상투적이다. 다시 말해, 아무런 쓸모가 없다는 말이다. 이어질 논의 속에서 공학을 둘러싼 여러 잘못된 고정관념이 해체되기를 희망한다. 그밖에 중요한 것은 교차 사용 가능성에도 불구하고 기술과 공학의 구분 방식이다. 이것은 제1부의 시작에서 다룬다.
발견법은 문제를 찾고 문제를 해결해 나가는 넓은 의미의 탐색 과정으로, 미리 주어진 것을 찾는 과학에 쓰인다. 없던 것을 새롭게 탄생시키는 발명은 공학에 쓰인다. 그러나 과학과 공학 둘 다 문제를 찾고 해결해 나간다는 점에서는 같으며, 공학자는 문제 풀기 과정에서 경우에 따라서는 과학자의 역할을 수행하기도 하고, 과학자가 공학자의 역할을 수행하는 경우도 많으므로 이러한 구분 자체는 사실 상투적이다.